实现线性回归需要用到matplotlib、numpy、pandas和sklearn,matplotlib用于二维作图,numpy、pandas用于对数据的处理,sklearn为机器学习算法模块。
导入模块
自定义x轴和y轴值
定义一个函数,对模型进行训练并计算预测值
def linear_model_main(X_parameters,Y_parameters,predict_value):
regr = linear_model.LinearRegression() #实例化一个线性回归模型
regr.fit(X_parameters, Y_parameters) #对于自定义值进行训练,训练成功之后会保存
predict_outcome=regr.predict(predict_value) #对值预测
predictions={}
predictions ['intercept'] = regr.intercept_ #将截距放入predictions
predictions['coefficient'] = regr.coef_ #将常数值放入predictions
predictions['predicted_value'] = predict_outcome #将预测值放入predictions
return predictions
定义一个函数,主要用于可视化表达
def show_linear_line(X_parameters,Y_parameters):
regr = linear_model.LinearRegression()
regr.fit(X_parameters, Y_parameters)
plt.scatter(X_parameters,Y_parameters,color='blue') #创建散点图
plt.plot(X_parameters,regr.predict(X_parameters),color='red',linewidth=4) 创建折线图
plt.xticks(()) #简单理解为对x轴坐标的设置
plt.yticks(())
plt.show() #作图
下面设置预测值,运行函数体
predict_value=900
result = linear_model_main(x,y,predict_value)
print ("截距值:", result['intercept'])
print ("常数值:", result['coefficient'])
print ("预测值: ", result['predicted_value'])
show_linear_line(x,y)
成果