Você gostaria de começar com aprendizado de máquina?
Eu criei um tutorial simples e fácil para iniciantes completos. Juntos, veremos as etapas básicas de treinamento de um modelo de aprendizado de máquina.
Ao explicar as etapas de treinamento de um modelo uma a uma, também darei um exemplo muito básico de um problema de aprendizado de máquina. Então, se você quiser acompanhar, você pode baixar este conjunto de dados de amostra deste link.
Este é apenas um conjunto de dados de exemplo para ajudar você a começar a usar o aprendizado de máquina.
Temos 18 valores de pessoas de diferentes idades e gêneros que têm suas músicas favoritas definidas. Usando as características de “idade” e “gênero”, tentaremos adivinhar qual gênero de música é o favorito deles.
Nota: 1 e 0 são atribuídos a gêneros como feminino e masculino neste conjunto de dados.
No entanto, se você não quiser seguir o exemplo, também está perfeitamente bem. Estarei explicando todas essas etapas em detalhes. Então, vamos mergulhar!
Primeiras coisas a saber
Antes de entrar nas etapas de treinamento de um modelo, vamos esclarecer alguns pontos. O aprendizado de máquina é uma inteligência artificial disciplina que se concentra no desenvolvimento de algoritmos que podem aprender com os dados.
Para fazer isso, os modelos de aprendizado de máquina são treinados em um conjunto de dados que ensina o modelo a fazer previsões corretas ou classificações em dados novos e previamente desconhecidos.
Então, quais são esses modelos? A modelo de aprendizado de máquina é semelhante a uma receita que um computador usa para gerar previsões ou escolhas de dados.
Um modelo, como uma receita, segue um conjunto de instruções para avaliar os dados e gerar previsões ou julgamentos com base nos padrões encontrados nos dados. Quanto mais dados o modelo for treinado, mais precisas serão suas previsões.
Que tipo de modelos podemos treinar?
Vamos ver quais são os modelos básicos de aprendizado de máquina.
- Regressão linear: um modelo que prevê uma variável alvo contínua a partir de uma ou mais variáveis de entrada.
- Redes neurais: uma rede de nós vinculados que podem aprender a detectar padrões complicados nos dados.
- Árvores de decisão: uma abordagem de tomada de decisão construída em uma cadeia de ramificações if-else.
- Agrupamento: um conjunto de modelos que agrupam pontos de dados comparáveis com base na similaridade.
- Regressão Logística: um modelo para problemas de classificação binária em que a variável alvo tem dois valores potenciais.
- Árvores de decisão: uma abordagem de tomada de decisão construída em uma cadeia de ramificações if-else.
- Random Forest: um modelo ensemble composto por inúmeras árvores de decisão. Eles são freqüentemente usados para aplicações de classificação e regressão.
- K-Nearest Neighbors: um modelo que prevê a variável de destino usando os k pontos de dados mais próximos no conjunto de treinamento.
Dependendo do nosso problema e conjunto de dados, decidimos qual modelo de aprendizado de máquina se adapta mais à nossa situação. No entanto, voltaremos a isso mais tarde. Agora, vamos começar a treinar nosso modelo. Espero que você já tenha baixado o conjunto de dados se você gostaria de seguir o nosso exemplo.
Além disso, recomendo ter Caderno Jupyter instalado em sua máquina local e usá-lo para seus projetos de aprendizado de máquina.
1: Defina o problema
A primeira etapa em treinando um aprendizado de máquina modelo é definir o problema a ser resolvido. Isso envolve selecionar as variáveis que você deseja prever (conhecidas como variável de destino) e as variáveis que serão usadas para gerar essas previsões (conhecidas como recursos ou preditores).
Você também deve decidir que tipo de problema de aprendizado de máquina está tentando resolver (classificação, regressão, agrupamento e assim por diante) e que tipo de dados precisará coletar ou obter para treinar seu modelo.
O tipo de modelo que você emprega será determinado pelo tipo de problema de aprendizado de máquina que você pretende resolver. Classificação, regressão e agrupamento são as três categorias principais de desafios de aprendizado de máquina. Quando você deseja prever uma variável categórica, como se um e-mail é um spam ou não, você usa a classificação.
Quando você deseja prever uma variável contínua, como o preço de uma casa, você utiliza a regressão. O agrupamento é usado para reunir itens de dados comparáveis com base em suas semelhanças.
Se olharmos para o nosso exemplo; nosso desafio é determinar o estilo musical preferido de uma pessoa a partir de seu gênero e idade. Utilizaremos um conjunto de dados de 18 pessoas para este exemplo e informações sobre idade, gênero e estilo musical favorito.
2. Prepare os dados
Depois de especificar o problema, você precisará preparar os dados para treinar o modelo. Isso implica a limpeza e processamento dos dados. Para que possamos garantir que esteja em um formato que o algoritmo de aprendizado de máquina pode usar.
Isso pode incluir atividades como excluir valores ausentes, transformar dados categóricos em dados numéricos e dimensionar ou normalizar os dados para garantir que todas as características estejam na mesma escala.
Por exemplo, é assim que você exclui valores ausentes:
import pandas as pd
# Load the data into a pandas DataFrame
data = pd.read_csv('data.csv')
# Check for missing values
print(data.isnull().sum())
# Drop rows with missing values
data.dropna(inplace=True)
# Check that all missing values have been removed
print(data.isnull().sum())
Pequena nota: Na linha o “import pandas as pd",
importamos a biblioteca Pandas e atribuímos a ela o alias “pd” para facilitar a referência de suas funções e objetos posteriormente no código.
Pandas é um módulo bem conhecido para Python para manipulação e análise de dados, particularmente ao trabalhar com dados estruturados ou tabulares.
Em nosso exemplo de determinação de gêneros musicais. Primeiro importaremos o conjunto de dados. Eu o chamei de music.csv, no entanto, você pode nomeá-lo como quiser.
Para preparar os dados para treinar um modelo de aprendizado de máquina, nós o dividimos em atributos (idade e gênero) e objetivos (gênero musical).
Além disso, dividiremos os dados em conjuntos de treinamento e teste 80:20 para avaliar o desempenho de nosso modelo e evitar o overfitting.
# Import necessary libraries
import pandas as pd
from sklearn.model_selection import train_test_split
# Load data from CSV file/code>
music_data = pd.read_csv('music.csv')
# Split data into features and target
X = music_data.drop(columns=['genre'])
y = music_data['genre']
# Split data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
3. Escolha um modelo de aprendizado de máquina.
Depois de preparar os dados, você deve escolher um modelo de aprendizado de máquina adequado à sua tarefa.
Existem vários algoritmos para escolher, como árvores de decisão, regressão logística, máquinas de vetores de suporte, redes neurais e outros. O algoritmo que você escolher será determinado pelo tipo de problema que você está tentando responder, o tipo de dados que você possui e suas necessidades de desempenho.
Usaremos um classificador de árvore de decisão para este exemplo porque estamos trabalhando com um problema de classificação (previsão de dados categóricos).
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
Aqui está uma visualização de como o Classificador de Árvore de Decisão funciona:
4. Treine o modelo
Você pode começar a treinar o modelo quando tiver escolhido um algoritmo de aprendizado de máquina aceitável. Isso envolve a utilização dos dados gerados anteriormente para educar o algoritmo sobre como fazer previsões sobre dados novos e inéditos.
O algoritmo modificará seus parâmetros internos durante o treinamento para minimizar a diferença entre seus valores previstos e os valores reais nos dados de treinamento. A quantidade de dados utilizados para treinamento, bem como os parâmetros específicos do algoritmo, podem afetar a precisão do modelo resultante.
Em nosso exemplo específico, agora que decidimos um método, podemos treinar nosso modelo com os dados de treinamento.
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. Avalie o modelo
Depois que o modelo foi treinado, ele deve ser avaliado em novos dados para garantir que seja preciso e confiável. Isso implica testar o modelo com dados que não foram utilizados durante o treinamento e comparar seus valores projetados com os valores reais nos dados de teste.
Essa revisão pode auxiliar na identificação de quaisquer falhas do modelo, como overfitting ou underfitting, e pode levar a qualquer ajuste fino que possa ser necessário.
Usando os dados de teste, avaliaremos a exatidão de nosso modelo.
# Import necessary libraries
from sklearn.metrics import accuracy_score
# Predict the music genre for the test data
predictions = model.predict(X_test)
# Evaluate the model's accuracy
accuracy = accuracy_score(y_test, predictions)
print("Accuracy: ", accuracy)
A pontuação de precisão não é tão ruim por enquanto. 🙂 Para melhorar sua pontuação de precisão, você sempre pode limpar mais os dados ou experimentar diferentes modelos de aprendizado de máquina para ver qual deles dá a pontuação mais alta.
6. Ajuste o modelo
Se a eficiência do modelo não for suficiente, você pode ajustá-lo alterando vários parâmetros de algoritmo ou experimentando inteiramente novos algoritmos.
Este procedimento pode incluir a experimentação de taxas de aprendizado alternativas, modificação de configurações de regularização ou alteração do número ou tamanho de camadas ocultas em uma rede neural.
7. Use o modelo
Assim que estiver satisfeito com o desempenho do modelo, você pode começar a usá-lo para gerar previsões sobre novos dados.
Isso pode envolver a alimentação de novos dados no modelo e a utilização dos parâmetros aprendidos do modelo para gerar previsões sobre esses dados ou a integração do modelo em um aplicativo ou sistema mais amplo.
Podemos usar nosso modelo para gerar previsões sobre novos dados depois que estivermos satisfeitos com sua precisão. Você pode tentar diferentes valores de sexo e idade.
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
Embrulhar
Terminamos de treinar nosso primeiro modelo de aprendizado de máquina.
Espero que você tenha achado útil. Agora você pode tentar usar diferentes modelos de aprendizado de máquina, como regressão linear ou floresta aleatória.
Existem muitos conjuntos de dados e desafios em Kaggle se você quiser melhorar sua codificação e compreensão do aprendizado de máquina.
Deixe um comentário