本文共 2260 字,大约阅读时间需要 7 分钟。
#波士顿地区,用线性回归,去预测房价from sklearn.datasets import load_bostonboston = load_boston()print boston.DESCRfrom sklearn.cross_validation import train_test_splitimport numpy as npX = boston.datay = boston.target#如果没有这里的话,下一步会报错# X.shapeX_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)# print X_train.shape# print y_train.shape#从上面当中,显然发现预测目标房价之间,差距很大,因此,应该先标准化处理from sklearn.preprocessing import StandardScalerss_X = StandardScaler()#分别对训练和测试数据的特征,以及目标值进行标准化处理X_train = ss_X.fit_transform(X_train)X_test = ss_X.transform(X_test)ss_y = StandardScaler()#这里一定要有reshape(-1,1)这样一个过程,否则会报错,y_train = ss_y.fit_transform(y_train.reshape(-1, 1))y_test = ss_y.transform(y_test.reshape(-1, 1))#此处使用十分简单的LinearRegression和SGDRegression分别对美国波士顿地区的房价进行预测from sklearn.linear_model import LinearRegressionlr = LinearRegression()lr.fit(X_train,y_train)lr_y_predict = lr.predict(X_test)from sklearn.linear_model import SGDRegressorsgdr = SGDRegressor()sgdr.fit(X_train,y_train)sgdr_y_predict = sgdr.predict(X_test)#使用LinearRegression模型自带的评估模块。并输出结果print 'The value of default measurement of LinearRegression is:',lr.score(X_test,y_test)from sklearn.metrics import r2_score,mean_squared_error,mean_absolute_errorprint 'The value of R-squared of LinearRegression is:',r2_score(y_test,lr_y_predict)print 'The mean squared error of LinearRegression is:',mean_squared_error(ss_y.inverse_transform(y_test),ss_y.inverse_transform(lr_y_predict))print 'The mean absolute error of LinearRegression is:',mean_absolute_error(ss_y.inverse_transform(y_test),ss_y.inverse_transform(lr_y_predict))#使用SGDRegression模型自带的评估模块。并输出结果print 'The value of default measurement of SGDRegressor is:',sgdr.score(X_test,y_test)print 'The value of R-squared of LinearRegression is:',r2_score(y_test,sgdr_y_predict)print 'The mean squared error of LinearRegression is:',mean_squared_error(ss_y.inverse_transform(y_test),ss_y.inverse_transform(sgdr_y_predict))print 'The mean absolute error of LinearRegression is:',mean_absolute_error(ss_y.inverse_transform(y_test),ss_y.inverse_transform(sgdr_y_predict))
支持向量机(回归)
转载地址:http://ixjb.baihongyu.com/