【问题标题】:OOB score and cross validation in pythonpython中的OOB分数和交叉验证
【发布时间】:2021-06-11 01:07:13
【问题描述】:

使用SKLearn的RandomForestRegressor在集合(数据)的“sales”列上构建随机森林,拟合后如何找到out-of-bag错误; python中的交叉验证分数呢?我在努力

from sklearn.ensemble import RandomForestRegressor

rlf = RandomForestRegressor(n_estimators=100, max_depth=None, max_features='auto', max_samples=None, oob_score=False)

rlf.fit(data, data['sales'])

rlf.oob_score_(data, data['sales'])

但是regressor 没有out of bag score 命令

【问题讨论】:

    标签: python regression random-forest cross-validation


    【解决方案1】:

    不清楚你需要什么,如果你想要一个oob分数(R^2),你可以这样做:

    from sklearn.ensemble import RandomForestRegressor
    rlf = RandomForestRegressor(oob_score=True,random_state=11)
    
    from sklearn.datasets import load_boston
    X, y = load_boston(return_X_y=True)
     
    rlf.fit(X,y)
    rlf.oob_score_
    
     0.8694467927166596
    

    如果你想计算另一个分数,你有 oob 预测:

    from sklearn.metrics import mean_squared_error
    mean_squared_error(y,rlf.oob_prediction_)
    11.021243813623474
    

    对于交叉验证,您需要cross_validate,默认情况下会给出 r2:

    from sklearn.model_selection import cross_validate
    scores = cross_validate(rlf, X, y)
    

    你也可以这样做:

    scores = cross_validate(rlf, X, y,scoring='neg_mean_squared_error')
    

    【讨论】:

      猜你喜欢
      • 2021-08-05
      • 1970-01-01
      • 2021-06-17
      • 2016-03-10
      • 2016-10-17
      • 2018-06-22
      • 2018-08-16
      • 2016-10-27
      • 2020-08-29
      相关资源
      最近更新 更多