Я пытаюсь выяснить глобальную особенность важности модели пост-тренинга, используя Skater в качестве библиотеки.Я получаю ошибку, которая гласит следующее:
FeatureImportanceError: Что-то пошло не так.Значения не суммируются с положительным значением. Это может быть связано с: 1) 0 или бесконечными делениями2) возмущенные значения == исходные значения3) свойство является константой.
Я обнаружил ошибку.Моя переменная X содержит столбец, который содержит несколько нулей, поэтому ошибка появляется.
model_rfr = random_search_CV(model_rfr,X_permut,Y,params_rfr,folds,
n_iter,scoring,n_jobs) #####THIS IS A CUSTOM RANDOM CV SEARCH FUNCTION THAT IS USED
estimator_rfr=model_rfr.best_estimator_ ###TAKING THE BEST MODEL OUT FROM HERE
estimator_rfr
Out[84]:
RandomForestRegressor(bootstrap=True, criterion='mse', max_depth=3,
max_features='auto', max_leaf_nodes=None,
min_impurity_decrease=0.0, min_impurity_split=None,
min_samples_leaf=0.5, min_samples_split=0.2,
min_weight_fraction_leaf=0.0, n_estimators=200, n_jobs=None,
oob_score=False, random_state=None, verbose=0, warm_start=False)
type(estimator_rfr)
Out[85]: sklearn.ensemble.forest.RandomForestRegressor
####The above part is working flawlessly
from skater import Interpretation
interpreter_rfr = Interpretation(X_permut, feature_names=np.asarray(X_permut.columns)) ###X_permut is my Dataframe
from skater.model import InMemoryModel
model1_rfr = InMemoryModel(estimator_rfr.predict,examples=X_permut, unique_values=list(X_permut.columns))
plots_2_rfr = interpreter_rfr.feature_importance.plot_feature_importance(model1_rfr, ascending=True)
plots2_Series_rfr=interpreter_rfr.feature_importance.feature_importance(model1_rfr)
FeatureImportanceError: Что-то пошло не так.Значения не суммируются с положительным значением. Это может быть связано с: 1) 0 или бесконечными делениями2) возмущенные значения == исходные значения3) свойство является константой.
My X_permut Dataframe is as follows:
X_permut(34,857,5)
Out[78]:
Distance BuildingArea Lattitude Longtitude YearBuilt
0 2.0 160.0 -38.0 145.0 0
1 2.0 160.0 -38.0 145.0 0
2 2.0 79.0 -38.0 145.0 41
3 2.0 160.0 -38.0 145.0 0
4 2.0 150.0 -38.0 145.0 41
5 2.0 160.0 -38.0 145.0 0
6 2.0 142.0 -38.0 145.0 154
7 2.0 220.0 -38.0 145.0 146
8 2.0 160.0 -38.0 145.0 41
Y(34857,)
Out[79]:
0 1050173.0
1 1480000.0
2 1035000.0
3 1050173.0
4 1465000.0
5 850000.0
6 1600000.0
7 1050173.0
8 1050173.0
9 1050173.0
10 941000.0
Я думалисправление состоит в том, что при кодировании для категориальных значений я мог бы, вероятно, начать кодирование с 1, но это невозможно, поскольку подключено много компонентов и потребуется много доработок.Может кто-нибудь помочь мне с этим с альтернативой ??