#美国波士顿地区房价描述
from sklearn.datasets import load_boston
boston=load_boston()
print(boston.DESCR)
#数据分割
from sklearn.cross_validation import train_test_split
import numpy as np
X=boston.data
y=boston.target
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.25,random_state=33)
#分析回归目标值的差异
print('最大值:',np.max(boston.target))
print('最小值:',np.min(boston.target))
print('平均值:',np.mean(boston.target))
#发现目标房价之间的差异较大,需要对特征和目标值进行标准化处理
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 LinearRegression
lr=LinearRegression()
lr.fit(X_train,y_train)
lr_y_pred=lr.predict(X_test)
from sklearn.linear_model import SGDRegressor
sgdr=SGDRegressor()
sgdr.fit(X_train,y_train)
sgdr_y_pred=lr.predict(X_test)
#对回归性能作出评价
print('lr 模型自带评分机制:',lr.score(X_test,y_test))
from sklearn.metrics import r2_score,mean_squared_error,mean_absolute_error
print('r方:',r2_score(y_test,lr_y_pred))
print('均方误差MSE:',mean_squared_error(y_test,lr_y_pred))
print('平均绝对误差MAE:',mean_absolute_error(y_test,lr_y_pred))
print('sgdr 模型自带评分机制:',sgdr.score(X_test,y_test))
print('r方:',r2_score(y_test,sgdr_y_pred))
print('均方误差MSE:',mean_squared_error(y_test,sgdr_y_pred))
print('平均绝对误差MAE:',mean_absolute_error(y_test,sgdr_y_pred))