【问题标题】:How to calculate MSE criteria in RandomForestRegression?如何在 RandomForestRegression 中计算 MSE 标准?
【发布时间】:2019-10-15 14:15:55
【问题描述】:

我现在使用 sklearn.ensemble 中的 RandomForestRegressor 来分析数据集,并选择“mse”作为衡量分割质量的函数。但我不太清楚 mse 是如何计算的。谁能在这里向我解释一下(用方程式更好)或提供一些参考资料?提前谢谢你。

【问题讨论】:

    标签: python random-forest mse


    【解决方案1】:

    如果我想尽快回答这个作为成本函数方法之一的指标,如果您认为您的模型遵循下图中的绿线,并且这些蓝点是您的数据 MSE,顾名思义就是平方和的平均值所有数据点的区域相对于总而言之代表您的模型错误的线。 MSE 可以通过以下方式计算:

    它显示了 我们的 medel 的好坏更小 MSE,更好模型!

    更多信息:

    Understanding Regression Error Metrics in Python

    Introduction to Loss Functions

    2019 年 5 月 30 日更新: 要验证事情,您可以深入研究文档,有时还可以深入代码中,根据其文档 .RandomForestRegressor,MSE 只不过是方差减少 作为特征选择标准,即使在您检查源代码时,它也用于测量拆分的质量。另一方面,如果您对 .RandomForestRegressor 中的 MSE 方法持怀疑态度,您可以通过像这样自定义 criterion 来独立使用:

    from sklearn.metrics import mean_squared_error
    from sklearn.ensemble import RandomForestRegressor
    #Feature Selection
    criterion = mean_squared_error(y, predictions)
    RandomForestRegressor( ...,criterion= criterion,...)
    

    或使用 numpy:

    import numpy as np
    criterion = np.mean((y_test - est.predict(X_test))**2)
    

    【讨论】:

    • 混淆矩阵有什么区别?我可以相信 sklearn 的混淆矩阵吗?
    • @Mario,感谢您的快速回答。您的回答是对 MSE 是什么的一般解释。但我认为RF回归中的MSE计算是不同的。这里的 MSE 是一个拆分标准;根据我的理解,这意味着由于各种潜在的分裂点,我们必须计算许多 MSE,并找到导致最小 MSE 的分裂点。但同样,我真的不知道它是如何在 RF 回归模型中计算出来的。
    • @Mario 让我们举一个例子来更清楚地展示我的问题。我们有一个包含两个特征 A 和 B 以及一个目标 C 的数据集。在一个节点(假设我们这里有 m 个特征 A),我们随机选择特征 A 进行拆分。射频是做什么的?它将从 m 个数字中尝试 A 的每个值,并为拆分找到 A 的最佳值,该值在拆分后给出最小的 MSE。我认为一个拆分的 MSE 是两个子节点中 MSE 的总和。您需要比较 m 个 MSE 值,即 MSE 是按潜在分割点计算的,而不是在树的末尾。对吗?
    • @ZhendongCao 基于sklearn 中的文档,RandomForrest Regressor criterion 是:衡量分割质量的函数 这是一个性能度量(默认情况下,MSE ) 这有助于算法决定在树中的节点上进行最佳分割的规则。您可以查看paper 及其计算以便更好地理解。我假设它会检查每个分割点并取平均值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    相关资源
    最近更新 更多