Python - Построение и линейная регрессия - x и y должны быть одинакового размера - PullRequest
0 голосов
/ 05 июля 2018

Я учу себя еще нескольким трюкам с python и scikit и пытаюсь построить модель линейной регрессии. Мой код можно увидеть ниже. Но моя программа и консоль выдают следующую ошибку: x and y must be the same size. Кроме того, моя программа доходит до конца моего кода, но ничего не получается.

Чтобы исправить ошибку размера, первое, что пришло в голову, это проверить длину x и y с помощью чего-то вроде len(x) == len(y). Но, насколько я могу судить, мои данные имеют одинаковую длину. Может быть, ошибка относится к чему-то, кроме длины (если так, я не уверен, что). Буду очень признателен за любую помощь.

enter image description here

from sklearn import cross_validation
from sklearn.naive_bayes import GaussianNB
from sklearn.model_selection import train_test_split
from sklearn import linear_model
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# Create linear regression object
regr = linear_model.LinearRegression()

#load csv file with pandas
df = pd.read_csv("pokemon.csv")
#remove all string columns
df = df.drop(['Name','Type_1','Type_2','isLegendary','Color','Pr_Male','hasGender','Egg_Group_1','Egg_Group_2','hasMegaEvolution','Body_Style'], axis=1)

y= df.Catch_Rate

x_train, x_test, y_train, y_test = cross_validation.train_test_split(df, y, test_size=0.25, random_state=0)

# Train the model using the training sets
regr.fit(x_train, y_train)

# Make predictions using the testing set
pokemon_y_pred = regr.predict(x_test)

print (pokemon_y_pred)

# Plot outputs
plt.title("Linear Regression Model of Catch Rate")
plt.scatter(x_test, y_test,  color='black')
plt.plot(x_test, pokemon_y_pred, color='blue', linewidth=3)

plt.xticks(())
plt.yticks(())

plt.show()

1 Ответ

0 голосов
/ 05 июля 2018

Это относится к тому факту, что ваша x-переменная имеет более одного измерения; plot и scatter работают только для 2D-графиков, и кажется, что ваш x_test имеет несколько функций, в то время как y_test и pokemon_y_pred являются одномерными.

...