Solucionado (ver solução)

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!

Solucionado
(ver solução)
2
respostas

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

1. Carregando os dados

Primeiro, carreguei o dataset disponibilizado pela biblioteca sklearn e transformei os dados em um DataFrame para facilitar a visualização.

import pandas as pd
from sklearn.datasets import load_iris

iris = load_iris()

df = pd.DataFrame(
    iris.data,
    columns=iris.feature_names
)

df["especie"] = iris.target

print(df.head())

2. Separando os dados

Depois, separei as características das flores das respectivas espécies e dividi os dados entre treino e teste.

from sklearn.model_selection import train_test_split

X = iris.data
y = iris.target

X_treino, X_teste, y_treino, y_teste = train_test_split(
    X,
    y,
    test_size=0.2,
    random_state=42
)

3. Treinando o modelo

Escolhi utilizar o algoritmo KNN por ser um modelo simples e fácil de entender.

from sklearn.neighbors import KNeighborsClassifier

modelo = KNeighborsClassifier(n_neighbors=3)

modelo.fit(X_treino, y_treino)

4. Avaliando o resultado

Após o treinamento, realizei as previsões e calculei a acurácia do modelo. Também utilizei a validação cruzada.

from sklearn.metrics import accuracy_score
from sklearn.model_selection import cross_val_score

previsoes = modelo.predict(X_teste)

acuracia = accuracy_score(
    y_teste,
    previsoes
)

scores = cross_val_score(
    modelo,
    X,
    y,
    cv=5
)

print(acuracia)
print(scores.mean())

5. Testando uma nova amostra

Por último, fiz um teste utilizando uma nova amostra.

nova_flor = [[5.1, 3.5, 1.4, 0.2]]

resultado = modelo.predict(nova_flor)

print(
    iris.target_names[resultado][0]
)
2 respostas

Olá, Estudante! Como vai?

Parabéns pela resolução da atividade!

Vi que você explorou o dataset Iris para classificação com Python, utilizou muito bem o KNN para prever espécies e ainda compreendeu a importância da validação cruzada para avaliar a robustez do modelo.

Continue postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Uma dica interessante para o futuro é testar diferentes valores de n_neighbors e comparar os resultados. Assim:

for k in range(1, 11):
    modelo = KNeighborsClassifier(n_neighbors=k)
    scores = cross_val_score(modelo, X, y, cv=5)
    print(f"k={k}, acurácia média={scores.mean():.2f}")

Isso faz com que você identifique o valor de k que melhor se adapta ao seu conjunto de dados.

Se quiser aprofundar ainda mais, algumas boas práticas são:

  • Normalizar os dados: melhora a performance do KNN.
  • Aplicar validação cruzada estratificada: garante equilíbrio entre classes nos folds.
  • Testar diferentes métricas de distância: pode alterar significativamente os resultados.

Ah, uma pergunta: você prefere experimentar diferentes algoritmos simples como KNN para consolidar fundamentos, ou já explorar modelos mais complexos como Random Forest para desafios maiores?

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

Abraço e bons estudos!

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

Obrigado pelo feedback e pela dica.