Article image

AM

André Moreira14/05/2024 09:43
Compartilhe

Aprimore Suas Predições: Estratégias Avançadas de Cross Validation com Scikit-Learn

    O que é Cross Validation?

    Cross Validation é como fazer um teste prático para garantir que o seu modelo de machine learning é realmente bom em prever coisas novas. Em vez de confiar cegamente nos seus dados de treinamento, você divide-os em pedaços menores e testa o modelo várias vezes para ver se ele realmente aprendeu bem.

    image

    Como pode melhorar o score de um modelo de aprendizagem:

    Imagine que você está treinando um modelo para prever o clima. Se você só treinar com dados de um único lugar e de um único período, ele pode não conseguir se adaptar a diferentes situações. Ao usar Cross Validation, você dá ao seu modelo uma "educação mais ampla", permitindo que ele aprenda com uma variedade maior de dados e, assim, melhore sua capacidade de previsão.

    from sklearn.model_selection import KFold
    from sklearn.model_selection import cross_val_score
    from sklearn.linear_model import LinearRegression
    import numpy as np
    
    # Suponha que X seja suas features e y seja seus targets
    X = np.array([[1, 2], [3, 4], [5, 6], [7, 8]])
    y = np.array([1, 2, 3, 4])
    
    # Defina o número de folds
    k = 3
    
    # Crie uma instância do k-fold Cross Validation
    kf = KFold(n_splits=k, shuffle=True, random_state=42)
    
    # Crie um modelo de regressão linear
    model = LinearRegression()
    
    # Realize o k-fold Cross Validation
    scores = cross_val_score(model, X, y, cv=kf)
    
    # Imprima os resultados
    for fold_idx, score in enumerate(scores):
    print(f"Fold {fold_idx + 1}: Score = {score}")
    
    print(f"Mean Score: {np.mean(scores)}")
    
    1. Definimos nossos dados de exemplo X e y.
    2. Especificamos o número de folds k (3).
    3. Criamos uma instância do k-fold Cross Validation com a função KFold.
    4. Utilizamos a função cross_val_score para executar o k-fold Cross Validation e obter os scores para cada fold.
    5. Imprimimos os scores para cada fold e a média dos scores.

    Como é utilizada e o padrão de configurações:

    Para usar Cross Validation, você primeiro divide seus dados em conjuntos de treinamento e teste. O padrão mais comum é o "k-fold Cross Validation", onde seus dados são divididos em k partes iguais. Você treina seu modelo em k-1 partes e testa em 1 parte, repetindo isso k vezes para garantir que cada parte seja usada como teste pelo menos uma vez.

    Como é aplicada em modelos de classificação e regressão:

    image

    Quando aplicado a modelos de classificação, o Cross Validation desempenha um papel crucial em garantir que nosso modelo não esteja apenas "decorando" os dados de treinamento, mas sim entendendo os padrões reais subjacentes aos dados. Ao dividir os dados em diferentes folds e treinar o modelo em partes e testá-lo em outras, podemos ter uma visão mais clara de como nosso modelo se comporta em uma variedade de situações. Isso ajuda a evitar problemas como overfitting, onde o modelo se adapta muito bem aos dados de treinamento, mas falha em generalizar para novos dados.

    Em tarefas de regressão, o objetivo é prever valores numéricos. Aqui, o Cross Validation desempenha um papel crucial ao avaliar quão bem nosso modelo consegue generalizar para dados não vistos. Ao treinar o modelo em diferentes folds e testá-lo em outros, podemos ter uma estimativa mais precisa de como nosso modelo se sairá em novos conjuntos de dados. Isso nos dá uma medida confiável da capacidade do modelo de fazer previsões precisas e úteis em situações do mundo real.

    Modelos famosos que utilizam Cross Validation:

    Modelos populares como Random Forest, Support Vector Machines (SVM) e Redes Neurais frequentemente usam Cross Validation para ajustar seus parâmetros e garantir um desempenho sólido em dados desconhecidos. Isso os torna confiáveis em uma variedade de situações do mundo real.

    Conclusão:

    E é assim que o Cross Validation se torna nosso aliado na jornada do machine learning! Se você gostou deste artigo e quer mergulhar mais fundo nesse mundo fascinante, confira mais conteúdos do André Moreira no GitHub. Ele está sempre compartilhando conhecimento de forma descontraída e acessível. Então, vamos lá, explore e descubra mais!

    #ia #python #sklearn #crossvalidation

    Capa:

    Feito com Lexica.art e PowerPoint

    blocos:

    Ilustrações de capa: gerada pela Lexica.art

    Conteudo gerado por:

    ChatGPT com revisões humanas

    Compartilhe
    Comentários (0)