多元线性回归练习-预测房价

目的:

找到数据集中关于特征的描述。使用数据集中的其他变量来构建最佳模型以预测平均房价。

数据集说明:

数据集总共包含506个案例。

每种情况下,数据集都有14个属性:

特征 说明
MedianHomePrice 房价中位数
CRIM 人均城镇犯罪率
ZN 25,000平方英尺以上土地的住宅用地比例
INDIUS 每个城镇非零售业务英亩的比例。
CHAS 查尔斯河虚拟变量(如果束缚河,则为1;否则为0)
NOX- 氧化氮浓度(百万分之一)
RM 每个住宅的平均房间数
AGE 1940年之前建造的自有住房的比例
DIS 到五个波士顿就业中心的加权距离
RAD 径向公路的可达性指数
TAX 每10,000美元的全值财产税率
PTRATIO 各镇师生比例
B 1000(Bk-0.63)^ 2,其中Bk是按城镇划分的黑人比例
LSTAT 人口状况降低百分比
MEDV 自有住房的中位价格(以$ 1000为单位)

设定库和数据。

import numpy as np
import pandas as pd
import statsmodels.api as sm
from statsmodels.stats.outliers_influence import variance_inflation_factor

from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import r2_score
from patsy import dmatrices
import matplotlib.pyplot as plt
%matplotlib inline

np.random.seed(42)

#加载内置数据集,了解即可
boston_data = load_boston()
df = pd.DataFrame()
df['MedianHomePrice'] = boston_data.target
df2 = pd.DataFrame(boston_data.data)
df2.columns = boston_data.feature_names
df = df.join(df2)
df.head()
MedianHomePrice CRIM ZN INDUS CHAS NOX RM AGE DIS RAD TAX PTRATIO B LSTAT
0 24.0 0.00632 18.0 2.31 0.0 0.538 6.575 65.2 4.0900 1.0 296.0 15.3 396.90 4.98
1 21.6 0.02731 0.0 7.07 0.0 0.469 6.421 78.9 4.9671 2.0 242.0 17.8 396.90 9.14
2 34.7 0.02729 0.0 7.07 0.0 0.469 7.185 61.1 4.9671 2.0 242.0 17.8 392.83 4.03
3 33.4 0.03237 0.0 2.18 0.0 0.458 6.998 45.8 6.0622 3.0 222.0 18.7 394.63 2.94
4 36.2 0.06905 0.0 2.18 0.0 0.458 7.147 54.2 6.0622 3.0 222.0 18.7 396.90 5.33
1.获取数据集中每个特征的汇总

使用 corr 方法计算各变量间的相关性,判断是否存在多重线性。

#绘制热力图
import seaborn as sns
plt.subplots(figsize=(10,10))#调节图像大小
sns.heatmap(df.corr(), annot = True, vmax = 1, square = True, cmap='RdPu')

在这里插入图片描述

2.拆分数据集

创建一个 training 数据集与一个 test 数据集,其中20%的数据在 test 数据集中。将结果存储在 X_train, X_test, y_train, y_test 中。

X = df.drop('MedianHomePrice' , axis=1, inplace=False
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值