【机器学习实战】美国波斯顿房价预测

来源:互联网 发布:淘宝公司开店流程 编辑:程序博客网 时间:2024/04/30 14:37

一、读入数据及描述

#1.读入数据from sklearn.datasets import load_boston#从读取的房价数据存储在boston变量中boston=load_boston()
#输出数据描述print(boston.DESCR)

这里写图片描述

二、数据分割及样本构建

#数据分割from sklearn.cross_validation import train_test_splitimport numpy as npX=boston.datay=boston.target#随机擦痒25%的数据构建测试样本,剩余作为训练样本X_train,X_test,y_train,y_test=train_test_split(X,y,random_state=33,test_size=0.25)

三、分析目标值之间的差异

#分析回归目标值的差异print("The max target value is",np.max(boston.target))print("The min target value is",np.min(boston.target))print("The average target value is",np.mean(boston.target))

这里写图片描述

#2.数据标准化处理from sklearn.preprocessing import StandardScaler#分别初始化对特征和目标值的标准化器ss_X=StandardScaler()ss_y=StandardScaler()#分别对训练和测试数据的特征以及目标值进行标准化处理X_train=ss_X.fit_transform(X_train)X_test=ss_X.transform(X_test)y_train=ss_y.fit_transform(y_train.reshape(-1,1))y_test=ss_y.transform(y_test.reshape(-1,1))

四、模型训练及评估

#使用线性回归模型LinearRegression和SGDRegressor分别对波士顿房价数据进行训练及预测from sklearn.linear_model import LinearRegressionlr=LinearRegression()#使用训练数据进行参数估计lr.fit(X_train,y_train)#回归预测lr_y_predict=lr.predict(X_test)#SGDRegressorfrom sklearn.linear_model import SGDRegressor#默认配置初始化线性回归器sgdr=SGDRegressor()#使用训练数据进行参数估计sgdr.fit(X_train,y_train)#对测试数据进行回归预测sgdr_y_predict=sgdr.predict(X_test)
#模型评估#使用LinearRegression模型自带的评估模块,并输出评估结果print("lr_score:",lr.score(X_test,y_test))#R-square,MSE,MAE评估LinearRegression回归性能from sklearn.metrics import r2_score,mean_squared_error,mean_absolute_error#r2_scoreprint("r2_score:",r2_score(y_test,lr_y_predict))#MSEprint("MSE:",mean_squared_error(ss_y.inverse_transform(y_test),ss_y.inverse_transform(lr_y_predict)))#MAEprint("MAE:",mean_absolute_error(ss_y.inverse_transform(y_test),ss_y.inverse_transform(lr_y_predict)))

这里写图片描述

#使用LinearRegression模型自带的评估模块,并输出评估结果print("sgdr_score:",sgdr.score(X_test,y_test))#R-square,MSE,MAE评估LinearRegression回归性能from sklearn.metrics import r2_score,mean_squared_error,mean_absolute_error#r2_scoreprint("r2_score:",r2_score(y_test,sgdr_y_predict))#MSEprint("MSE:",mean_squared_error(ss_y.inverse_transform(y_test),ss_y.inverse_transform(sgdr_y_predict)))#MAEprint("MAE:",mean_absolute_error(ss_y.inverse_transform(y_test),ss_y.inverse_transform(sgdr_y_predict)))

这里写图片描述

1 0
原创粉丝点击