交叉验证cross_val_score

交叉验证用于评估模型稳定性,通过将数据分为n份并轮流做训练和测试。在回归树示例中,使用sklearn的DecisionTreeRegressor和cross_val_score函数,以均方误差为评价标准进行10折交叉验证。回归树没有分类树中的class_weight参数,criterion可以选择mse、friedman_mse或mae来衡量误差。
摘要由CSDN通过智能技术生成

回归树:交叉验证

本文仅用作学习记录 及分享,有不对的地方还请指正,谢谢!
交叉验证是用来观察模型的稳定性的一种方法,我们将数据划分为n份,依次使用其中一份作为测试集,其他n-1份作为训练集,多次计算模型的精确性来评估模型的平均准确程度。训练集和测试集的划分会干扰模型的结果,因此用交叉验证n次的结果求出的平均值,是对模型效果的一个更好的度量。

简单来看看回归树是怎么样工作的

from sklearn.datasets import load_boston
from sklearn.model_selection import cross_val_score
from sklearn.tree import DscisionTreeRegressor

boston = load_boston()
reg = DecisionTreeRegressor(random_state=0)
cross_val_score(regressor,boston.data,boston.target,cv=10,scoring = 'neg_mean_squared_error') 

DecisionTreeRegressor

class sklearn.tree.DecisionTreeRegressor(criterion='mse', splitter='best', max_depth=None, min_samples_split=2, min_samples_split=2,min_samples_leaf=1, min_weight_fracton_leaf=0.0, max_features=None, random_state=None, max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, presort=False)

几乎所有参数,属性及接口都和分类树一摸一样。需要注意的是,在回归树中,没有标签分布是否均衡的问题,因此没有class_weight这样的参数

criterion

(1)输入“mse”使用均方误差mean square error(MSE),MSE = 1 N ∑ i = 1 n ( f i − y i ) 2 \frac 1N\sum_{i=1}^n (fi-yi)^2 N1i=1n(fiyi)2,其中fi为模型回归出的数值,yi为样本真实,所以MSE的本质是样本真实数据与回归结果的差异。
(2)输入“friedman_mse”使用费尔德曼均方误差,是一种改进后的均方误差。
(3)输入“mae”使用绝对平均误差mean absolute error(MAE)。
属性依旧有feature_importances_,接口依然是apply,fit,predict,score

介绍交叉验证函数

cross_val_score()
第一个位置可以是任何模型,包括分类树,回归树,随机森林等。
第二个是所有特征数据,这里不用分训练集和测试集
第三个是所有标签数据。
第四个是划分份数n,这里cv=10是将数据集分了10份。
第五个是返回的衡量指标,默认是R平方,这里的是neg_mean_squared_error是负均方误差
注意,R平方越接近1说明效果越好,很有意思的是R平方也可以为负数,但是一旦为负数时,说明曲线拟合效果不是很好,最好更换估计量。
负均方误差我们一般将其乘以负一得到均方误差(MSE)再来评估,当MSE越小,则说明拟合越好。
实例在泰坦尼克号幸存者的预测和用随机森林填充缺失值中有涉及

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值