eli5 объясняет прогноз данных - PullRequest
0 голосов
/ 06 марта 2020

У меня вопрос по поводу eli5. я пытаюсь использовать вызов метода eli5.explain_prediction_df Я создал модель нейронной сети и хочу использовать eli5.explain_prediction_df для дальнейшего изучения того, почему нейронная сеть выбрала определенный выбор для новых прогнозов, но каждый раз, когда я использую eli5.explain_prediction_df, я возвращает NoneType. может кто-нибудь помочь мне понять, почему он продолжает возвращать NoneType

def create_model(n_neurons=100,ops='adam',dp = 0.77, active = 'relu', kerinit = 'uniform'):

# create model
model = Sequential()
model.add(Dense(units=n_neurons,  kernel_initializer=kerinit, activation = active, input_dim = 136))
model.add(Dropout(dp))
#model.add(Dense(units=n_neurons,  kernel_initializer=kerinit, activation = active))
#model.add(Dropout(dp))
model.add(Dense(units=n_neurons,  kernel_initializer=kerinit, activation = active))
model.add(Dropout(dp))
model.add(Dense(units=1, kernel_initializer=kerinit, activation = 'sigmoid'))
# Compile model
model.compile(loss='binary_crossentropy', optimizer=ops, metrics=['accuracy'])
return model


model = KerasClassifier(build_fn = create_model, epochs=100, batch_size=500, verbose=1, validation_split= 0.33)


ld= [
 1,0, 
 0,0,0,0,1,
 0, 0, 0, 0, 1, 0, 0, 0, 0,

0,1,0,
0,1,0,


0,1,0,
0,1,0,



3,


263.0, 0.39, 0.32, 0.621, 0.662, 0.479, 0.579, 0.5920000000000001, 0.7140000000000001, 0.31, 0.37, 0.342, 0.529, 0.428, 0.415, 0.31, 1.02, 1.08, 1.01, 0.504, 0.51, 0.54, 0.56, 25.0, 177.8, 13.0,


825.0, 0.37, 0.25, 0.601, 0.6629999999999999, 0.47700000000000004, 0.588, 0.588, 0.706, 0.19, 0.35, 0.365, 0.522, 0.441, 0.425, 0.32, 1.03, 1.09, 1.05, 0.506, 0.51, 0.53, 0.52, 25.0, 172.72, 12.0,



  46,  62,    

  1145,  955,   

  4,4, 4,4, 1,1,

  1.90,  1.90,   

  1, 1, 0, 


0.3629032258064516,
0.6416666666666667,
0.44505494505494503,
0.10164835164835165,
0.5113122171945701,
0.6666666666666666,0.33333333333333337,
0.46875,0.53125,
0.7272727272727273,0.2727272727272727,
0.5467032967032966,0.45329670329670335,
0.675,0.325,
0.43414634146341463,0.5658536585365853,
0.5737704918032787,0.4262295081967213,



0.37,
0.5842696629213483,
0.37037037037037035,
0.10052910052910052,
0.5,
0.625,0.375,
0.6666666666666666,0.33333333333333337,
0.5625,0.4375,
0.4708994708994709,0.5291005291005291,
0.5648148148148148,0.4351851851851852,
0.2903225806451613,0.7096774193548387,
0.5526315789473685,0.4473684210526316,


0.4, 0.6,  




     ]

ld = [ld]
ld = pd.DataFrame(np.array(ld)).values
ld = sc.transform(ld)

#this returns a NoneType
bb= eli5.explain_prediction_df(estimator=model, doc=ld)
...