[SkLearn分類、回帰アルゴリズム]ランダムフォレストリグレッサ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)

ほとんどすべてのパラメーター、属性、およびインターフェースは、ランダムフォレスト分類子とまったく同じです。唯一の違いは、回帰ツリーと分類ツリーの違い、および不純物指数であり、パラメーター基準に一貫性がありません。


①重要なパラメータ、属性、インターフェース

基準

  • 回帰ツリーは、ブランチの品質を測定します。サポートされている標準は3つあります。

    • 1)「を入力しmse使用」均方误差mean squared error(MSE)、平均二乗誤差の差をリーフノードの親ノードを、L2の損失を最小限にするために、リーフノードの平均値を使用して、この方法により、標準機能の選択として使用される
      ここに画像の説明を挿入
      請求項をN是样本数量i是每一个数据样本fi是模型回归出的数值yi是样本点i实际的数值标签などMSEの本質は、サンプルの実際のデータと回帰結果の違いです。回帰ツリーでは、MSEはブランチ品質測定指標であるだけでなく、回帰ツリーの回帰品質を測定するために最も一般的に使用される指標でもあります。回帰ツリーの結果を取得するために相互検証またはその他の方法を使用している場合、私たちはしばしば平均を選択します。二乗誤差が評価として使用されます(分類ツリーでは、この指標はスコアで表される予測精度です)。その見返りとして、MSEが小さいほど良いことを追求しました。ただし、回归树的接口 score返回的是R²,并不是MSE以下のように定義されるR二乗:
      ここに画像の説明を挿入
      特徴u是残差平方和(MSE*N)v是总平方和N是样本数量i是每一个数据样本fi是模型回归出的数值yi是样本点i实际的数值标签y帽是真实数值标签的平均数R-squaredは正または負になり(モデルの残差平方和がモデルの総平方和よりもはるかに大きい場合、モデルは非常に悪く、R-squaredは負になります)、平均二乗誤差は常に正になります。
      ★平均二乗誤差は常に正ですが、平均二乗誤差をsklearnの基準として使用すると、負の平均二乗誤差 "(neg mean_squared_error)が計算されます。これは、sklearnがモデル評価を計算するときに発生するためです。指標自体の性質を考慮すると、平均二乗誤差自体が誤差であるため、sklearnによってモデルの損失として分類されます。したがって、sklearnでは、負の数として表されます。真の平均二乗誤差MSEは実際には負です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())

ここに画像の説明を挿入

トップに戻る


おすすめ

転載: blog.csdn.net/qq_45797116/article/details/113772178