机器学习之回归预测
2017-07-18 14:20
148 查看
回归预测和分类问题的区别在于,前者待预测的目标是连续变量。
其中使用了线性回归模型LinearRegression和SGDRegressor。
线性回归器是最为简单和易用的回归模型。在训练数据规模大于十万的情况下,随机梯度法估计参数模型(SGD),会有更为优秀的表现。
该系列的模型可以通过配置不同的核函数来改变模型性能。因此,在使用时多尝试几种配置。
其中核函数,是一种可以将线性不可分的低维输入,映射到高位可分的新特征空间。
可以使用平均回归或者根据距离加权回归。
树模型的优缺点:
不要求对特征标准化和统一量化,数值型和类别型特征都可以直接被应用在数模型的构建和预测过程中。
可以直观的输出决策过程,使得预测的结果具有可解释性。
树模型从上至下的预测流程会因为数据细微的更改而发生较大的结构变化,因此预测的稳定性较差。
依托训练数据构建最佳的树模型是NP难问题,即在有限时间内无法找到最优解,因此我们所使用类似贪婪算法的解法只能找到一些次优解。
极端随机森林在每当构建一棵树的分裂节点时,不会任意的选取特征,而是先随机手机一部分特征,然后利用信息熵和基尼不纯性指标挑选最佳的节点特征。
尽管集成模型的训练时间更多,但是往往可以提供更高的表现性能和更好的稳定性。
线性回归器
使用的数据集是没过波士顿地区房价数据,在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难问题,即在有限时间内无法找到最优解,因此我们所使用类似贪婪算法的解法只能找到一些次优解。
集成模型
在此介绍一种随机森林模型的另一个变种:极端随机森林。极端随机森林在每当构建一棵树的分裂节点时,不会任意的选取特征,而是先随机手机一部分特征,然后利用信息熵和基尼不纯性指标挑选最佳的节点特征。
尽管集成模型的训练时间更多,但是往往可以提供更高的表现性能和更好的稳定性。
相关文章推荐
- 机器学习实战(八)预测数值型数据:回归
- 机器学习·一元线性回归之房价预测(MATLAB版)
- 机器学习实践之预测数值型数据--回归
- 机器学习实战——预测数值型数据:回归
- 机器学习实战 - 读书笔记(08) - 预测数值型数据:回归
- 机器学习教程 二.在股票上的回归预测
- 机器学习实战(8) ——预测数值型数据回归(python实现)
- 机器学习实战——第八章:用回归预测数值型数据
- 机器学习——预测数值型数据:回归
- python机器学习库sklearn——神经网络回归预测
- 机器学习实战---线性回归提高篇之乐高玩具套件二手价预测
- 机器学习之预测数值型数据: 回归
- 【机器学习实战三:Logistic回归之点的二分类和预测病马的死亡率】
- 机器学习之-预测数值型数据:回归-具体怎么实现及应用
- 机器学习(五):回归方法——预测数值型数据
- 【机器学习】回归问题(一)
- 【机器学习】线性回归相关推导
- 从零单排入门机器学习:线性回归(linear regression)实践篇
- 机器学习之线性回归(Linear Regression)
- 机器学习 数据挖掘 推荐系统 时间序列挖掘-预测算法-三次指数平滑法(Holt-Winters)