Ao tentar executar vencedor.predict(validacao_dados) o python me informa que meu modelo não foi "fitado" ainda, sendo que a função fit_and_predict já realiza a ação, será que pode ser relacionado ao fato de eu estar utilizando o jupyter notebook?
Segue a mensagem de erro e alguns trechos de código
NotFittedError Traceback (most recent call last)
<ipython-input-98-c27d18e5fc7b> in <module>()
4 vencedor = modeloAdaBoost
5
----> 6 teste_real(vencedor, validacao_dados, validacao_marcacoes)
<ipython-input-95-d66529a04746> in teste_real(modelo, validacao_dados, validacao_marcacoes)
1 def teste_real(modelo, validacao_dados, validacao_marcacoes):
----> 2 resultado = modelo.predict(validacao_dados)
3 acertos = resultado == validacao_marcacoes
4
5 total_acertos = sum(acertos)
C:\ProgramData\Anaconda3\lib\site-packages\sklearn\ensemble\weight_boosting.py in predict(self, X)
600 The predicted classes.
601 """
--> 602 pred = self.decision_function(X)
603
604 if self.n_classes_ == 2:
C:\ProgramData\Anaconda3\lib\site-packages\sklearn\ensemble\weight_boosting.py in decision_function(self, X)
658 class in ``classes_``, respectively.
659 """
--> 660 check_is_fitted(self, "n_classes_")
661 X = self._validate_X_predict(X)
662
C:\ProgramData\Anaconda3\lib\site-packages\sklearn\utils\validation.py in check_is_fitted(estimator, attributes, msg, all_or_any)
766
767 if not all_or_any([hasattr(estimator, attr) for attr in attributes]):
--> 768 raise NotFittedError(msg % {'name': type(estimator).__name__})
769
770
NotFittedError: This AdaBoostClassifier instance is not fitted yet. Call 'fit' with appropriate arguments before using this method.
def fit_and_predict(modelo, treino_dados, treino_marcacoes, teste_dados, teste_marcacoes):
modelo.fit(treino_dados, treino_marcacoes)
resultado = modelo.predict(teste_dados)
diferencas = resultado - teste_marcacoes
acertos = [d for d in diferencas if d == 0]
total_acertos = len(acertos)
total_elementos = len(teste_dados)
taxa_acerto = 100.0 * total_acertos / total_elementos
print('Taxa de acerto: ', taxa_acerto)
print('Total de elementos: ', total_elementos)
return taxa_acerto
from sklearn.naive_bayes import MultinomialNB
modeloMultinomial = MultinomialNB()
resultadoMultinomial = fit_and_predict(modelo, treino_dados, treino_marcacoes, teste_dados, teste_marcacoes)
from sklearn.ensemble import AdaBoostClassifier
modeloAdaBoost = AdaBoostClassifier()
resultadoAdaBoost = fit_and_predict(modelo, treino_dados, treino_marcacoes, teste_dados, teste_marcacoes)
def teste_real(modelo, validacao_dados, validacao_marcacoes):
resultado = modelo.predict(validacao_dados)
acertos = resultado == validacao_marcacoes
total_acertos = sum(acertos)
total_elementos = len(validacao_marcacoes)
taxa_acerto = 100.0 * taxa_acerto / total_elementos