Я изучаю Объяснимый ИИ от Kaggle, и мне трудно понять следующее.
Вопрос: Создать набор данных с 2 объектами и целью, такой, чтобы pdp первого объекта был плоским, но важность его перестановки высока.
Код:
import eli5
from eli5.sklearn import PermutationImportance
n_samples = 20000
# Create array holding predictive feature
X1 = 4 * rand(n_samples) - 2
X2 = 4 * rand(n_samples) - 2
# Create y. you should have X1 and X2 in the expression for y
y = X1 * X2
# create dataframe because pdp_isolate expects a dataFrame as an argument
my_df = pd.DataFrame({'X1': X1, 'X2': X2, 'y': y})
predictors_df = my_df.drop(['y'], axis=1)
my_model = RandomForestRegressor(n_estimators=30, random_state=1).fit(predictors_df, my_df.y)
pdp_dist = pdp.pdp_isolate(model=my_model, dataset=my_df, model_features=['X1', 'X2'], feature='X1')
pdp.pdp_plot(pdp_dist, 'X1')
plt.show()
perm = PermutationImportance(my_model).fit(predictors_df, my_df.y)
# show the weights for the permutation importance you just calculated
eli5.show_weights(perm, feature_names = ['X1', 'X2'])
Что приводит к следующему:
Мой вопрос: для графика частичной зависимости, если я оставлю X2 постоянным и увеличу X1, у должен увеличиться, и у нас должна быть линия с положительным наклоном. Где я не прав?
Спасибо.