基于scikit-learn的房价回归分析
2019-07-13秦培煜胡艳芬
秦培煜 胡艳芬
1.武汉软件工程职业学院; 2.中国地质大学(武汉)
随着大数据和人工智能时代的到来,机器学习应用的场景越来越多。机器学习分为监督学习和无监督学习,回归属于监督学习范畴[1]。本文对scikit-learn自带的房价数据进行了回归分析。
一、回归分析过程
(一)房价数据加载
数据使用scikit-learn自带的boston房价数据,使用load_boston函数加载。
import numpy as np
from sklearn.datasets import load_boston
house = load_boston()
首先导入numpy和sklearn.datasets中load_boston函数,使用 load_boston加载boston房价数据,其中house.data是特征数据,house.target是标签数据。
(二)数据标准化
from sklearn.preprocessing import StandardScaler
stdHouse = StandardScaler().fit_transform(house.data)
特征数据中有些特征量纲比较大,有些特征量纲比较小,如果放在一起使用,会对最终分析结果产生不好影响。这里使用sklearn.preprocessing里的StandardScaler对房价数据进行标准化。house是标准化前的数据,stdHouse是标准化后的数据。
(三)数据划分
from sklearn.model_selection import train_test_split
data_train,data_test,target_train,target_test = train_test_split(stdHouse,house.target,random_state=100)
这里使用sklearn.model_selection里train_test_split对数据进行划分。默认数据的75%划分为训练集,25%划分为测试集。
(四)回归模型选用
from sklearn.linear_model import LinearRegression
linReg = LinearRegression().fit(data_train,target_train)
pred = linReg.predict(data_test)
使用sklearn.linear_model里的LinearRegression模型对数据进行训练和预测。得到的pred是预测数据。
(五)均方误差评价指标
from sklearn.metrics import mean_squared_error
mean_squared_error(target_test,pred)
mean_squared_error是均方误差指标,最后得到真实值target_test和预测值之间的均方误差为27.18。
二、结论
本文用scikit-learn,对boston房价数据进行了回归分析。首先加载房价数据;其次对数据进行标准化;然后将数据划分成训练集和测试集,并用线性回归模型对训练集进行训练,对测试集进行预测;最后用均方误差指标对真实值和预测值进行评价。整个过程对于回归分析有着重要的指导作用。