多元线性回归算法预测房价——Excel、jupyter+sklearn

一、多元线性回归

1. 定义

在回归分析中,如果有两个或两个以上的自变量,就称为多元回归。事实上,一种现象常常是与多个因素相联系的,由多个自变量的最优组合共同来预测或估计因变量,比只用一个自变量进行预测或估计更有效,更符合实际。因此多元线性回归比一元线性回归的实用意义更大。

2. 数据清洗

多元线性回归属于监督机器学习算法,通过已知数据训练得到模型或决策函数。应用此算法时,不能盲目地套用算法,必须对数据的有效性、正确性、假设合理性进行验证,如果发现数据本身不正确,就需要纠正。

数据清洗

  • 缺失值处理
    异常值处理
2.1 缺失值处理

删除法

删除观测样本
删除变量
使用完整原始数据进行分析
改变权重

插补法

抽样填补
均值差补
回归模型
热平台差补
冷平台差补
拉格朗日插值法
随机森林插值

替换法

缺失值所在变量为数值型:用该变量在其他所有对象的取值的均值/特定值来替换变量的缺失值
缺失值所在变量为非数值型:用该变量其他全部有效观测值的中位数或众数进行替换

参考: http://blog.csdn.net/qq_31584157/article/details/52562830

2.2 异常值(离群点)处理

异常值定义:测定值中与平均值的偏差超过三倍标准差的值
异常值大概包括离群值、重复值、数据不一致。

1.判断异常值方法汇总

简单统计量分析:描述性统计,判断变量的取值是否超出合理的范围
3O原则:正态分布假设下,P(|x-u|>3o)<=0.003,属于极个别的小概率事件
箱型图分析:1.5倍四分位间距的值
图像法汇总:绘制直方图、绘制点图、绘制箱形图、绘制qq图、绘制单变量散点图
局部异常因子检测:基于密度识别异常值的算法,只对数值型数据有效
通过聚类检测异常值

2.异常值处理方法(数据光滑)
分析异常值出现的原因,再判断是否取舍,如果数据正确,可直接在数据上进行挖掘建模

删除法:直接把相应的记录删除
把异常值视为缺失值:利用缺失值处理的方法进行处理
平均值修正:可用前后两个观测值的平均值修正该异常值
不处理:直接在具有异常值的数据集上进行挖掘建模

3. 特征共线性问题

  1. 定义

多重共线性(Multicollinearity)是指线性回归模型中的自变量之间由于存在高度相关关系而使模型的权重参数估计失真或难以估计准确的一种特性,多重是指一个自变量可能与多个其他自变量之间存在相关关系。

多重共线性是使用线性回归算法时经常要面对的一个问题。在其他算法中,例如决策树或者朴素贝叶斯,前者的建模过程时逐渐递进,每次都只有一个变量参与,这种机制含有抗多重共线性干扰的功能;后者假设变量之间是相互独立的。但对于回归算法来说,都要同时考虑多个预测因子,因此多重共线性通常不可避免。

  1. 检测方法

二、用Excel做房价预测线性回归

1. 配置Excel

用Excel做线性回归前的具体配置准备步骤,请参照上次博客《用Excel+Anoconda-jupyter做线性回归》中的1.1。

2. 完善数据集

2.1 剔除错误数据

数据集中部分数据存在错误,在对数据进行分析之前,需要剔除错误数据。

此处剔除卧室数和洗浴间数都为0的数据。

选中一组bedroombathroom都为0的数据:

请添加图片描述

筛选不正常数据:

请添加图片描述

选中序号为蓝色及前面一组序号为黑色的所有行,删除:

请添加图片描述

此时是不是看不到其他正常数据了?这时候我们点一下上面的筛选,就能显示删除不正常的数据后的全部的数据了。

请添加图片描述

当做其他线性回归时,或者其他需要筛选步骤的,都可用此方法查找数据。

2.2 处理非数据数值

线性回归中经常会遇到非数值型数据,即分类型数据,比如性别、所属省份、专业类型等等
分类型数据无法量化,一般会采用哑数据进行处理
如某个数据分为A、B、C三类,即可采用两个哑数据a,b
类型为A时,a=1,b=0
类型为B时,a=0,b=1
类型为C时,a=0,b=0
不使用a,b,c三个哑数据,是因为如果哑数据个数与分类数相同时,恒有a+b+c=1,会存在多重共线性问题
所以在N分类时,一般使用N-1个哑数据

  1. 在我们的数据集中neighborhood和style栏是非数值数据,在neighborhood一栏中将A,B,C以二进制编码表示为10,01,00,也就是十进制的2,1,0。
  2. 在style一栏中同理可得ranch,victorian,lodge为2,1,0。
    方法:点击菜单栏的开始,找到查找和选择,点击选择替换,根据上述替换数据。

在替换的时候一定要勾选区分大小写:

在这里插入图片描述

3. Excel做线性回归

  1. 数据选择:

①Excel中——数据——数据分析

在这里插入图片描述

② 选择回归

在这里插入图片描述

在这里插入图片描述

  1. 得到结果:

在这里插入图片描述

通过P-value一栏可以得到房屋面积和价格的相关性最强。

根据表中数据得到回归方程:
y= -0.45723 x1 -28426 x2 +345.9623 x3 +4509.576 x4 -2915.15 x5 +2128.176 x6
r²=0.723794

三、用jupyter+sklearn做线性回归练习

1. 打开jupyter步骤

点开Windows

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.写入代码

2.1 不做数据处理

①代码(以下代码可分步进行):

#引入包
import pandas as pd
import numpy as np
import seaborn as sns
from sklearn import datasets
from sklearn.linear_model import LinearRegression

df = pd.read_csv('D:\\**\\house_prices.csv')
使用Python和scikit-learn库中的线性回归算法可以预测血糖。首先,我们需要将血糖和其他相关的特征值作为输入数据。这些特征可以包括个人的年龄、性别、体重、身高、饮食、运动习惯等。 接下来,我们需要导入线性回归模型,并将输入数据分成训练集和测试集。训练集用于训练模型,测试集用于评估模型的性能。可以使用sklearn的`train_test_split()`函数进行数据集的划分。 然后,我们需要将特征进行标准化处理,确保它们具有相似的尺度。可以使用sklearn的`StandardScaler()`进行标准化处理。 接下来,我们需要使用线性回归模型拟合训练数据。可以使用sklearn的`LinearRegression()`函数创建线性回归模型,并使用`fit()`方法来拟合训练数据。 然后,我们可以使用模型对测试数据进行预测。使用模型的`predict()`方法,将测试数据作为输入,得到对应的预测值。 最后,我们可以使用评估指标(如均方误差、均方根误差等)来评估模型的性能。可以使用sklearn的`mean_squared_error()`函数计算均方误差,并使用其他适用的评估指标进行评估。 在预测血糖时,我们可以根据个人的特征值和训练好的模型,使用模型的`predict()`方法来预测血糖水平。 总而言之,通过使用Python和scikit-learn中的线性回归算法,我们可以使用相关的特征值来预测血糖水平,并对模型的性能进行评估。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值