做ppt好的模板下载网站有哪些,tg cd wordpress,贵阳德天信网站建设,dw建设网站视频教程文章目录 前言线性回归房价预测加载数据数据查看数据拆分数据建模模型的验证、应用模型的评估 总结 前言 #x1f4ab;你好#xff0c;我是辰chen#xff0c;本文旨在准备考研复试或就业 #x1f4ab;本文内容来自某机构网课#xff0c;是我为复试准备的第一个项目 #… 文章目录 前言线性回归房价预测加载数据数据查看数据拆分数据建模模型的验证、应用模型的评估 总结 前言 你好我是辰chen本文旨在准备考研复试或就业 本文内容来自某机构网课是我为复试准备的第一个项目 欢迎大家的关注我的博客主要关注于考研408以及AIoT的内容 预置知识详见我的AIoT板块需掌握 基本Python语法, Numpy, Pandas, Matplotlib 以下的几个专栏是本人比较满意的专栏(大部分专栏仍在持续更新)欢迎大家的关注 ACM-ICPC算法汇总【基础篇】 ACM-ICPC算法汇总【提高篇】 AIoT(人工智能物联网) 考研 CSP认证考试历年题解 线性回归房价预测
import numpy as np
from sklearn import datasets
from sklearn.linear_model import LinearRegression 加载数据
boston datasets.load_boston()X boston[data] # 数据,这些数据影响了房价
y boston[target] # 房价,24代表2 4W dollar # CRIM 犯罪, NOX 空气污染, TAX 税收
feature_names boston[feature_names] # 具体指标
feature_names数据查看
# 506表示506统计样本,13表示影响房价的13个属性
X.shape # 506行,每一行的13个数值乘以一个权重和一个截距就是相当于506个13元一次方程
# 我们的目的就是去解这13个权重和1个截距# 506个价格
# X - y 是一,一对应的
# 数据 - 目标值 对应
y.shape数据拆分
# 506个数据,样本
# 拆分成为两份,一份80%训练数据;剩下的20%验证数据
# 其中的80%交给算法,线性回归,学习、总结、你和函数
# 20%的作用为验证,测一测,看看算法学习完80%的数据后是否准确# 创建一个包含0到505的整数的一维NumPy数组并将其分配给变量index
index np.arange(506)
# 打乱顺序
np.random.shuffle(index)# 506 * 0.8 404.8 ≈ 405,据此用切片划分训练样本和测试样本
train_index index[:405]
test_index index[405:]X_train X[train_index]
y_train y[train_index]
display(X_train.shape, y_train.shape)# 20%的测试数据
X_test X[test_index]
y_test y[test_index]display(X_test.shape, y_test.shape)数据建模
model LinearRegression(fit_intercept True) # 允许计算截距(默认也是True)model.fit(X_train, y_train)display(model.coef_, model.intercept_)# 不想看科学计数法:
np.set_printoptions(suppress True)
# 数值为正:正相关,如面积越大房价越高
# 数值为负:负相关,如犯罪率越高房价越低
display(model.coef_, model.intercept_)模型的验证、应用
# 模型的预测结果
y_ model.predict(X_test).round(2) # 保留2位小数
y_[:30] # 查看前30个值# 查看真实值的前30个
y_test[:30]模型的评估
# 最大值是1,可以小于0(评分太差了,是负数)
# 数值越接近1,说明算法越优秀
model.score(X_test, y_test)# 不妨再来看一下80%数据的得分,结果一般来说是要高一些的
model.score(X_train, y_train)# 当然,评价标准不止有一个,如之前学过的最小二乘法
# 最小二乘法
from sklearn.metrics import mean_squared_error# 这个是误差,误差是越小越好
# 测试那20%的数据
y_pred model.predict(X_test) # 其实y_也可,只不过上面处理的y_已经保留了2位小数了,效果差一点点
mean_squared_error(y_test, y_pred) # 也可以写成 mean_squared_error(y_test, y_) 问题不大# 再来计算一下那80%的数据,得到的值一般来说是要低些
mean_squared_error(y_train, model.predict(X_train)) 总结
完整代码
import numpy as np
from sklearn import datasets
from sklearn.linear_model import LinearRegression boston datasets.load_boston()X boston[data] # 数据,这些数据影响了房价
y boston[target] # 房价,24代表2 4W dollar
# X.shape : (506, 13), y.shape : (506, )# CRIM 犯罪, NOX 空气污染, TAX 税收
feature_names boston[feature_names] # 具体指标# 创建一个包含0到505的整数的一维NumPy数组并将其分配给变量index
index np.arange(506)
# 打乱顺序
np.random.shuffle(index)# 506个数据,样本
# 拆分成为两份,一份80%训练数据;剩下的20%验证数据
# 其中的80%交给算法,线性回归,学习、总结、你和函数
# 20%的作用为验证,测一测,看看算法学习完80%的数据后是否准确
# 506 * 0.8 404.8 ≈ 405,据此用切片划分训练样本和测试样本
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]# 不想看科学计数法:
np.set_printoptions(suppress True)
model LinearRegression(fit_intercept True) # 允许计算截距(默认也是True)
# 数值为正:正相关,如面积越大房价越高
# 数值为负:负相关,如犯罪率越高房价越低
model.fit(X_train, y_train)# 模型的预测结果
y_ model.predict(X_test).round(2) # 保留2位小数
# 最大值是1,可以小于0(评分太差了,是负数)
# 数值越接近1,说明算法越优秀
model.score(X_test, y_test)# 不妨再来看一下80%数据的得分,结果一般来说是要高一些的
model.score(X_train, y_train)# 当然,评价标准不止有一个,如之前学过的最小二乘法
# 最小二乘法
from sklearn.metrics import mean_squared_error
# 这个是误差,误差是越小越好
# 测试那20%的数据
y_pred model.predict(X_test) # 其实y_也可,只不过上面处理的y_已经保留了2位小数了,效果差一点点
mean_squared_error(y_test, y_pred) # 也可以写成 mean_squared_error(y_test, y_) 问题不大
# 再来计算一下那80%的数据,得到的值一般来说是要低些
mean_squared_error(y_train, model.predict(X_train))