image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Article image
Christopher Costa
Christopher Costa12/12/2024 19:03
Compartilhe

Do Zero ao Primeiro Modelo: Introdução ao Reconhecimento de Padrões e IA

    A inteligência artificial (IA) está transformando o mundo, e o reconhecimento de padrões é uma das suas bases mais importantes. Desde identificar rostos em fotos até prever tendências de mercado, o reconhecimento de padrões é uma área que combina matemática, estatística e computação para encontrar regularidades em dados. Este artigo tem como objetivo introduzir você ao tema e guiá-lo na criação do seu primeiro modelo usando Python.


    O que é Reconhecimento de Padrões?

    Reconhecimento de padrões é a técnica de identificar regularidades ou estruturas em dados. Um ótimo exemplo disso são os algoritmos de recomendação de plataformas como Netflix, YouTube e TikTok. Eles analisam o conteúdo que você consome e comparam com o que outras pessoas com interesses similares estão interagindo para oferecer sugestões personalizadas. A ideia central é usar dados para treinar um modelo que aprenda a fazer previsões ou classificações automaticamente.


    Ferramentas Necessárias

    Para este tutorial, usaremos as seguintes bibliotecas Python:

    • Pandas: Para manipulação de dados.
    • NumPy: Para cálculos matemáticos.
    • Scikit-learn: Para criar e avaliar modelos de aprendizado de máquina.


    Certifique-se de instalar as bibliotecas com:


     pip install pandas numpy scikit-learn
    

     

    Criando o Primeiro Modelo

    Vamos construir um modelo simples para prever se é um bom dia para jogar futebol com base em condições climáticas.


    1. Preparando os Dados

    Primeiro, criamos um dataset fictício:

     

    import pandas as pd
    
     
    
    # Criando um dataset simples
    
    data = {
    
     'Aspecto': ['Sol', 'Sol', 'Nuvens', 'Chuva', 'Chuva', 'Chuva', 'Nuvens', 'Sol', 'Sol', 'Chuva', 'Sol', 'Nuvens', 'Nuvens', 'Chuva', ‘Nuvens’],
    
     'Umidade': ['Elevada', 'Elevada', 'Normal', 'Normal', 'Normal', 'Elevada', 'Normal', 'Elevada', 'Normal', 'Normal', 'Normal', 'Normal', 'Elevada', 'Elevada', ‘Normal’],
    
     'Vento': ['Fraco', 'Forte', 'Fraco', 'Fraco', 'Forte', 'Forte', 'Fraco', 'Fraco', 'Fraco', 'Fraco', 'Forte', 'Fraco', 'Forte', 'Forte', ‘Fraco’],
    
     'Jogar': ['Não', 'Não', 'Sim', 'Sim', 'Não', 'Não', 'Sim', 'Não', 'Sim', 'Sim', 'Sim', 'Sim', 'Sim', 'Não', ‘Sim’]
    
    }
    
     
    
    df = pd.DataFrame(data)
    
    print(df)
    


     

    2. Transformando os Dados

    Os algoritmos de aprendizado de máquina funcionam melhor com dados numéricos. Por isso, utilizamos o método LabelEncoder para converter variáveis categóricas em valores numéricos. Por exemplo, o atributo 'Vento' pode ser transformado em 1 para 'Fraco' e 0 para 'Forte':


    from sklearn.preprocessing import LabelEncoder
    
     
    
    # Convertendo as variáveis categóricas para números
    
    label_encoder = LabelEncoder()
    
    for column in ['Aspecto', 'Umidade', 'Vento', 'Jogar']:
    
     df[column] = label_encoder.fit_transform(df[column])
    
     
    
    print(df)
    


     

    3. Treinando o Modelo

    Existem vários modelos de aprendizado de máquina, cada um adequado a diferentes tipos de problemas. Por exemplo, algoritmos como KNN, Random Forest e Regressão Logística são populares para tarefas de classificação, mas, neste tutorial, optamos por utilizar um modelo de árvore de decisão, que é simples de entender e interpretar. Para treinar o modelo, utilizaremos a biblioteca Scikit-learn, que facilita a implementação e avaliação de modelos de aprendizado de máquina.


    from sklearn.model_selection import train_test_split
    
    from sklearn.tree import DecisionTreeClassifier
    
    from sklearn.metrics import accuracy_score
    
     
    
    # Selecionando atributos e rótulos
    
    X = df[['Aspecto', 'Umidade', 'Vento']]
    
    y = df['Jogar']
    
     
    
    # Dividindo 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)
    
     
    
    # Treinando o modelo
    
    model = DecisionTreeClassifier()
    
    model.fit(X_train, y_train)
    
     
    
    # Fazendo previsões
    
    y_pred = model.predict(X_test)
    
     
    
    # Avaliando o modelo
    
    print("Acurácia:", accuracy_score(y_test, y_pred))
    



    A avaliação do modelo é feita medindo sua acurácia, que é a porcentagem de previsões corretas em relação ao total de amostras de teste. Como o nosso dataset contém apenas 15 linhas, com 20% de dados para teste, isso resulta em aproximadamente 3 amostras de teste. Para alcançar uma acurácia de 1, ou 100%, o modelo precisaria acertar todas as 3 amostras de teste. No entanto, é importante lembrar que em datasets muito pequenos, a acurácia pode ser uma métrica instável, pois pequenas variações nas amostras de teste podem resultar em grandes mudanças na acurácia.


    4. Visualizando a Árvore de Decisão

    Podemos visualizar a árvore de decisão gerada, o modelo é uma estrutura que simula um processo de tomada de decisão, onde cada 'nó' representa uma condição ou teste em um atributo dos dados, e cada 'folha' representa um resultado ou classe final. A árvore funciona realizando uma série de perguntas baseadas nos dados. A cada pergunta feita em um nó, os dados são divididos de acordo com a resposta ('sim' ou 'não'). Dependendo da resposta, a árvore 'desce' para o próximo nível, realizando novas perguntas. Esse processo continua até que a árvore chegue a um 'nó folha', onde a decisão final é tomada, fornecendo a previsão ou classificação final.


    from sklearn.tree import plot_tree
    
    import matplotlib.pyplot as plt
    
     
    
    # Visualizando a árvore
    
    disp = plot_tree(model, feature_names=['Aspecto', 'Umidade', 'Vento'], class_names=['Não', 'Sim'], filled=True)
    
    plt.show()
    
    


    5. Testando o Modelo

    Agora podemos usar o modelo para prever se é um bom dia para jogar futebol com base em novas condições climáticas:

    # Testando o modelo com novos dados
    
    aspecto = int(input("Aspecto(Sol=2, Nuvens=1, Chuva=1): "))
    
    umidade = int(input("Umidade(Elevada=0, Normal=1): "))
    
    vento = int(input("Vento(Forte=0, Fraco=1): "))
    
    novo_dia = pd.DataFrame({'Aspecto': aspecto, 'Umidade': umidade, 'Vento': vento})
    
    previsao = model.predict(novo_dia)
    
    print("Previsão para jogar futebol:", "Sim" if previsao[0] == 1 else "Não")
    



    Conclusão

    Neste tutorial, você aprendeu os conceitos básicos de reconhecimento de padrões e como construir um modelo simples usando Python. Usamos um exemplo prático relacionado à decisão de jogar futebol com base em condições climáticas. O próximo passo é explorar novos datasets e como trabalhar sobre eles para conseguir resultados melhores, considere dar uma passada no Kaggle, um ótimo site para buscar datasets e analisar códigos de pessoas mais experientes.

    Com a IA e o reconhecimento de padrões, as possibilidades são infinitas. Comece pequeno, prática é o segredo para avançar!


    Link do Kaggle: https://www.kaggle.com/datasets

    Compartilhe
    Comentários (1)
    MÁRCIA SOUZA
    MÁRCIA SOUZA - 13/12/2024 02:40

    Muito bom!