在查看scikit-learn上的各种机器学习方法时,似乎有些模块LinearRegression
提供了系数 ( coef_
),而另一些模块则AdaBoostRegressor
提供了,feature_importances_
而另一些模块则不提供其中任何一个。BaggingRegressor
BernoulliNB
为什么会有这种差异?是否coef_
类似于feature_importances_
评估变量在预测中的贡献?如何评估这些都不可用的模块的功能重要性?
在查看scikit-learn上的各种机器学习方法时,似乎有些模块LinearRegression
提供了系数 ( coef_
),而另一些模块则AdaBoostRegressor
提供了,feature_importances_
而另一些模块则不提供其中任何一个。BaggingRegressor
BernoulliNB
为什么会有这种差异?是否coef_
类似于feature_importances_
评估变量在预测中的贡献?如何评估这些都不可用的模块的功能重要性?
线性回归和基于树的方法之间的主要区别在于线性回归是参数化的:它可以根据某些参数用数学封闭表达式编写。因此,系数是模型的参数,除非对数据进行归一化,否则不应将其视为任何重要性。
另一方面,非参数方法有非常不同的衡量重要性的方法。用外行的话来说,衡量变量在树上的重要性可以通过检查它们与根节点的距离来完成。在集成方法中,例如 bagging,可以将变量的重要性计算为集成中的平均值,就像在这个stackoverflow 答案中一样。
主要区别在于,参数模型通过其参数具有显示变量重要性的方法,而非参数模型需要一些额外的工作。