首页 > 编程知识 正文

决策树筛选变量,筛选特征变量

时间:2023-05-06 10:02:28 阅读:213149 作者:1765

决策树类的算法一般都能用来计算特征重要性,通过决策树分类器的特征重要性进行评估。

常用的决策树分类器有:DecisionTreeClassifier,RandomForestClassifier,ExtraTreesClassifier,GradientBoostingClassifier,XGBClassifier等。

但每个分类器下的参数可能略有不同,为了有更好的效果,尽量优化下参数取值。

本文以gbdt为例展示:

class TreeModelSelect(): def __init__(self): pass # 选取树模型的分类器 def TreeModelFunc(self, x, y, list_name): clf = GradientBoostingClassifier(n_estimators=100, max_depth=None, min_samples_split=10, random_state=0) clf.fit(x, y) var_importance = pd.Series(clf.feature_importances_,index=list_name).sort_values(ascending=False) print('var_importance : n',var_importance) return var_importance # 可视化importance降序展示 def plot_result(self,df): plt.figure() ax = df.plot(kind='bar',rot=0,ylim=[0,0.5]) ax.set_ylabel('importance') ax.set_xlabel('features') ax.set_title('sample features importance') plt.show() # 加载及调用 def load_transform(self): path = r'E:programGaocsdnProgram' data = pd.read_excel(path + '/dataset.xlsx', 'all') y = np.array(data['flag']) x = np.array(data.iloc[:,2:]) list_name = list(data.iloc[:,2:].columns) var_importance = self.TreeModelFunc(x, y, list_name) self.plot_result(var_importance) 结果展示:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。