Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Usei o KNeighborsClassifier. Poderiam informar se está correto?

Olá!

Para este desafio, tentei fugir um pouco de árvores e decidi pelo KNeighborsClassifier. Como ele mexe com distâncias, apliquei uma normalização aos dados.

Ainda estou aprendendo. Por favor, seria possível avaliar se fiz os passos certos? Segue meu código:


# Using only train dataset to fit normalization (avoid data leakage)
from sklearn.preprocessing import MinMaxScaler
normalize = MinMaxScaler()
X_train_norm = normalize.fit_transform(X_train)
X_val_norm = normalize.transform(X_val)

# Encoding target variable
from sklearn.preprocessing import LabelEncoder
lbl_enc = LabelEncoder()
y_train_encoded = lbl_enc.fit_transform(y_train)
y_val_encoded = lbl_enc.transform(y_val)

# Training and checking accuracy
from sklearn.neighbors import KNeighborsClassifier
neigh = KNeighborsClassifier()
neigh.fit(X_train_norm, y_train_encoded)
print(f'Acurácia do treino: {neigh.score(X_train_norm, y_train_encoded)}')
print(f'Acurácia da validação: {neigh.score(X_val_norm, y_val_encoded)}')

Cheguei nos seguintes resultados:

Acurácia do treino: 0.7606382978723404
Acurácia da validação: 0.674468085106383

Obrigado!

1 resposta
solução!

Oi, Matheus! Tudo bem?

Primeiramente, parabéns pela abordagem no desafio! É ótimo ver você experimentando algoritmos como o KNeighborsClassifier e implementando a normalização nos dados de uma forma que evite o vazamento de informações.

Além disso, seu código está bem estruturado e organizado! Continue explorando e experimentando! Se tiver mais dúvidas ou quiser discutir outras abordagens, estamos aqui para ajudar.

Obrigado por compartilhar seu código e resultados!

Bons estudos :)