目录
使用梯度下降法实现简单的线性回归
一、了解数据
数据集:波士顿房价数据

预测变量与目标变量含义:
CRIM:每个城镇人均犯罪率
ZN:超过25000平方尺用地划为居住用地的百分比
INDUS:非零售商用地百分比
CHAS:是否被河道包围
NOX:氮氧化物浓度
RM:住宅平均房间数目
AGE:1940年前建成自用单位比例
DIS:5个波士顿就业服务中心的加权距离
RAD:无障碍径向高速公路指数
TAX:每万元物业税率
PTRATIO:小学师生比例
B:黑人比例指数
LSTAT:低层人口比例
MEDV:房价(预测变量)
二、探索性数据分析,了解变量分布与变量之间的关系
因为预测变量较多,这里选取四个预测变量其与目标变量(MEDV)之间的关系,这里我们先选择使用seaborn库的pairplot函数绘制数据集中的成对关系,此函数将创建一个Axes网格,使得每个变量将通过y轴在单个行和x轴上在单个列中共享,对角线上是变量分布的直方图(可修改),非对角线上是两个变量的散点图。
具体参数及其意义见官方文档http://seaborn.pydata.org/generated/seaborn.pairplot.html#seaborn.pairplot。
# 读入数据
import os
import pandas as pd
os.chdir('C:/Users/Administrator/Desktop/jpynb/机器学习')
df = pd.read_csv('./data/housing.csv')
# 绘制关系图
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(style='whitegrid', context='notebook') # 设定样式,还原可用sns.reset_orig()
# context绘制上下文参数,style轴样式参数
# 选取的四个预测变量及目标变量
cols = ['LSTAT', 'INDUS', 'NOX', 'RM', 'MEDV']
sns.pairplot(df[cols], size=3)
plt.tight_layout()
# tight_layout()是matplotlib的方法,紧凑显示图片,居中显示
# 存储图片
plt.savefig('C:/Users/Administrator/Desktop/scatter1.png', dpi=300) # dpi是像素

本文介绍了如何使用梯度下降法实现简单的线性回归,通过探索波士顿房价数据集,分析各变量与目标变量的关系,发现RM(住宅平均房间数目)与MEDV(房价)存在较强相关性。接着,利用梯度下降法求解回归系数,并通过训练数据验证模型效果,展示代价函数图像及预测结果。
最低0.47元/天 解锁文章
430

被折叠的 条评论
为什么被折叠?



