您的位置:首页 > 其它

机器学习之回归预测

2017-07-18 14:20 148 查看
回归预测和分类问题的区别在于,前者待预测的目标是连续变量。

线性回归器

使用的数据集是没过波士顿地区房价数据,在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近邻模型可以借助周围K个最近训练的样本的目标数值,对待侧样本的回归至进行决策。

可以使用平均回归或者根据距离加权回归。

回归树

与决策树的思路类似,但不同之处在于其数据类型为连续型,而决策树为离散型。

树模型的优缺点:

优点:

可以解决非线性特征的问题。

不要求对特征标准化和统一量化,数值型和类别型特征都可以直接被应用在数模型的构建和预测过程中。

可以直观的输出决策过程,使得预测的结果具有可解释性。

缺点:

可能因为模型搭建过于复杂而丧失对新数据预测的精度。

树模型从上至下的预测流程会因为数据细微的更改而发生较大的结构变化,因此预测的稳定性较差。

依托训练数据构建最佳的树模型是NP难问题,即在有限时间内无法找到最优解,因此我们所使用类似贪婪算法的解法只能找到一些次优解。

集成模型

在此介绍一种随机森林模型的另一个变种:极端随机森林。

极端随机森林在每当构建一棵树的分裂节点时,不会任意的选取特征,而是先随机手机一部分特征,然后利用信息熵和基尼不纯性指标挑选最佳的节点特征。

尽管集成模型的训练时间更多,但是往往可以提供更高的表现性能和更好的稳定性。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  机器学习