Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Mão na massa: construindo um classificador com o dataset Iris

import numpy as np
import pandas as pd
from sklearn import datasets
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score

# Carregar o dataset Iris
iris = datasets.load_iris()

# Converter para DataFrame
df = pd.DataFrame(data=iris.data, columns=iris.feature_names)
df['target'] = iris.target

# Exibir as primeiras linhas
print("Primeiras linhas do dataset:")
print(df.head())

# Separar atributos (X) e rótulos (y)
X = df.iloc[:, :-1]
y = df['target']

# Dividir os dados em treino e teste
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.25, random_state=42
)

# Criar e treinar o modelo KNN
modelo = KNeighborsClassifier(n_neighbors=3)
modelo.fit(X_train, y_train)

# Realizar previsões
y_pred = modelo.predict(X_test)

# Avaliar a acurácia
acuracia = accuracy_score(y_test, y_pred)
print(f"\nAcurácia do modelo: {acuracia:.2f}")

# Validação cruzada
scores = cross_val_score(modelo, X, y, cv=5)
print(f"Acurácia média da validação cruzada: {scores.mean():.2f}")

# Testar uma nova amostra
nova_flor = np.array([[6.0, 3.0, 4.8, 1.8]])

previsao = modelo.predict(nova_flor)

print(
    f"Classe prevista para a nova amostra: "
    f"{iris.target_names[previsao[0]]}"
)
1 resposta

Fala, Isis! Tudo bom?

Agradeço por trazer sua solução para o fórum!

Curti demais como trabalhou o uso do dataset Iris, destacou a aplicação prática do KNN para classificação e ainda reforçou a importância da validação cruzada para avaliar a robustez do modelo. Essa abordagem mostra domínio de bibliotecas essenciais, organização clara do fluxo de trabalho e foco em transformar teoria em prática com testes bem estruturados.

E algumas boas práticas que você pode adotar são:

  • Testar outros algoritmos: como SVM ou Random Forest, para comparar desempenho e ampliar a análise.
  • Experimentar diferentes valores de k: comparar resultados para encontrar o número de vizinhos mais adequado.
  • Normalizar os dados: aplicar escalonamento para evitar que atributos com maior amplitude influenciem demais o modelo.

Continue postando as suas soluções! Além de ganhar pontos de XP na plataforma, você pode ajudar outros estudantes no fórum.

Ah, uma pergunta: você considera mais interessante evoluir esse exercício testando diferentes algoritmos de classificação ou aprofundar na análise de métricas além da acurácia, como precisão e recall?

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!