2016-08-21 11 views
3

나는 이진 분류 문제에 대한 다음과 같은 신경망에 맞게 가정 :AdaBoost를 사용하여 Keras 기반 신경망을 향상시키는 방법은 무엇입니까?

model = Sequential() 
model.add(Dense(21, input_dim=19, init='uniform', activation='relu')) 
model.add(Dense(80, init='uniform', activation='relu')) 
model.add(Dense(80, init='uniform', activation='relu')) 
model.add(Dense(1, init='uniform', activation='sigmoid')) 
# Compile model 
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) 
# Fit the model 
model.fit(x2, training_target, nb_epoch=10, batch_size=32, verbose=0,validation_split=0.1, shuffle=True,callbacks=[hist]) 

가 어떻게 에이다 부스트를 사용하여 신경망을 높일 것인가? 케라에는 이것에 대한 명령이 있습니까?

답변

1

Keras 자체는 adaboost를 구현하지 않습니다. 그러나 Keras 모델은 scikit-learn과 호환되므로 에서 AdaBoostClassifier을 사용할 수 있습니다. 컴파일 후 modelbase_estimator으로 사용하고 fitAdaBoostClassifier 인스턴스를 model 대신 사용하십시오.

그러나이 방법을 사용하면 전달되는 인수를 fit (예 : epoch 또는 batch_size 수)과 같이 사용할 수 없으므로 기본값이 사용됩니다. 기본값이 충분하지 않은 경우 모델 상단에 scikit-learn 인터페이스를 구현하는 클래스를 직접 작성해야하며 적절한 인수를 fit에 전달해야합니다.

+0

안녕을 참조 sklearn 에이다 부스트와 호환되지 않습니다. 삽입시 : model이 컴파일 된 keras 네트워크 인 곳에서 'bdt = AdaBoostClassifier (base_estimator = model)' 'bdt.fit (x2, training_target)'라고 입력하면 오류가 발생합니다. * TypeError : 'keras'객체를 복제 할 수 없습니다. 0x000000004296B320에서 models.Sequential 개체> '(유형 <클래스'keras.models.Sequential는 : get_params '방법'>)이를 구현하지 않는 등의 scikit 배울 추정 될 것 같지 않습니다 '* – ishido

+0

을 분명히, 그 자체로. 케라 분류기는 scikit-learn compatible가 아닙니다. 함께 작동시키는 방법에 대한 자세한 내용은이 문서를 참조하십시오. https://keras.io/scikit-learn-api/ – Ishamael

0

분명히, 신경 네트워크, 당신의 답변을 주셔서 감사합니다, https://github.com/scikit-learn/scikit-learn/issues/1752

+0

Stack Overflow에 오신 것을 환영합니다! 이것은 경계선 [링크 전용 답변] (// meta.stackexchange.com/q/8231)입니다. 여기에 많은 정보를 포함 시키려면 답을 넓히고 참고 용으로 만 링크를 사용해야합니다. –