线性回归模型应该是机器学习里面一个基本的模型,线性模型(linear model)试图学得一个属性的线性组合函数来进行预测。
假设输入的数据是:
那么,根据这个输入的数据,得到一个训练模型。然后预测一下一个700平方英尺的房子,价格是多少?
原理性的东西,我是参考周志华的《机器学习》关于线性回归的介绍和复习了一下最小二乘法思想。
实验的部分,使用python来实现的。
实现
- 需要的python库
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from sklearn import datasets,linear_model
2.训练集
x_parameter=[[150],[200],[250],[300],[350],[400],[600]]
y_parameter=[6450,7450,8450,9450,11450,15450,18450]
3.训练模型
def linear_model_main(x_parameter,y_parameter,predict_value):
regr=linear_model.LinearRegression()
regr.fit(x_parameter,y_parameter)
predict_outcome=regr.predict(predict_value)
predictions={}
predictions['intercept']=regr.intercept_
predictions['coefficient'] = regr.coef_
predictions['predicted_value'] = predict_outcome
return predictions
4.调用
predict_squre=700
result=linear_model_main(x_parameter,y_parameter,predict_squre)
5.画图显示一下
def show_linear_line(X_parameters,Y_parameters):
# Create linear regression object
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(())
plt.yticks(())
plt.show()
源代码:
https://github.com/zhaozhengcoder/Machine-Learning/blob/master/linear%20model.py
PS:
这里调用了sklearn 的库,使用了linear_model.LinearRegression()函数,直接拟合了数据。但是,这个函数内部是怎么做的?是如何做到了?
就设计到了如何求解代价函数的最小值,最小二乘法,梯度下降等知识。
以后补充这个推理过程。