【问题标题】:display a plot with linear regression sklearn显示带有线性回归 sklearn 的图
【发布时间】:2020-03-23 23:12:40
【问题描述】:

我有一个数据集,其中 X = ['x', 'y'] 我的数据集的前两列 并以数据['class']为目标。 但在这种情况下,我没有如何显示线性回归图。 因为我有错误“x 和 y 必须是相同的大小”。 那么我如何绘制线性回归并使用数据集进行预测 或者我将 X 作为我数据集的前两列并以最后一列为目标? 非常感谢您的帮助,下面是我的代码:

data = pd.read_csv('data.csv')
X = data[['x', 'y']]
data['class'] = np.where(data['class']=='P', 1, 0)
Y = data['class']

plt.scatter(X, Y,  color='blue')
plt.xlabel('x')  
plt.ylabel('y')
plt.plot(X, Y, color='red', linewidth=2)
plt.show()

X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.4, random_state=0)
regressor = LinearRegression()  
regressor.fit(X_train, y_train)

【问题讨论】:

  • 总是将完整的错误消息(从单词“Traceback”开始)作为文本(不是屏幕截图)放在有问题的(不是评论)中。还有其他有用的信息。

标签: python scikit-learn


【解决方案1】:

基于官方documentation

X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.4, random_state=0)
regressor = LinearRegression()  
regressor.fit(X_train, y_train)
y_pred = regressor.predict(X_test) #adding your prediction, this was missing

import matplotlib.pyplot as plt
import numpy as np


# Plot outputs
plt.scatter(X_test, y_test,  color='black') #plot scatters
plt.plot(X_test, y_pred, color='red', linewidth=2) #plot line

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

plt.show()

【讨论】:

  • 是的,我尝试过完全相同,但我有错误“x 和 y 必须是相同的大小”
  • 查看我的编辑,您需要添加y_pred = regressor.predict(X_test),这应该会有所帮助
  • 当我添加 regressor.predict(X_test) 时我有同样的情况:/
  • 如果你只运行上面的代码,不可能有不同的大小...请重启你的内核
猜你喜欢
  • 2020-01-10
  • 2021-11-26
  • 2017-06-21
  • 2018-05-16
  • 2021-06-24
  • 2021-02-20
  • 2015-01-29
  • 2016-09-24
  • 2019-12-14
相关资源
最近更新 更多