前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python scikit-learn 做线性回归

Python scikit-learn 做线性回归

作者头像
陆勤_数据人网
发布2018-02-28 14:59:57
1.3K0
发布2018-02-28 14:59:57
举报

线性回归是简单易用的机器学习算法,scikit-learn是python强大的机器学习库。

本篇文章利用线性回归算法预测波士顿的房价。波士顿房价数据集包含波士顿郊区住房价值的信息。

第一步:Python库导入

代码语言:javascript
复制
%matplotlib inlineimport numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport sklearn

第二步:数据获取和理解

波士顿数据集是scikit-learn的内置数据集,可以直接拿来使用。

代码语言:javascript
复制
from sklearn.datasets import load_bostonboston = load_boston()
代码语言:javascript
复制
print(boston.keys())

dict_keys([‘data’, ‘target’, ‘feature_names’, ‘DESCR’])

代码语言:javascript
复制
print(boston.data.shape)

(506, 13)

代码语言:javascript
复制
print(boston.feature_names)

[‘CRIM’ ‘ZN’ ‘INDUS’ ‘CHAS’ ‘NOX’ ‘RM’ ‘AGE’ ‘DIS’ ‘RAD’ ‘TAX’ ‘PTRATIO’’B’ ‘LSTAT’]

结论:波士顿数据集506个样本,14个特征。

代码语言:javascript
复制
print(boston.DESCR)
代码语言:javascript
复制
bos = pd.DataFrame(boston.data)print(bos.head())
代码语言:javascript
复制
        0     1     2    3      4      5     6       7    8      9     10  \0  0.00632  18.0  2.31  0.0  0.538  6.575  65.2  4.0900  1.0  296.0  15.3   1  0.02731   0.0  7.07  0.0  0.469  6.421  78.9  4.9671  2.0  242.0  17.8   2  0.02729   0.0  7.07  0.0  0.469  7.185  61.1  4.9671  2.0  242.0  17.8   3  0.03237   0.0  2.18  0.0  0.458  6.998  45.8  6.0622  3.0  222.0  18.7   4  0.06905   0.0  2.18  0.0  0.458  7.147  54.2  6.0622  3.0  222.0  18.7          11    12  0  396.90  4.98  1  396.90  9.14  2  392.83  4.03  3  394.63  2.94  4  396.90  5.33  
代码语言:javascript
复制
bos.columns = boston.feature_namesprint(bos.head())
代码语言:javascript
复制
print(boston.target[:5])
代码语言:javascript
复制
bos['PRICE'] = boston.target
代码语言:javascript
复制
bos.head()

第三步:数据模型构建——线性回归

代码语言:javascript
复制
from sklearn.linear_model import LinearRegressionX = bos.drop('PRICE', axis=1)lm = LinearRegression()lm
代码语言:javascript
复制
lm.fit(X, bos.PRICE)
代码语言:javascript
复制
print('线性回归算法w值:', lm.coef_)print('线性回归算法b值: ', lm.intercept_)
代码语言:javascript
复制
import matplotlib.font_manager as fmmyfont = fm.FontProperties(fname='C:/Windows/Fonts/msyh.ttc')plt.scatter(bos.RM, bos.PRICE)plt.xlabel(u'住宅平均房间数', fontproperties=myfont)plt.ylabel(u'房屋价格', fontproperties=myfont)plt.title(u'RM与PRICE的关系', fontproperties=myfont)plt.show()

第四步:数据模型应用——预测房价

代码语言:javascript
复制
lm.predict(X)[0:5]

array([ 30.00821269, 25.0298606 , 30.5702317 , 28.60814055, 27.94288232])

代码语言:javascript
复制
mse = np.mean((bos.PRICE - lm.predict(X)) ** 2)print(mse)
代码语言:javascript
复制
21.897779217687486

总结

1 使用.DESCR探索波士顿数据集,业务目标是预测波士顿郊区住房的房价;

2 使用scikit-learn针对整个数据集拟合线性回归模型,并计算均方误差。

思考环节

1 对数据集分割成训练数据集和测试数据集

2 训练数据集训练线性回归模型,利用线性回归模型对测试数据集进行预测

3 计算训练模型的MSE和测试数据集预测结果的MSE

4 绘制测试数据集的残差图

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-11-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据科学与人工智能 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一步:Python库导入
  • 第二步:数据获取和理解
  • 第三步:数据模型构建——线性回归
  • 第四步:数据模型应用——预测房价
  • 总结
  • 思考环节
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档