《机器学习与实践》读书笔记及代码(三)

#波士顿地区,用线性回归,去预测房价
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.shape

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)

# print X_train.shape
# print y_train.shape


#从上面当中,显然发现预测目标房价之间,差距很大,因此,应该先标准化处理
from sklearn.preprocessing import StandardScaler

ss_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 LinearRegression
lr = LinearRegression()
lr.fit(X_train,y_train)
lr_y_predict = lr.predict(X_test)

from sklearn.linear_model import SGDRegressor
sgdr = 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_error

print '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))

支持向量机(回归)

猜你喜欢

转载自blog.csdn.net/garrulousabyss/article/details/81276799
今日推荐