开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第11天,点击查看活动详情
使用线性回归构建房价预测
数据集介绍:
1.样本数:10000
2.特征数量: 12个相关属性(即12个指标变量),1个类别变 量(即loan_status,贷款状态)。
其中包括8个Default,8764个Fully Paid,1203个Charged Off, 1个Late (16-30 days),24个Late (31-120 days)。
测试模型时,将从各类别中分别抽取70%的数据作为训练集, 用剩余样本进行分类结果测试。 在我们的例子中 y = 波士顿房价。 X = 其余的输入变量。
流程如下:
- 导入工具包
- 加载数据
- 训练集-测试集划分
- 模型构建
- 模型预测与评价
# 01 导包
#导入pandas
import pandas as pd
#从sklearn的模型选择模块导入训练集-测试集划分类
from sklearn.model_selection import train_test_split
#从sklearn的线性模型模块导入线性回归类
from sklearn.linear_model import LinearRegression
#从sklearn的模型评价模块导入决定系数
from sklearn.metrics import r2_score
#从sklearn的模型评价模块导入均方误差
from sklearn.metrics import mean_squared_error
# 02 加载数据
使用Pandas的read_csv函数从csv中读取数据,预测目标特征是‘target‘,其余的数据为训练数据
#读取csv
data = pd.read_csv('d:/datasets/HousingData.csv')
#数据标签
y = data['target']
X = data.copy().drop(['target'], axis=1) #去掉标签列的完整数据
# 03 训练集-测试集划分
训练集-测试集划分,一部分用于模型训练,一部分用于模型评估,比例为70%(训练)--30%(测试 )
#X_train为训练数据, y_train为训练集标签,X_test为测试数据,y_test为测试集标签
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3)
# 04 模型构建
lr = LinearRegression() #创建一个线性回归对象
lr.fit(X_train, y_train) #拟合
# 05 模型预测与评价
y_pred = lr.predict(X_test)#模型预测
print(r2_score(y_test, y_pred))#模型评价, 决定系数
print(mean_squared_error(y_test, y_pred))#均方误差