image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Article image
Robson Lago
Robson Lago11/02/2025 20:15
Compartilhe

Machine Learning com Python: Um Guia Prático para Iniciantes

    Machine Learning com Python

    image

    O que é Machine Learning?

    Imagine um sistema que pode prever se um cliente comprará um produto apenas analisando seus hábitos de navegação. Ou um modelo que pode diagnosticar doenças a partir de imagens médicas com maior precisão do que um humano. Isso não é ficção científica – é Machine Learning! Essa tecnologia está transformando diversas indústrias, desde a saúde até o setor financeiro, permitindo que computadores aprendam padrões a partir de dados e tomem decisões inteligentes sem serem explicitamente programados.

    Por que Python?

    Python é a principal escolha para Machine Learning devido à sua simplicidade, versatilidade e forte suporte da comunidade. Grandes empresas como Google, Netflix e Tesla adotam Python para desenvolver modelos avançados que impulsionam inovação e eficiência. Com bibliotecas poderosas como Scikit-Learn, TensorFlow e PyTorch, a criação e o treinamento de modelos se tornaram mais acessíveis do que nunca.

    A revolução do Machine Learning na indústria tem Python como protagonista. Sua sintaxe intuitiva e um ecossistema robusto de bibliotecas permitem que cientistas de dados e engenheiros desenvolvam modelos de alto desempenho rapidamente. Setores como saúde, finanças e tecnologia utilizam Python para resolver desafios complexos, desde diagnósticos médicos até detecção de fraudes.

    Além disso, a integração do Python com tecnologias emergentes, como computação em nuvem e Big Data, potencializa soluções escaláveis e eficientes. O aprendizado contínuo e a otimização de modelos, por meio de técnicas como ajuste de hiperparâmetros e aprendizado profundo, ampliam suas aplicações e consolidam Python como ferramenta essencial no avanço da inteligência artificial.

    Objetivo do artigo

    Este artigo explora como utilizar Python para desenvolver modelos de Machine Learning, cobrindo desde a preparação dos dados até a avaliação e otimização do modelo. Além disso, criamos uma carga simples para facilitar o trabalho com os códigos apresentados.

    Criação de um DataFrame (carga simples) para ser validado em machine learning.

    import pandas as pd
    
    data = {'idade': [25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 22, 28, 33, 38, 42, 48, 52, 58, 62, 68],
          'renda': [50000, 60000, 80000, 90000, 120000, 95000, 110000, 150000, 140000, 160000, 30000, 45000, 75000, 85000, 100000, 105000, 115000, 130000, 145000, 155000],
          'target': [0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1]}
    df = pd.DataFrame(data)
    
    # Salvar o DataFrame em um arquivo CSV (opcional)
    df.to_csv('dados.csv', index=False)
    

    Preparação dos Dados

    Importância da Limpeza de Dados

    Dados de baixa qualidade podem comprometer o desempenho de modelos de Machine Learning. Por isso, é essencial remover valores inconsistentes, lidar com dados ausentes e normalizar variáveis quando necessário.

    Exemplo prático com Pandas

    import pandas as pd
    
    # Carregando os dados
    df = pd.read_csv('dados.csv')
    
    # Exibindo as primeiras linhas
    print(df.head())
    
    # Verificando valores nulos
    print(df.isnull().sum())
    
    # Preenchendo valores nulos com a média
    df.fillna(df.mean(), inplace=True)
    

    image Esse processo garante que os dados estejam prontos para análise e modelagem.

    Análise Exploratória de Dados (EDA)

    O que é EDA?

    A Análise Exploratória de Dados (EDA) ajuda a entender padrões e tendências no conjunto de dados. Inclui técnicas como visualização de gráficos e cálculo de estatísticas descritivas.

    Gráficos para análise de dados

    import matplotlib.pyplot as plt
    import seaborn as sns
    
    # Histograma
    sns.histplot(df['idade'], kde=True)
    plt.title('Distribuição de Idade')
    plt.show()
    
    # Gráfico de dispersão
    sns.scatterplot(x='idade', y='renda', data=df)
    plt.title('Renda vs Idade')
    plt.show()
    

    image Os gráficos Histograma Gráfico de dispersão permitem identificar padrões e correlações entre variáveis.

    Escolha do Modelo de Machine Learning

    Tipos de Modelos

    • Supervisionados: Regressão e classificação. Ex: Prever se um e-mail é spam (dados rotulados).
    • Não supervisionados: Clustering e redução de dimensionalidade. Agrupar clientes com base em comportamento de compra (sem rótulos).

    Exemplo prático: Classificação com Random Forest

    from sklearn.model_selection import train_test_split
    from sklearn.ensemble import RandomForestClassifier
    from sklearn.metrics import accuracy_score
    
    # Dividindo os dados em treino e teste
    X = df.drop('target', axis=1)
    y = df['target']
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
    
    # Criando e treinando o modelo
    model = RandomForestClassifier(n_estimators=100, random_state=42)
    model.fit(X_train, y_train)
    
    # Fazendo previsões
    y_pred = model.predict(X_test)
    
    # Avaliando a acurácia
    print(f'Acurácia: {accuracy_score(y_test, y_pred):.2f}')
    

    Acurácia: 0.75


    Avaliação do Modelo

    Principais métricas de avaliação

    Além da acurácia, outras métricas importantes incluem precisão, recall e F1-score.

    from sklearn.metrics import classification_report
    
    print(classification_report(y_test, y_pred))
    

    image

    Matriz de Confusão

    from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay
    
    cm = confusion_matrix(y_test, y_pred)
    disp = ConfusionMatrixDisplay(confusion_matrix=cm)
    disp.plot(cmap='Blues')
    plt.title('Matriz de Confusão')
    plt.show()
    

    image Essas métricas ajudam a compreender onde o modelo está errando.

    Otimização do Modelo

    Tuning de Hiper parâmetros com Grid Search

    from sklearn.model_selection import GridSearchCV
    
    param_grid = {
      'n_estimators': [50, 100, 200],
      'max_depth': [None, 10, 20],
      'min_samples_split': [2, 5, 10]
    }
    
    grid_search = GridSearchCV(model, param_grid, cv=3, scoring='accuracy')
    grid_search.fit(X_train, y_train)
    print(f'Melhores Parâmetros: {grid_search.best_params_}')
    Melhores Parâmetros: {'max_depth': None, 'min_samples_split': 2, 'n_estimators': 100}
    

    O ajuste de hiper parâmetros pode melhorar significativamente o desempenho do modelo.

    Conclusão

    Recapitulação

    Neste artigo, cobrimos todas as etapas do desenvolvimento de um modelo de Machine Learning com Python, incluindo:

    • Preparação e limpeza de dados
    • Análise exploratória
    • Escolha e treinamento de um modelo
    • Avaliação e otimização

    Quer aprendeer mais? Acesse: DIO | Codifique o seu futuro global agora

    Visite meu Git: https://github.com/RP-Lago/ML-with-PY.git

    Compartilhe
    Comentários (0)