前言
本文属于 线性回归算法【AIoT阶段三】(尚未更新),这里截取自其中一段内容,方便读者理解和根据需求快速阅读。本文通过公式推导+代码两个方面同时进行,因为涉及到代码的编译运行,如果你没有NumPy,Pandas,Matplotlib的基础,建议先修文章:数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)
线性
回归预测房价
1.数据加载
首先导包:
import numpy as np from sklearn import datasets from sklearn.linear_model import LinearRegression
我们要实现的是对 波士顿 这个城市进行房价预测,有关 波士顿 的数据,可以直接用代码:
boston = datasets.load_boston()
我们来看一下 datasets.load_boston()
里面都有哪些数据:
数据由三部分组成:
我们把这些信息分开来处理:
boston = datasets.load_boston() X = boston['data'] # 数据,这些数据影响了房价,统计指标 y = boston['target'] # 房价,24就表示24万美金 # CRIM:犯罪率 # NOX:空气污染,N含量 # TAX:税收 # 这些指标都和放假有关 feature_names = boston['feature_names'] # 具体指标
2.数据查看
# 506 表示 506 个统计样本 # 13 表示影响房价的 13 个属性 X.shape
# 506 个房子 # X -----> y 是一一对应的 # 数据 -----> 目标值对应 y.shape
3.数据拆分
# 506个数据、样本 # 拆分成两份:一份 80%用于训练,一份20%用于验证 # 拿出其中的80%,交给算法(线性回归),去进行学习、总结、拟合函数 # 20%作用:验证,测一测,看看算法,学习80%结束,是否准确 # 如何划分:利用 numpy 的 shuffle 打乱数据 index = np.arange(506) np.random.shuffle(index) index
506×80%≈405,故我们拿出打乱后的前 405个数据用于训练算法,其余数据用于验证算法:
# 80% 训练数据 train_index = index[:405] X_train = X[train_index] y_train = y[train_index] # 20% 测试数据 test_index = index[405:] X_test = X[test_index] y_test = y[test_index]