내가 시도 : 여기
feature_importance = pd.Series(model.booster().get_fscore()).sort_values(ascending=False)
feature_importance.plot(kind='bar', title='Feature Importances')
plt.ylabel('Feature Importance Score')
그래프입니다 : 여기
이 아래에있는 내 코드입니다 여기에 간단한 예제가 있는데, 여기에 내가 작성한 코드가있다 :
import pandas as pd
import xgboost as xgb
import numpy as np
%matplotlib inline
import matplotlib.pyplot as plt
model = xgb.XGBRegressor()
size = 100
data = pd.DataFrame([], columns=['a','b','c','target'])
data['a'] = np.random.rand(size)
data['b'] = np.random.rand(size)
data['c'] = np.random.rand(size)
data['target'] = np.random.rand(size)*data['a'] + data['b']
model.fit(data.drop('target',1), data.target)
feature_importance = pd.Series(model.booster().get_fscore()).sort_values(ascending=False)
feature_importance.plot(kind='bar', title='Feature Importances')
plt.ylabel('Feature Importance Score')
(210)
결과는 다음과 같습니다
당신이 레이블이 괜찮 볼 수있다. 기본 기능 이름을 따라서 xgboost,
model.fit(np.array(data.drop('target',1)), data.target)
feature_importance = pd.Series(model.booster().get_fscore()).sort_values(ascending=False)
feature_importance.plot(kind='bar', title='Feature Importances')
plt.ylabel('Feature Importance Score')
따라서
문제가하는 np.array 기본적으로 인덱스/열 이름이 없습니다 :
지금, 대신 dataframe의 배열을 전달 할 수 있습니다 (f0, f1, ..., fn)
안녕하십니까. 당신도 저를 위해 이것을 볼 수 있다고 생각하십시오! –
위를 확인하세요. 안녕하세요. @jezrael –
니스, 고마워. 그리고 이제'f20','f22'는 어떤'dict'와 매핑됩니까? 아니면 다른 데이터 프레임? – jezrael