Notas do curso Alura - Curso Classificação Classificação com SKLearn
Uso do SKLearn para treino, exemplo:
from sklearn.svm import LinearSVC
# features (1 sim, 0 não)
# pelo longo?
# perna curta?
# faz auau?
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]
model = LinearSVC()
model.fit(dados, classes)
animal_misterioso = [1,1,1]
model.predict([animal_misterioso])
Nomes / Terminologia
Ao invés de usar dados
e classes
como variáveis para o treinamento eu posso usar treino_x
ou treino_y
, respectivamente.
Para os testes, eu posso simplesmente usar o termo testes
Taxa de acerto
É importante medir a taxa de acerto do meu modelo. Que é basicamente um % de quantas vezes o modelo acertou o resultado, onde 100% é “Acertou tudo” e 0% é “Não acertou nenhum”. Exemplo: O modelo conseguiu prever com uma taxa de acerto do 75% que uma pessoa usuaria iria comprar aquele produto.
Para isso, geralmente dividimos o dataset que temos em treino e teste, uma boa medida é usar 75% da base para treino e o restante para teste.
Seguindo o exemplo anterior:
misterio1 = [1,1,1]
misterio2 = [1,1,0]
misterio3 = [0,1,1]
teste_x = [misterio1, misterio2, misterio3]
teste_y = [0, 1, 1]
previsoes = model.predict(teste_x)
# Dessa forma
corretos = (previsoes == teste_y).sum()
total = len(teste_x)
taxa_de_acerto = corretos/total
print("Taxa de acerto: ", taxa_de_acerto * 100)
Para facilitar, o SKLearn tem uma função pra isso, a accuracy_score:
from sklearn.metrics import accuracy_score
taxa_de_acerto = accuracy_score(teste_y, previsoes)
print("Taxa de acerto", taxa_de_acerto * 100)