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]
)