Olá, João!
Vamos tentar entender o que pode estar acontecendo. Primeiramente, é importante lembrar que o resultado de um modelo de Machine Learning pode variar de acordo com vários fatores, como a divisão dos dados de treino e teste, a normalização dos dados, e até mesmo a aleatoriedade inerente a alguns algoritmos.
No seu caso, você mencionou que usou a função train_test_split
com random_state=42
. Isso é bom para garantir que a divisão dos dados seja sempre a mesma, mas se os dados em si são diferentes dos dados usados na aula, isso pode levar a resultados diferentes.
Além disso, você mencionou que normalizou os dados com StandardScaler
. Isso é uma boa prática em geral, mas dependendo da distribuição dos seus dados, talvez outra técnica de normalização (como MinMaxScaler, por exemplo) pudesse funcionar melhor.
Quanto à matriz de confusão e as métricas de precisão, é importante lembrar que esses números são apenas uma parte da história. Por exemplo, um modelo com alta precisão pode ainda assim ter um recall baixo, o que significa que ele está classificando muitos exemplos positivos como negativos. Da mesma forma, um modelo com alto recall pode ter uma precisão baixa, o que significa que ele está classificando muitos exemplos negativos como positivos.
Se você está obtendo uma precisão e um recall baixos, isso pode indicar que o seu modelo está tendo dificuldade em classificar corretamente os exemplos. Isso pode ser devido a uma variedade de fatores, como um conjunto de dados desbalanceado, características irrelevantes ou ruído nos dados.
Uma sugestão seria tentar ajustar os parâmetros do seu modelo (como o número de vizinhos no KNN, por exemplo), ou até mesmo tentar usar um algoritmo de aprendizado de máquina diferente. Também pode ser útil tentar coletar mais dados, se possível, ou tentar criar novas características a partir dos dados existentes.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!