回归预测和分类问题的区别在于,前者待预测的目标是连续变量。
使用的数据集是没过波士顿地区房价数据,在sklearn.datasets中可以找到。
其中使用了线性回归模型LinearRegression和SGDRegressor。
from sklearn.datasets import load_boston
from sklearn.preprocessing import StandardScaler
from sklearn.cross_validation import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.linear_model import SGDRegressor
from sklearn.metrics import r2_score,mean_squared_error, mean_absolute_error
import numpy as np
boston = load_boston()
# print(boston.DESCR)
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("the max target value is",np.max(boston.target))
# print("the min target value is",np.min(boston.target))
# print("the avg target value is",np.mean(boston.target))
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)
y_test = ss_y.transform(y_test)
#线性回归器1
lr = LinearRegression()
#参数估计
lr.fit(X_train,y_train)
#回归预测
lr_y_predict = lr.predict(X_test)
#线性回归器2
sgdr = SGDRegressor()
sgdr.fit(X_train,y_train)
sgdr_y_predict = sgdr.predict(X_test)
#自带的评分
print('The value of default measurement of LR is',lr.score(X_test,y_test))
#r2_score
print('The value of r2_score measurement of LR is',r2_score(y_test,lr_y_predict))
#mean_squared_erroe
print('The value of mean_squared_erroe measurement of LR is',
mean_squared_error(ss_y.inverse_transform(y_test),ss_y.inverse_transform(sgdr_y_predict)))
#mean_abosolute_error
print('The value of mean_absolutu_score measurement of LR is',
mean_absolute_error(ss_y.inverse_transform(y_test),ss_y.inverse_transform(sgdr_y_predict)))
线性回归器是最为简单和易用的回归模型。在训练数据规模大于十万的情况下,随机梯度法估计参数模型(SGD),会有更为优秀的表现。
支持向量机不但可以支持分类,还可以支持回归。同样是从训练数据中选取一部分更有效的支持向量,只是这少部分的训练样本所提供的并不是类别目标,而是具体的预测数值。
该系列的模型可以通过配置不同的核函数来改变模型性能。因此,在使用时多尝试几种配置。
其中核函数,是一种可以将线性不可分的低维输入,映射到高位可分的新特征空间。
K近邻的特性是不需要训练参数。在回归任务重,K近邻模型可以借助周围K个最近训练的样本的目标数值,对待侧样本的回归至进行决策。
可以使用平均回归或者根据距离加权回归。
与决策树的思路类似,但不同之处在于其数据类型为连续型,而决策树为离散型。
树模型的优缺点:
在此介绍一种随机森林模型的另一个变种:极端随机森林。
极端随机森林在每当构建一棵树的分裂节点时,不会任意的选取特征,而是先随机手机一部分特征,然后利用信息熵和基尼不纯性指标挑选最佳的节点特征。
尽管集成模型的训练时间更多,但是往往可以提供更高的表现性能和更好的稳定性。
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。