Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

NotFittedError

  1. Ao executar o código abaixo no Colab:
# features (1 sim, 0 não)
# pelo longo?
# perna curta?
# faz au-au?

porco1 = [0, 1, 0]
porco2 = [0, 1, 1]
porco3 = [1, 1, 0]

cachorro1 = [0, 1, 1]
cachorro2 = [1, 0, 1]
cachorro3 = [1, 1, 1]


# 1 => porco, 0 => cachorro
dados = [porco1, porco2, porco3, cachorro1, cachorro2, cachorro3]
classes = [1, 1, 1, 0, 0, 0]

from sklearn.svm import LinearSVC
model = LinearSVC()
model.fit = (dados, classes)

animal_misterioso = [1, 1, 1]
model.predict([animal_misterioso])
  1. Aparece o seguinte erro:
NotFittedError                            Traceback (most recent call last)
<ipython-input-10-bc82fb3cfb40> in <cell line: 23>()
     21 
     22 animal_misterioso = [1, 1, 1]
---> 23 model.predict([animal_misterioso])

2 frames
/usr/local/lib/python3.10/dist-packages/sklearn/utils/validation.py in check_is_fitted(estimator, attributes, msg, all_or_any)
   1388 
   1389     if not fitted:
-> 1390         raise NotFittedError(msg % {"name": type(estimator).__name__})
   1391 
   1392 

NotFittedError: This LinearSVC instance is not fitted yet. Call 'fit' with appropriate arguments before using this estimator.
2 respostas
solução!

Olá Andréa, tudo bem com você?

O erro que você está encontrando é devido a um pequeno equívoco na forma como você está tentando treinar o seu modelo. No seu código, você está tentando atribuir os dados e as classes ao método fit do seu modelo, ao invés de chamá-lo com esses argumentos da seguinte forma: model.fit(dados, classes). Deixo abaixo a correção aplicada:

from sklearn.svm import LinearSVC
model = LinearSVC()
model.fit(dados, classes) # Aqui está a correção. Use parênteses, não igualdade.

O método 'fit' é uma função que treina o seu modelo nos dados e classes fornecidos. Quando você usa um sinal de igual (=), você está tentando redefinir a função 'fit' em si, ao invés de chamá-la.

Portanto, o seu código completo e corrigido ficaria assim:

# features (1 sim, 0 não)
# pelo longo?
# perna curta?
# faz au-au?

porco1 = [0, 1, 0]
porco2 = [0, 1, 1]
porco3 = [1, 1, 0]

cachorro1 = [0, 1, 1]
cachorro2 = [1, 0, 1]
cachorro3 = [1, 1, 1]

# 1 => porco, 0 => cachorro
dados = [porco1, porco2, porco3, cachorro1, cachorro2, cachorro3]
classes = [1, 1, 1, 0, 0, 0]

from sklearn.svm import LinearSVC
model = LinearSVC()
model.fit(dados, classes) # Aqui está a correção.

animal_misterioso = [1, 1, 1]
model.predict([animal_misterioso])

Após realizar a correção, basta dar continuidade na aula Primeiro treino e teste de um modelo de classificação a partir do minuto 8:10.

Espero ter ajudado. Continue mergulhando em conhecimento e não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Em caso de dúvidas estou à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Prezado Felippe Rafael,

Muito obrigada pela ajuda.

Alterei meu código, conforme sua indicação e funcionou.

Grata, Andréa.