为非线性分类器寻找标签特定的主要特征
Finding label-specific top features for non-linear classifier
是否有任何函数可以给出随机森林/XG Boost 分类器中每个标签的主要特征? classifier.feature_importances_
仅给出整个分类器的主要特征。
正在寻找类似于 classifier.coef_
的东西,它为 sklearn 中的 SVM 和朴素贝叶斯分类器提供了标签特定的顶级特征。
首先,随机森林/Xgboost 甚至简单的决策树/任何树集成都是一个固有的多 class class 化模型。因此,它将预测 multi-class 输出,而无需在二进制 classifier 之上使用任何包装器(1 vs 1 / 1 vs Rest)(这是逻辑 regression/SVM/SGDClassifier 会做的) .
因此,您可以单独获得整体多 class class 化的特征重要性,而不是单个标签的特征重要性。
如果您真的想知道各个标签的特征重要性,请使用 onevsRest wrapper 和 decisionTree/RandomForest/Xgboost 作为估计器。
这不是推荐的方法,因为与单个决策树相比,结果可能不是最优的。
一些示例here。
import pandas as pd
feature_importances = pd.DataFrame(rf.feature_importances_,
index = X_train.columns,
columns=['importance']).sort_values('importance',ascending=False)
试试这个!
或者 1 vs Rest 也是一个不错的选择,但是需要很多时间。
是否有任何函数可以给出随机森林/XG Boost 分类器中每个标签的主要特征? classifier.feature_importances_
仅给出整个分类器的主要特征。
正在寻找类似于 classifier.coef_
的东西,它为 sklearn 中的 SVM 和朴素贝叶斯分类器提供了标签特定的顶级特征。
首先,随机森林/Xgboost 甚至简单的决策树/任何树集成都是一个固有的多 class class 化模型。因此,它将预测 multi-class 输出,而无需在二进制 classifier 之上使用任何包装器(1 vs 1 / 1 vs Rest)(这是逻辑 regression/SVM/SGDClassifier 会做的) .
因此,您可以单独获得整体多 class class 化的特征重要性,而不是单个标签的特征重要性。
如果您真的想知道各个标签的特征重要性,请使用 onevsRest wrapper 和 decisionTree/RandomForest/Xgboost 作为估计器。 这不是推荐的方法,因为与单个决策树相比,结果可能不是最优的。
一些示例here。
import pandas as pd
feature_importances = pd.DataFrame(rf.feature_importances_,
index = X_train.columns,
columns=['importance']).sort_values('importance',ascending=False)
试试这个!
或者 1 vs Rest 也是一个不错的选择,但是需要很多时间。