Я пытаюсь использовать следующий код:
from sklearn.cross_validation import train_test_split
from sklearn.preprocessing import StandardScaler
scaler=StandardScaler()
from sklearn.linear_model import LogisticRegression
from sklearn import linear_model
model = linear_model.LogisticRegression()
import matplotlib.pyplot as plt
from sklearn.metrics import mean_squared_error, r2_score
X=scaler.fit_transform(X)
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2)
model.fit(X_train,y_train)
# Make predictions using the testing set
powerOutput_y_pred = model.predict(X_test)
print (powerOutput_y_pred)
# The coefficients
print('Coefficients: \n', model.coef_)
# The mean squared error
print("Mean squared error: %.2f"
% mean_squared_error(y_test, powerOutput_y_pred))
# Explained variance score: 1 is perfect prediction
print('Variance score: %.2f' % r2_score(y_test, powerOutput_y_pred))
plt.scatter(X_test, y_test, color='black')
plt.plot(X_test, powerOutput_y_pred, color='blue', linewidth=3)
plt.xticks(())
plt.yticks(())
plt.show()
Но я получаю следующую ошибку для точечной диаграммы:
ValueError: x and y must be the same size
Если я запускаю df.head(), я получаю следующую таблицу:
Характеристики X и y приведены ниже:
X=df.values[:,[0,1,2,3,4,5,7]]
y=df.values[:,6]
Запуск X.shape дает (25,7) и y.shape дает (25, ) в качестве вывода. Итак, как исправить это несоответствие формы?
Как вы ожидаете, будет выглядеть точечная диаграмма? То есть, какие отношения вы пытаетесь построить?
Я пытаюсь следовать этому: scikit-learn.org/stable/auto_examples/linear_model/… Но здесь используется только одна функция. Я пытаюсь использовать многие 7 функций в X.
Лучший ответ оказался даже проще, чем я думал. Если вы просто замените
scatter
наplot
, все должно работать как есть. Если вы правильно установите несколько параметров (ls
,marker
иms
), вызовplot
создаст точечную диаграмму.