线性回归实战【房价预测】
前言
本文属于 线性回归算法【AIoT阶段三】,这里截取自其中一段内容,方便读者理解和根据需求快速阅读。本文通过公式推导+代码两个方面同时进行,因为涉及到代码的编译运行,如果你没有 NumPyNumPyNumPy,PandasPandasPandas,MatplotlibMatplotlibMatplotlib 的基础,建议先修文章:数据分析三剑客【AIoT阶段一(下)】(十万字博文 保姆级讲解)
线性回归预测房价
1.数据加载
首先导包:
import numpy as np
from sklearn import datasets
from sklearn.linear_model import LinearRegression
我们要实现的是对 波士顿 这个城市进行房价预测,有关 波士顿 的数据,可以直接用代码:
boston = datasets.load_boston()
我们来看一下 datasets.load_boston()
里面都有哪些数据:
数据由三部分组成:
- datadatadata 即数据,这些数据影响了房价,统计指标
- targettargettarget 指房价,242424 就表示 242424 万美金
- feature_namesfeature\_namesfeature_names 就是具体的指标,比如 CRIMCRIMCRIM:犯罪率;NOXNOXNOX:空气污染,NNN元素的含量;TAXTAXTAX :税收;这些指标都会影响到房价
我们把这些信息分开来处理:
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%≈405506 \times 80\%≈405506×80%≈405,故我们拿出打乱后的前 405405405 个数据用于训练算法,其余数据用于验证算法:
# 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]
4.数据建模
np.set_printoptions(suppress = True) # 不使用科学计数法model = LinearRegression(fit_intercept = True)
# 建模:算法、方程
model.fit(X_train, y_train)
# 建模获取了斜率,斜率有大有小,有正有负
# 斜率为正代表正相关(面积),为负代表负相关(犯罪率)
display(model.coef_, model.intercept_)
5.模型验证
# 模型预测的结果:y_
y_ = model.predict(X_test).round(2)
# 展示前 30 个:
display(y_[:30])
# 展示真实结果的前 30 个:
display(y_test[:30])
算法的预测难免会有异常值,这是 不可避免的!
6.模型评估
# 最大值是 1,最小值可以小于 0
# 这个指标越接近 1,说明算法越优秀
model.score(X_test, y_test)
# 再来判断一下训练数据的得分
model.score(X_train, y_train)
显然,训练数据的得分是高的,这就好比我们在考试前都会做模拟题,我们如果考试卷的大部分题目都和模拟题是一样的,那么我们的分数就会高一些,如果考试的题目都是新题,那么我们的分数就会低一些
当然,我们评测数据不止这一个方法,下面简单介绍一下别的方法:
# 最小二乘法
from sklearn.metrics import mean_squared_error# 这个是测试数据,对应的是 20%
y_pred = model.predict(X_test)
y_true = y_test
mean_squared_error(y_true, y_pred)
我们再来看那 80%80\%80% 的训练数据:
# 80% 的训练数据:
mean_squared_error(y_train, model.predict(X_train))
注意我们这里的分数是 errorerrorerror,即 越小越好!
线性回归实战【房价预测】相关推荐
- MOOC网深度学习应用开发1——Tensorflow基础、多元线性回归:波士顿房价预测问题Tensorflow实战、MNIST手写数字识别:分类应用入门、泰坦尼克生存预测
Tensorflow基础 tensor基础 当数据类型不同时,程序做相加等运算会报错,可以通过隐式转换的方式避免此类报错. 单变量线性回归 监督式机器学习的基本术语 线性回归的Tensorflow实战 ...
- 02-06 普通线性回归(波斯顿房价预测)+特征选择
文章目录 普通线性回归(波士顿房价预测) 导入模块 获取数据 打印数据 特征选择 散点图矩阵 关联矩阵 训练模型 可视化 普通线性回归(波士顿房价预测) 导入模块 import pandas as p ...
- 基于多元线性回归的房价预测
基于多元线性回归的房价预测 摘要 市场房价的走向受到多种因素的影响,通过对影响市场房价的多种因素进行分析,有助于对未来房价的走势进行较为准确的评估. 多元线性回归适用于对受到多因素影响的数据进行分析的 ...
- python使用线性回归实现房价预测
一.单变量房价预测 采用一元线性回归实现单变量房价预测.通过房屋面积与房价建立线性关系,通过梯度下降进行训练,拟合权重和偏置参数,使用训练到的参数进行房价预测. 1.房屋面积与房价数据 32.5023 ...
- 线性回归 波士顿房价预测
目录 线性回归对波士顿房价进行预测 一.基础概念: 1. 线性回归 2. 平均绝对误差,均方误差的理解 3. 决定系数 二.实验步骤与分析 1. 数据背景 2. 数据读入 3. 定义特征值.目标值 4 ...
- kaggle简单实战——房价预测(xgboost实现)
最近正在学习xgboost,因此在kaggle上用xgboost做了个简单的小项目--波士顿房价预测(https://www.kaggle.com/c/house-prices-advanced-re ...
- 基于线性回归的房价预测分析
一.分析问题 尝试使用线性回归模型分析波士顿房价数据集,达到可通过房子属性(X)预测房价(y)的效果. 二.获取数据 sklearn.datasets中自带的load_boston数据集. 三.数据探 ...
- educoder 数据挖掘算法原理与实践:线性回归(房价预测)
第1关:线性回归算法思想 1 BC 第2关:动手实现线性回归 #encoding=utf8 import numpy as np#mse def mse_score(y_predict,y_test) ...
- 线性回归波士顿房价预测
线性回归(Linear regression)是利用回归方程(函数)对一个或多个自变量(特征值)和因变量(目标值)之间关系进行建模的一种分析方式. 线性回归当中主要有两种模型,一种是线性关系,另一种是 ...
- 机器学习——线性回归、房价预测案例【正规方案与梯度下降】
# coding:utf-8 # 1.获取数据集 #2.数据基本处理 #2.1.数据划分 #3.特征工程--标准化 #4.机器学习(线性回归) #5.模型评估 from sklearn.dataset ...
最新文章
- Maya初学者完整的3D动画大师班视频教程
- 优秀领导者,离不开这6个品质
- java连接Excel数据库读取,写入,操纵Excel表格
- git reset HEAD^
- python 在Windows 下切换工作目录
- 云服务器 ECS 建站教程:创建基于ECS和RDS的WordPress环境
- java 图片分割_Java atlas图集分割
- java 接口类型成员变量_18.9 接口作为成员变量类型
- SlideringDrawer的使用(抽屉效果)
- CFD分析过程(CFD Analysis Process)
- golang byte转string_golang版memcached之groupcache缓存入门
- 软件设计师10-面向对象-设计模式
- filestream streamreader
- matlab polyfit次数上限_新年重磅福利!全国21座城市酒店、民宿不限次数免费住!1000+景区免费玩!...
- labview如何安装modbus离线模块_Chrome73如何下载和安装扩展离线文件crx
- 【SQL注入】 sql注入中的union和limt关键字的使用解析
- Android 屏蔽返回键、菜单键和Home键
- Hbase - RIT机制
- 笔记本无线上网设置教程(图文)
- 【机器学习】LP距离、欧式距离、曼哈顿距离、切比雪夫距离