SingularCode

IART-08

8. Um exemplo simples de classificação (Iris)

Atualizado em: 12 de março de 2024

 

Por: Nelson H. Koshoji

8.1. Iris.

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, classification_report
from sklearn import datasets

# Carregar um conjunto de dados de exemplo (iris dataset)
# Neste exemplo, vamos transformar em um problema binário onde classificamos ‘0’ ou não ‘0’
iris = datasets.load_iris()

iris.info()

X, y = iris.data, iris.target
y = (y == 0).astype(int) # Transformação para problema binário

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

# Criar e treinar o modelo de regressão logística
model = LogisticRegression()
model.fit(X_train, y_train)

# Prever os resultados para o conjunto de teste
y_pred = model.predict(X_test)

# Avaliar o modelo
accuracy = accuracy_score(y_test, y_pred)
report = classification_report(y_test, y_pred)

print(“Acurácia:”, accuracy)
print(“Relatório de Classificação:\n”, report)

O código Python fornecido usa um conjunto de dados popular chamado Iris para ilustrar como um modelo de machine learning é treinado e testado. O conjunto de dados Iris contém medidas de 150 amostras de flores de íris, divididas em três espécies: setosa, versicolor e virginica. Cada amostra tem quatro características: o comprimento e a largura das sépalas e pétalas.

Vamos detalhar passo a passo o que o algoritmo faz com os dados da Iris:

  1. Importar Bibliotecas e Carregar Dados:

    • Importamos as bibliotecas necessárias para manipular os dados e treinar um modelo de machine learning.
    • Carregamos o conjunto de dados Iris, que vem pré-embalado com a biblioteca Scikit-learn, uma ferramenta popular para machine learning em Python.
  2. Preparação dos Dados:

    • Armazenamos as características (features) nas variáveis X e os rótulos das espécies nas variáveis y.
    • Para simplificar o exemplo para um problema de classificação binária, transformamos os rótulos das espécies para ‘0’ se a espécie é setosa e ‘1’ para as outras espécies.
  3. Dividir os Dados em Treino e Teste:

    • Usamos a função train_test_split para dividir aleatoriamente o conjunto de dados em um conjunto de treinamento (80%) e um conjunto de teste (20%). O conjunto de treinamento é usado para construir o modelo de machine learning, enquanto o conjunto de teste é usado para avaliar sua performance.
  4. Treinamento do Modelo de Regressão Logística:

    • Inicializamos o modelo de Regressão Logística, que é um algoritmo de classificação.
    • Treinamos o modelo usando o conjunto de treinamento com a função fit, que ajusta os parâmetros do modelo (os coeficientes) aos dados.
  5. Teste do Modelo:

    • Após o modelo ser treinado, usamos o método predict para aplicar o modelo ao conjunto de teste e gerar previsões para cada amostra.
  6. Avaliação do Modelo:

    • Comparamos as previsões do modelo (y_pred) com os rótulos verdadeiros do conjunto de teste (y_test) para ver quão bem o modelo está realizando.
    • Calculamos a acurácia (accuracy_score), que nos diz a porcentagem de previsões corretas.
    • Geramos um classification_report, que fornece várias métricas de avaliação, incluindo precisão, recall e pontuação F1 para cada classe.

Ao executar esse código, você obterá um resultado numérico para a acurácia e um relatório detalhado que mostra o desempenho do modelo para cada classe. Essas métricas ajudarão você a entender a eficácia do modelo de Regressão Logística ao classificar as amostras de íris entre setosa e não setosa.

É importante ressaltar que, na prática real de machine learning, o processo envolveria uma análise mais profunda dos dados, mais passos de pré-processamento, ajuste fino dos parâmetros do modelo e a implementação de estratégias para evitar overfitting, como a validação cruzada.