脚本宝典收集整理的这篇文章主要介绍了特征重要性之排列重要性Permutaion Importance,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
基于模型刷选特征方法有:排列重要性、shap value、null importance
这里简单介绍一下排列重要性:
首先建立一个模型,计算某列特征重要性时,打乱该列顺序,其余列不变,然后再使用打乱后的数据来预测,最后计算正确率;如果某列对模型预测很重要,那么打乱该列顺序之后,模型预测正确率就会很差,如果对预测结果没有影响,则说明该变量对模型没有那么重要;为了消减随机对结果的影响,我们会多次乱打,再求均值和方差。
eli5
库计算和展示排列重要性# -*- coding: utf-8 -*- """ Created on Sun Sep 26 15:51:26 2021 @author: chenguimei """ # 引入数据 From sklearn import datasets import pandas as pd import numpy as np iris = datasets.load_iris() X = pd.DataFrame(iris.data) X.columns = iris.feature_names y = iris.target PRint("Class labels:",np.unique(y)) #打印分类类别的种类 # 切分训练数据和测试数据 from sklearn.model_selection import train_test_splIT ## 30%测试数据,70%训练数据,stratify=y表示训练数据和测试数据具有相同的类别比例 X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.3,random_state=1,stratify=y) #决策树模型 from sklearn.tree import DecisionTreeClassifier tree = DecisionTreeClassifier(criterion='gini',max_depth=4,random_state=1) tree.fit(X_train,y_train) print(X.columns,tree.feature_importances_) from sklearn.metrics import roc_curve, auc resu = tree.predict(X_test) print(resu) print(y_test) import eli5 from eli5.sklearn import PErmutationImportance perm = PermutationImportance(lr, random_state=1).fit(X_test, y_test) eli5.show_weights(perm, feature_names = X_test.columns.tolist())
from sklearn.inspection._permutation_importance import permutation_importance from sklearn.datasets import load_iris from sklearn.metrics import get_scorer from sklearn.linear_model import LOGisticRegression permutation_importance(tree, X_test, y_test, get_scorer('accuracy'))
以上是脚本宝典为你收集整理的特征重要性之排列重要性Permutaion Importance全部内容,希望文章能够帮你解决特征重要性之排列重要性Permutaion Importance所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。