【skLearn分类、回归算法】随机森林回归器 RandomForestRegressor


文章目录

  • 随机森林回归器 RandomForestRegressor
    • ① 重要参数、属性及接口
    • ② 简单使用 ---- 波士顿房价随机森林回归验证
      • 补充 --- 查看所有模型评估(打分)的列表


随机森林回归器 RandomForestRegressor

class sklearn.ensemble.RandomForestRegressor(n_estimators=100, *, criterion='mse', 
max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, 
max_features='auto', max_leaf_nodes=None, min_impurity_decrease=0.0, 
min_impurity_split=None, bootstrap=True, oob_score=False, n_jobs=None, random_state=None,
verbose=0, warm_start=False, ccp_alpha=0.0, max_samples=None)

几乎所有的参数,属性及接口都和随机森林分类器一模一样。仅有的不同就是回归树与分类树的不同,以及不纯度的指标,参数criterion不一致。


① 重要参数、属性及接口

criterion

  • 回归树衡量分枝质量的指标,支持的标准有三种:

    • 1)输入"mse"使用均方误差mean squared error(MSE),父节点和叶子节点之间的均方误差的差额将被用来作为特征选择的标准,这种方法通过使用叶子节点的均值来最小化L2损失
      【skLearn分类、回归算法】随机森林回归器 RandomForestRegressor_第1张图片
      其中N是样本数量,i是每一个数据样本,fi是模型回归出的数值,yi是样本点i实际的数值标签。所以MSE的本质是样本真实数据与回归结果的差异。在回归树中,MSE不只是我们的分枝质量衡量指标,也是我们最常用的衡量回归树回归质量的指标,当我们在使用交叉验证,或者其他方式获取回归树的结果时,我们往往选择均方误差作为我们的评估(在分类树中这个指标是score代表的预测准确率)。在回归中,我们追求的是,MSE越小越好。然而,回归树的接口 score返回的是R²,并不是MSE。R平方被定义如下:
      【skLearn分类、回归算法】随机森林回归器 RandomForestRegressor_第2张图片
      其中u是残差平方和(MSE*N),v是总平方和,N是样本数量,i是每一个数据样本,fi是模型回归出的数值,yi是样本点i实际的数值标签y帽是真实数值标签的平均数。R平方可以为正为负(如果模型的残差平方和远远大于模型的总平方和,模型非常糟糕,R平方就会为负),而均方误差永远为正。
      ★ 值得一提的是,虽然均方误差永远为正但是 sklearn当中使用均方误差作为评判标准时,却是计算负均方误差“(neg mean_squared_error)这是因为 sklearn在计算模型评估指标的时候,会考虑指标本身的性质,均方误差本身是一种误差,所以被 sklearn划分为模型的一种损失(loss)因此在sklearn当中,都以负数表示。真正的均方误差MSE的数值,其实就是 neg meansquared_error去掉负号的数字。

    • 2)输入"friedman mse"使用费尔德曼均方误差,这种指标使用弗里德曼针对潜在分枝中的问题改进后的均方误差

    • 3)输入"mae"使用绝对平均误差mae(mean absolute error),这种指标使用叶节点的中值来最小化L1损失

  • 属性中最重要的依然是 feature_importances_,接口依然是 apply、fit 、predict、 score最核心。

返回顶部


② 简单使用 ---- 波士顿房价随机森林回归验证

from matplotlib import pyplot as plt
from sklearn.datasets import load_boston
from sklearn.model_selection import cross_val_score
from sklearn.ensemble import RandomForestRegressor

#  获取数据集
boston = load_boston()
x = boston.data
y = boston.target

# 建模
regressor = RandomForestRegressor(n_estimators=100,random_state=0)
# 交叉验证
cross_score = cross_val_score(regressor,x,y,cv=10,scoring="neg_mean_squared_error")
cross_score

array([-10.72900447,  -5.36049859,  -4.74614178, -20.84946337,
       -12.23497347, -17.99274635,  -6.8952756 , -93.78884428,
       -29.80411702, -15.25776814])

补充 — 查看所有模型评估(打分)的列表

import sklearn
sorted(sklearn.metrics.SCORERS.keys())

【skLearn分类、回归算法】随机森林回归器 RandomForestRegressor_第3张图片

返回顶部


你可能感兴趣的:(#,机器学习,---,sklearn,机器学习,python)