我试图比较xgboost和light gradient boosting功能的重要性,但两者都有不同的评估标准。因此,我正在尝试更改功能重要性类型,并看看如何做到这一点
例如
pipeline = make_pipeline(XGBClassifier())
param_grid = {
'xgbclassifier__learning_rate': [0.01,0.005,0.001],
}
gini_scorer = make_scorer(normalized_gini, greater_is_better = True)
# Initialize Grid Search Modelg
model = GridSearchCV(pipeline,param_grid = param_grid,scoring = gini_scorer,
verbose= 1,iid= True,
refit = True,cv = 3)
model.fit(x, y)
print("Best score: %0.3f" % model.best_score_)
print("Best parameters set:")
model = model.best_estimator_
然后,要获取特征重要性i:
feature_importances = model.steps[-1][1].feature_importances_
pd.DataFrame(feature_importances, index=feature_names,
columns=['Importance']).sort_values('Importance') \
.plot(kind='barh', figsize=(15, 25))
但是,我不确定如何编辑我的代码,以允许功能重要性发生变化,例如,如果我想通过增益等进行更改,该怎么办
目前没有回答
相关问题 更多 >
编程相关推荐