Machine Learning com Python

Machine Learning (ML) é uma habilidade essencial para qualquer cientista de dados. Para ajudar iniciantes a entender melhor como aplicar ML, vamos criar um exemplo prático completo utilizando Python e a biblioteca Scikit-Learn. Este exemplo abordará a análise de dados, pré-processamento, treinamento de modelo, avaliação e otimização.

1. Introdução

Neste exemplo, usaremos o conjunto de dados “Iris”, um clássico em machine learning, que contém informações sobre três espécies de íris (setosa, versicolor e virginica) com medidas de comprimento e largura das sépalas e pétalas. O objetivo é classificar a espécie da flor com base nessas medidas.

Bibliotecas Necessárias

Certifique-se de ter as bibliotecas necessárias instaladas:

pip install pandas scikit-learn matplotlib seaborn

2. Carregando e Explorando os Dados

Primeiro, vamos carregar o conjunto de dados e explorar suas características.

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# Carregando o conjunto de dados Iris
from sklearn.datasets import load_iris
iris = load_iris()

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

# Visualizando as primeiras linhas do DataFrame
print(df.head())

# Visualizando a distribuição das espécies
sns.pairplot(df, hue='species')
plt.show()

3. Pré-processamento dos Dados

Dividiremos os dados em conjuntos de treino e teste e normalizaremos os dados.

from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler

# Dividindo os dados em variáveis independentes (X) e dependentes (y)
X = df.drop('species', axis=1)
y = df['species']

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

# Normalizando os dados
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

4. Treinamento do Modelo

Usaremos um classificador K-Nearest Neighbors (KNN) para treinar nosso modelo.

from sklearn.neighbors import KNeighborsClassifier

# Criando o modelo
model = KNeighborsClassifier(n_neighbors=3)

# Treinando o modelo
model.fit(X_train, y_train)

5. Avaliação do Modelo

Vamos avaliar a precisão do modelo utilizando o conjunto de teste.

from sklearn.metrics import accuracy_score, confusion_matrix, classification_report

# Fazendo previsões
y_pred = model.predict(X_test)

# Avaliando o modelo
accuracy = accuracy_score(y_test, y_pred)
print(f'Acurácia: {accuracy}')

# Matriz de Confusão
print('Matriz de Confusão:')
print(confusion_matrix(y_test, y_pred))

# Relatório de Classificação
print('Relatório de Classificação:')
print(classification_report(y_test, y_pred))

6. Otimização de Hiperparâmetros

Utilizaremos GridSearchCV para encontrar os melhores hiperparâmetros para o modelo KNN.

from sklearn.model_selection import GridSearchCV

# Definindo os parâmetros a serem testados
param_grid = {'n_neighbors': [3, 5, 7, 9]}

# Implementando o GridSearchCV
grid = GridSearchCV(KNeighborsClassifier(), param_grid, refit=True, verbose=3)
grid.fit(X_train, y_train)

# Melhores parâmetros
print('Melhores Parâmetros:')
print(grid.best_params_)

# Avaliando o modelo otimizado
best_model = grid.best_estimator_
y_pred_optimized = best_model.predict(X_test)
optimized_accuracy = accuracy_score(y_test, y_pred_optimized)
print(f'Acurácia do Modelo Otimizado: {optimized_accuracy}')

7. Conclusão

Neste artigo, exploramos um exemplo prático completo de machine learning com Python, utilizando a biblioteca Scikit-Learn. Passamos por todas as etapas: carregamento e exploração dos dados, pré-processamento, treinamento, avaliação e otimização do modelo.

Este exemplo fornece uma base sólida para iniciantes em machine learning e demonstra como aplicar técnicas básicas para resolver problemas reais de classificação. Continue praticando e experimentando com diferentes conjuntos de dados e algoritmos para aprimorar suas habilidades.

Rolar para cima