前言
一、了解本次实验
1.什么是多元线性回归
研究一个因变量、与两个或两个以上自变量的回归。亦称为多元线性回归,是反映一种现象或事物的数量依多种现象或事物的数量的变动而相应地变动的规律。建立多个变量之间线性或非线性数学模型数量关系式的统计方法。
2.本题背景
波士顿房价数据集包括多个样本,每个样本包括多个特征变量和该地区的平均房价。房价(单价)显然和多个特征变量相关,不是单变量线性回归(一元线性回归)问题;选择多个特征变量来建立线性方程,这就是多变量线性回归(多元线性回归)问题。 房价和多个特征变量相关,本案例尝试使用多元线性回归建模。
二、数据清洗
1.什么是数据清洗
数据清洗就是 对数据进行重新审查和校验的过程,目的在于删除重复信息、纠正存在的错误,并提供数据一致性。 数据清洗从名字上也看的出就是把"脏"的"洗掉",指发现并纠正数据文件中可识别的错误的最后一道程序,包括检查数据一致性,处理无效值和缺失值等。
2.对所用文件进行数据清洗
- 观察下面的文档,发现有些数据为0。因此我们需要剔除这些数据
- 在excel中删除bedroom和bathroom中为0的数据
如图,在数据->筛选->选中bedroom->点击倒三角符号->选择0->点击确定 得到筛选结果后,选择所有,然后选择删除行 - 同样的步骤删除bathroom中为0的数据
3.对所用文件的非数值型进行转换
- 观察文件发现,neighborhood和style中的数据是非数值型,因为这两个数据对于房价有影响,所以我们需要将他们转化为数值型来进行计算。
- 如图,找到excel中的替换功能
- 如图,将A替换为10,将B替换为20,将C替换为30
- 以照上面的方法,将victorian替换为100,ranch替换为200,lodge替换为300
- 完成后就可以发现表中的所有数据都是数值型的了
4.利用excel进行线性回归
- 如上一篇文章所讲,我们在数据分析中选择回归,然后设定如下的X,Y值.其中Y值就是price,X值则为neighborhood、area、bedrooms、bathrooms、style
2.得到如下的表格
三、利用Sklearn库重做上面的多元线性回归
代码如下
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.linear_model import Lasso, Ridge, LinearRegression as LR
from sklearn.metrics import r2_score, explained_variance_score as EVS, mean_squared_error as MSE
from sklearn.model_selection import train_test_split, cross_val_score
from pandas.core.accessor import register_dataframe_accessor
data=pd.read_csv('D:\house_prices_2.csv')
new_data=data.iloc[:,1:]
new_data.head()
new_data.corr()
x_data = new_data.iloc[:, 0:5]
y_data = new_data.iloc[:, -1]
print(x_data, y_data, len(x_data))
model = linear_model.LinearRegression()
model.fit(x_data, y_data)
print("回归系数:", model.coef_)
print("截距:", model.intercept_)
print('回归方程: price=',model.coef_[0],'*neiborhood+',model.coef_[1],'*area +',model.coef_[2],'*bedrooms +',model.coef_[3],'*bathromms +',model.coef_[4],'*sytle ',model.intercept_)
运行结果如下:
总结
本次主要是学习如何利用库文件求解回归方程,其次与上次不同的是X的取值由一种变为了多种
参考文章
https://blog.csdn.net/weixin_56102526/article/details/120954906?spm=1001.2014.3001.5501 https://zhuanlan.zhihu.com/p/48541799
|