0

In my program,

from sklearn import linear_model
from keras.wrappers.scikit_learn import KerasClassifier,KerasRegressor
import eli5
from eli5.sklearn import PermutationImportance

if __name__ == '__main__':
    (cnn_tube_par_X_train, cnn_tube_par_X_test, cnn_tube_Y_train, cnn_tube_Y_test) = read_file()
    sc_X = StandardScaler()
    sc_Y = StandardScaler()

    sc_cnn_tube_par_X_train = sc_X.fit_transform(cnn_tube_par_X_train.iloc[:, 1:6].values)
    sc_cnn_tube_par_X_test = sc_X.transform(cnn_tube_par_X_test.iloc[:, 1:6].values)
    sc_cnn_tube_eff_Y_train = sc_Y.fit_transform(cnn_tube_Y_train.iloc[:, -1:].values)
    sc_cnn_tube_eff_Y_test = sc_Y.transform(cnn_tube_Y_test.iloc[:, -1:].values)
    MLR_pImportance(sc_cnn_tube_par_X_train,sc_cnn_tube_par_X_test,sc_cnn_tube_eff_Y_train,sc_cnn_tube_eff_Y_test)
def MLR_pImportance(sc_mlr_tube_par_X_train,sc_mlr_tube_par_X_test,sc_mlr_tube_eff_Y_train,sc_mlr_tube_eff_Y_test):
    mlr = linear_model.LinearRegression()
    mlr.fit(sc_mlr_tube_par_X_train,sc_mlr_tube_eff_Y_train)


    perm = PermutationImportance(mlr,random_state=1).fit(sc_mlr_tube_par_X_test,sc_mlr_tube_eff_Y_test)
    print(perm.feature_importances_)
    print(perm.feature_importances_std_)
    eli5.show_weights(perm)

The results show that :

[0.63895352 0.1270582  0.06904505 0.32131836 0.02549574]
[0.02766096 0.01535046 0.01789114 0.02761288 0.01048179]

these are the result of

print(perm.feature_importances_)
print(perm.feature_importances_std_)

but the sebtance: eli5.show_weights(perm) show nothing

could you tell the reason,and how to solve it

bin
  • 1
  • 1

0 Answers0