2016-07-20 30 views
0

Das Hauptziel ist es, eine tief lehrende Klassifikationsmethode wie CNN als Individuum in Ensemble in Python hinzuzufügen.
Der folgende Code funktioniert:Wie benutze ich meinen eigenen Klassifikator in ensemble python

clf1=CNN() 
    eclf1=VotingClassifier(estimators=[('lr', clf1)], voting='soft') 
    eclf1=eclf1.fit(XTrain,YTrain) 

aber den Fehler:

'NoneType' object has no attribute 'predict_proba' 

kommt einmal eclf1=eclf1.predict(XTest) angerannt.

Nur für den Fall, The CNN besteht aus _fit_ Funktion für die Ausbildung und die folgende Funktion:

def predict_proba(self,XTest):  
    #prediction=np.mean(np.argmax(teY, axis=1) == predict(teX)) 
    teX=XTest.reshape(len(XTest),3,112,112) 
    p=predict(teX) 
    i = np.zeros((p.shape[0],p.max()+1)) 
    for x,y in enumerate(p): 
     i[x,y] = 1 
    return i 

Antwort

0

Können Sie besser erarbeiten, was Sie getan haben und welche Fehler kam man auf?

Nur bei Ihrer Frage kann ich davon ausgehen, dass Sie nach der Zeile eclf1=eclf1.predict(XTest) versucht haben, 'previous_proba' aufzurufen. Und natürlich wird dadurch ein Fehler ausgelöst, weil die eclf1.predict(XTest) ein Array zurückgibt, das keine predyn() -Methode hat. Versuchen Sie, nur zu ändern:

pred_results=eclf1.predict(XTest) 
pred_result_probs = eclf1.predict_proba(XTest)