02-06普通线性回归(波斯顿房价预测)+特征选择(代码片段)

nickchen121 nickchen121     2023-05-07     398

关键词:

更新、更全的《机器学习》的更新网站,更有python、go、数据结构与算法、爬虫、人工智能教学等着你:https://www.cnblogs.com/nickchen121/

普通线性回归(波士顿房价预测)

一、导入模块

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from matplotlib.font_manager import FontProperties
from sklearn.linear_model import LinearRegression
%matplotlib inline
font = FontProperties(fname='/Library/Fonts/Heiti.ttc')

二、获取数据

housing-data.txt数据下载地址https://pan.baidu.com/s/1SvG0hFxupYA3KQO4fLsP5A

2.1 打印数据

df = pd.read_csv('housing-data.txt', sep='s+', header=0)
df.head()
CRIM ZN INDUS CHAS NOX RM AGE DIS RAD TAX PTRATIO B LSTAT MEDV
0 0.00632 18.0 2.31 0 0.538 6.575 65.2 4.0900 1 296.0 15.3 396.90 4.98 24.0
1 0.02731 0.0 7.07 0 0.469 6.421 78.9 4.9671 2 242.0 17.8 396.90 9.14 21.6
2 0.02729 0.0 7.07 0 0.469 7.185 61.1 4.9671 2 242.0 17.8 392.83 4.03 34.7
3 0.03237 0.0 2.18 0 0.458 6.998 45.8 6.0622 3 222.0 18.7 394.63 2.94 33.4
4 0.06905 0.0 2.18 0 0.458 7.147 54.2 6.0622 3 222.0 18.7 396.90 5.33 36.2

三、特征选择

3.1 散点图矩阵

使用sns库的pairplot()方法绘制的散点图矩阵可以查看数据集内部特征之间的关系,例如可以观察到特征间分布关系以及离群样本。

本文只绘制了三列(RM、MEDV(标记)、LSTAT)特征和标记之间的联系,有兴趣的可以调用该方法查看其它特征之间的关系。

# 选择三列特征
cols = ['RM', 'MEDV', 'LSTAT']
# 构造三列特征之间的联系即构造散点图矩阵
sns.pairplot(df[cols], height=3)
plt.tight_layout()
plt.show()

技术图片

上图可以看出第一行(RM)第二列(MEDV)的特征与标记存在线性关系;第二行(MEDV)第二列(MEDV)即MEDV值可能呈正态分布。

3.2 关联矩阵

使用sns.heatmap()方法绘制的关联矩阵可以看出特征之间的相关性大小,关联矩阵是包含皮尔森积矩相关系数的正方形矩阵,用来度量特征对之间的线性依赖关系。

# 求解上述三列特征的相关系数
'''
对于一般的矩阵X,执行A=corrcoef(X)后,A中每个值的所在行a和列b,反应的是原矩阵X中相应的第a个列向量和第b个列向量的
相似程度(即相关系数)
'''
cm = np.corrcoef(df[cols].values.T)
# 控制颜色刻度即颜色深浅
sns.set(font_scale=2)
# 构造关联矩阵
hm = sns.heatmap(cm, cbar=True, annot=True, square=True, fmt='.2f', annot_kws=
                 'size': 20, yticklabels=cols, xticklabels=cols)
plt.show()

技术图片

上图可以看出特征LSTAT和标记MEDV的具有最高的相关性-0.74,但是在散点图矩阵中会发现LSTAT和MEDV之间存在着明显的非线性关系;而特征RM和标记MEDV也具有较高的相关性0.70,并且从散点矩阵中会发现特征RM和标记MEDV之间存在着线性关系。因此接下来将使用RM作为线性回归模型的特征。

四、训练模型

X = df[['RM']].values
y = df['MEDV'].values

lr = LinearRegression()
lr.fit(X, y)
LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,
         normalize=False)

五、可视化

plt.scatter(X, y, c='r', s=30, edgecolor='white',label='训练数据')
plt.plot(X, lr.predict(X), c='g')
plt.xlabel('平均房间数目[MEDV]', fontproperties=font)
plt.ylabel('以1000美元为计价单位的房价[RM]', fontproperties=font)
plt.title('波士顿房价预测', fontproperties=font, fontsize=20)
plt.legend(prop=font)
plt.show()
print('普通线性回归斜率:'.format(lr.coef_[0]))

技术图片

普通线性回归斜率:9.10210898118031

使用RANSAC算法之后可以发现线性回归拟合的线与未用RANSAC算法拟合出来的线的斜率不同,可以说RANSAC算法降低了离群值潜在的影响,但是这并不能说明这种方法对未来新数据的预测性能是否有良性影响。

sklearn线性回归实现房价预测模型(代码片段)

目录题目要求单特征线性回归方案一方案二多特征线性回归两份数据ex1data1.txtex1data2.txt题目要求建立房价预测模型:利用ex1data1.txt(单特征)和ex1data2.txt(多特征)中的数据,进行线性回归和预测。作散点图可知,数据大致符合... 查看详情

机器学习线性回归(回炉重造)(代码片段)

机器学习---线性回归1.简单线性回归2.多元线性回归3.线性回归的正规方程解4.衡量线性回归的性能指标MSERMSEMAER-Squared5.scikit-learn线性回归实践-波斯顿房价预测LinearRegression线性回归是属于机器学习里面的监督学习,与分类问题... 查看详情

回归模型与房价预测

1.导入boston房价数据集fromsklearn.datasetsimportload_bostonboston=load_boston()boston.keys()print(boston.DESCR)#介绍data=boston.data#查看数据boston.target#查看房价boston.feature_names#特征  2.一元线性回归模型,建立一个变量与房价之间的预测模型,并 查看详情

线性回归预测波士顿房价(代码片段)

...的房价,上次已经通过房间数目预测了房价,这次用多元线性回归预测。根据之前推导的多元线性回归的参数 接下来是多元线性回归的代码实现defLinearRegression_(x,y):np.array(x)np.array(y)a=(np.linalg.inv(x.T.dot(x))).dot(x.T).dot(y)上次大致... 查看详情

回归模型与房价预测

  1.导入数据集fromsklearn.datasetsimportload_bostonboston=load_boston()boston.keys()2.查看数据集#介绍print(boston.DESCR)#查看数据data=boston.data#查看房价boston.target#特征boston.feature_names3.一元线性回归模型,建立一个变量与房价 查看详情

linearregression线性回归

Motivation问题描述收集到某一地区的房子面积和房价的数据(x,y)42组,对于一套已知面积的房子预测其房价???由房价数据可视化图可以看出,可以使用一条直线拟合房价。通过这种假设得到的预测值和真实值比较接近。Model模型... 查看详情

回归-线性回归算法(房价预测项目)(代码片段)

...录简介损失函数优化算法正规方程梯度下降项目实战简介线性回归(LinearRegression)是回归任务中最常见的算法,利用回归方程对自变量和因变量进行建模,且因变量和自变量之间是线性关系而得名,从而可以... 查看详情

回归-线性回归算法(房价预测项目)(代码片段)

...录简介损失函数优化算法正规方程梯度下降项目实战简介线性回归(LinearRegression)是回归任务中最常见的算法,利用回归方程对自变量和因变量进行建模,且因变量和自变量之间是线性关系而得名,从而可以... 查看详情

机器学习实战——用线性回归预测波士顿房价

查看详情

回归模型与房价预测

1.导入boston房价数据集2.一元线性回归模型,建立一个变量与房价之间的预测模型,并图形化显示。结果如下: 3.多元线性回归模型,建立13个变量与房价之间的预测模型,并检测模型好坏,并图形化显示检查结果。结果如下:&n... 查看详情

回归模型与房价预测

1.导入boston房价数据集2.一元线性回归模型,建立一个变量与房价之间的预测模型,并图形化显示。3.多元线性回归模型,建立13个变量与房价之间的预测模型,并检测模型好坏,并图形化显示检查结果。4. 一元多项式回归模... 查看详情

一元线性回归-梯度下降法-房价预测(代码片段)

数据32.502345269453031,31.7070058465699253.426804033275019,68.7775959816389161.530358025636438,62.56238229794580347.475639634786098,71.54663223356777759.813207869512318,87.23092513368739355.142188413943 查看详情

回归模型与房价预测(代码片段)

1.导入boston房价数据集2.一元线性回归模型,建立一个变量与房价之间的预测模型,并图形化显示。3.多元线性回归模型,建立13个变量与房价之间的预测模型,并检测模型好坏,并图形化显示检查结果。4. 一元多项式回归模... 查看详情

深圳房价线性回归分析及预测==

1.数据清洗data=data.rename(columns={‘Unnamed:0‘:‘id‘})给第一列起名iddata=data[data[‘Rooms‘]!=‘Unknown‘]data[‘Rooms‘]=data[‘Rooms‘].astype(int)data[‘LivingRooms‘]=data[‘LivingRooms‘].astype(int)data[‘Height‘]=da 查看详情

回归模型与房价预测(代码片段)

1.导入boston房价数据集2.一元线性回归模型,建立一个变量与房价之间的预测模型,并图形化显示。3.多元线性回归模型,建立13个变量与房价之间的预测模型,并检测模型好坏,并图形化显示检查结果。4. 一元多项式回归模... 查看详情

机器学习-2-线性回归

机器学习-2-线性回归首先吐槽我们的老师上课上得真是太烂了。。真的烂。。PPT里也只会对没有意义的公式,而且还不解释是在干什么。。回归什么是回归首先回归属于监督学习的一种,回归问题中,尝试预测连续的输出,与尝... 查看详情

线性回归预测boston房价

1.导入sklearn数据库代码: fromsklearn.datasetsimportload_boston            fromsklearn.model_selectionimporttrain_test_split      fromsklearn.preprocessingimportStandardScaler             fromsklearn.linear_modelimportLinearRegression          ... 查看详情

5.线性回归算法

...及说明该知识点的重要性(1)回归与分类的区别 (2)线性回归的应用 ①房价预测②贷款额度预测③销售额预测④面积与房价的关系(3)矩阵的乘积运算(4)线性回归关系模型  (5)损失函数  可以计算误差... 查看详情