我正在尝试绘制实际销售额(y)和预期销售额(ŷ)的散点图。
我已经导入了csv文件,目前用于线性回归模型的代码是:
result = smf.ols('sales ~ discount + holiday + product', data=data).fit()
print(result.summary())
既然我只有实际的销售值,那么如何找到预测的销售(ŷ)值来绘制散点图?我尝试研究,发现lm.predict()
和result.predict()
。有区别吗? lm = LinearRegression()
预先谢谢你!
答案 0 :(得分:0)
没有数据很难提供帮助,但是我想您有来自数据集的X
和y
,因为您想执行线性回归。您可以使用scikit-learn
将数据分为训练集和测试集:
from sklearn.cross_validation import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 1/3)
然后,您需要将线性回归拟合到训练集:
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(X_train, y_train)
然后预测测试集结果:
y_pred = regressor.predict(X_test)
最后,您可以绘制测试或培训结果:
# Visualising the Training set results
plt.scatter(X_train, y_train, color = 'red')
plt.plot(X_train, regressor.predict(X_train), color = 'blue')
plt.title('Discount vs Sales (Training set)')
plt.xlabel('Discount percentage')
plt.ylabel('Sales')
plt.show()
# Visualising the Test set results
plt.scatter(X_test, y_test, color = 'red')
plt.plot(X_train, regressor.predict(X_train), color = 'blue')
plt.title('Discount vs Sales (Test set)')
plt.xlabel('Discount percentage')
plt.ylabel('Sales')
plt.show()
(在这种情况下,如果我们设置特定的值(例如,折扣百分比),我们希望预测会有多少销售)。如果您有多个X
参数,则情况会更加复杂,您将需要使用虚拟变量,进行统计分析等。