机器学习与模式识别Python语言与信息数据获取和机器学习机器学习与数据挖掘

Deep Learning学习笔记-多元线性回归实践

2017-02-08  本文已影响339人  伊甸亚当

上篇文章中,我们根据BMI来预测寿命,BMI扮演一个“预测者”的角色,统计学中一般把它叫做“自变量(independent variable)”。“预测者”是一个(用于预测其他变量的)变量,那些被预测的那些值,一般被称为“因变量(dependent variables)” ,那么,上个例子中,要预测的寿命就是因变量(dependent variable)。

那如果说我们还有每个人的心率数据,是否能够使用 BMI 和心率两组数据来预测寿命呢?当然可以!我们可以使用“多元线性回归(multiple linear regression)”来实现。

如果你要预测的结果依赖多个变量,你可以建立一个更复杂的模型,这时使用多个自变量可以得到更好的预测结果。

当只有一个自变量的时候,线性回归模型可以用一条直线来表示,当你添加多个自变量的时候,相当于空间中添加了更多的维度。

当只有一个自变量的时候,直线对应的方程式是:y=mx+b。对于的图形也许是这样的:


一元线性回归方程

增加一个自变量,对应的方程式是:y= m1​​x​1 ​​+ m​2​​x2 ​+ b

这个需要一个三维图形来表示这个公式,这个时候,这个线性回归模型就是一个平面:

有两个自变量的线性回归模型

你也可以使用更多的自变量,实际上用的越多效果越好!如果你使用了n个自变量,那么对应模型的方程可以这样表示:y = m​1​​x​1​​ + m​2​​x​2 ​​+ m​3​​x​3 ​​+ … + m​n​​x​n ​​+ b

使用更多的自变量,相应的模型可视化也变得更难。但幸运的是,所有的线性回归都是一样的,可以直接用方程式推导出来。我们还是使用同样的方式来进行预测。


多元线性回归实践
在这次实践中,我们会用到 波斯顿房价的数据(https://archive.ics.uci.edu/ml/datasets/Housing),
这份数据已经包含在scikit-learn的数据集中,包含506所房屋的13项指标,我们使用这13项指标来建立模型,用于预测房子的价格。

完整代码如下:

# 导入 LinearRegression 类 和 数据集
from sklearn.linear_model import LinearRegression
from sklearn.datasets import load_boston

# 加载数据集
boston_data = load_boston()
x = boston_data['data']
y = boston_data['target']

# 建立一个回归模型,并赋值给 model
model = LinearRegression()
# fit 函数根据数据调整模型
model.fit(x, y)

# 使用模型做出预测
sample_house = [[2.29690000e-01, 0.00000000e+00, 1.05900000e+01, 0.00000000e+00, 4.89000000e-01,
                6.32600000e+00, 5.25000000e+01, 4.35490000e+00, 4.00000000e+00, 2.77000000e+02,
                1.86000000e+01, 3.94870000e+02, 1.09700000e+01]]
                
# 使用  sample_house 的指标进行预测
prediction = model.predict(sample_house)
print(prediction)

上一篇下一篇

猜你喜欢

热点阅读