Я провел небольшое исследование и узнал о пакете xgbfir. Он плюет совместный вклад в файл Excel. Вы можете установить уровень взаимодействия с этим. Я написал некоторый код вокруг него, чтобы сгенерировать сюжет, который решает цель.
Если пакет не установлен
pip install xgbfir
После установки:
import xgbfir
from matplotlib import pyplot as plt
xgbfir.saveXgbFI(model, feature_names=X.columns, OutputXlsxFile='FI.xlsx')
joint_contrib = pd.read_excel('FI.xlsx')
xls = pd.ExcelFile('FI.xlsx')
df1 = pd.read_excel(xls, 'Interaction Depth 0')
df2 = pd.read_excel(xls, 'Interaction Depth 1')
df3 = pd.read_excel(xls, 'Interaction Depth 2')
frames = [df1, df2, df3]
joint_contrib = pd.concat(frames)
joint_contrib=joint_contrib.sort_values(by='Gain', ascending=True)
joint_contrib=joint_contrib.head(20)
height = joint_contrib['Gain']
bars = joint_contrib['Interaction']
y_pos = np.arange(len(bars))
plt.barh(y_pos, height)
plt.yticks(y_pos, bars)
plt.show()
Это даст 20 основных функций взаимодействия с точки зрения усиления.
Спасибо Филиппу Чо, который познакомил меня с xgbfir.
Перейдите по ссылке для получения дополнительной информации о xgbfir