Mudanças entre as edições de "LINGUAGEM R MOD3"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 313: Linha 313:
 
;1. Pré-processamento dos Dados
 
;1. Pré-processamento dos Dados
  
Essa fase tem como objetivo melhorar a qualidade dos dados que serão apresentados ao
+
:Essa fase tem como objetivo melhorar a qualidade dos dados que serão apresentados ao algoritmo.
algoritmo.
 
  
Algumas técnicas utilizadas são:
+
:Algumas técnicas utilizadas são:
  
 
;''Feature selection'': É utilizada para selecionar os atributos mais relevantes que serão utilizados para treinar o modelo.
 
;''Feature selection'': É utilizada para selecionar os atributos mais relevantes que serão utilizados para treinar o modelo.

Edição das 13h08min de 18 de junho de 2024

Algoritmos de Machine Learning

DESTAQUE
Ao final deste módulo, você deverá ser capaz de classificar alguns algoritmos de regressão, classificação e clusterização relacionados à machine learning. Além disso, você também desenvolverá aptidão para classificar as técnicas e etapas de construção do modelo preditivo de machine learning e seus principais conceitos.
Machine learning ou aprendizagem de máquina é uma representação que tem como objetivo criar um modelo a partir de dados históricos para generalizar decisões.
PERGUNTA
Mas o que vem a ser um modelo nesse contexto?
RESPOSTA
Modelo é uma representação dos relacionamentos existentes nos dados por meio de uma fórmula matemática.

Antes de estudarmos os algoritmos, vamos aprender alguns termos utilizados para se referir a partes específicas de um conjunto de dados.

Instâncias ou observações
São as linhas do dataset.
Variável resposta/dependente, classe, label ou target
É a variável/coluna que se quer prever.
Features, atributos, dimensões ou variáveis independentes/explicativas
São colunas do dataset que podem ser utilizadas para prever a variável target.

A imagem a seguir ilustra alguns conceitos fundamentais para darmos continuidade ao nosso estudo.

Fig08 LINGUAGEM R.png

Fonte: Raschka (2015).

Após aprendermos alguns conceitos importantes relacionados aos algoritmos de machine learning, vamos estudá-los mais detalhadamente.


Já entendemos que um modelo é uma representação dos dados. Uma vez criado, podemos utilizá- lo em novos conjuntos de dados para realizar predições. Agora, você vai conhecer a relação do modelo com os algoritmos de machine learning. Os algoritmos de machine learning são aplicados a um conjunto de dados com objetivo de identificar os relacionamentos existentes e gerar um modelo a partir desses dados. Existem diversos algoritmos que podem ser utilizados em machine learning. Normalmente, são agrupados em duas categorias:

  1. Tipo de aprendizagem: supervisionada, não supervisionada e outros.
  2. Categorias de problemas: classificação, regressão, agrupamento, entre outros.

Primeiramente, vamos conhecer os algoritmos de aprendizagem supervisionada, a saber: regressão linear, KNN e árvores de decisão. Posteriormente, vamos verificar o objetivo do K-means, algoritmo de aprendizagem não supervisionada e, por último, apresentaremos uma lista com vários outros algoritmos de machine learning com a identificação do problema e a classificação quanto ao tipo de aprendizagem que o utiliza.

Algoritmos de aprendizagem supervisionada

Na aprendizagem supervisionada, a predição é estimada com base na relação entre os dados de entrada (features) e os dados de saída (variável resposta). Para cada entrada, é apresentado o resultado esperado. O algoritmo é responsável por mapear uma função que descreve os padrões ocultos nos dados. Para esse tipo de aprendizagem, são necessários dados rotulados, que são os dados de entrada associados com o resultado esperado. A função mapeada pelo algoritmo é utilizada para prever novos valores quando apresentada a novos conjuntos de dados. A aprendizagem supervisionada pode ser utilizada para resolver problemas de classificação e regressão. A classificação tem como resultado uma saída categórica/discreta. Já a regressão tem como resultado uma saída numérica. Vamos agora conhecer alguns algoritmos de aprendizagem supervisionada:

  • Regressão Linear

A análise de regressão simples estuda o relacionamento entre a variável dependente y (variável resposta) e a variável independente x (variável explicativa). O objetivo é prever o valor de uma variável contínua. A regressão linear assume que existe uma relação linear entre a variável resposta e a variável explicativa. Acompanhe no gráfico a seguir a representação de uma regressão linear:

Fig09 LINGUAGEM R.png

Fonte: Raschka (2015).

De acordo com a imagem, o valor de y é calculado com a seguinte fórmula:

W e B são os parâmetros do modelo, onde W = weight e B = bias.


Dessa forma, o treinamento de um modelo basicamente consiste em estimar os valores de W e B. Após o modelo encontrar os melhores valores com base em uma métrica de avaliação, é possível realizar as previsões. Considere uma base composta por dados de estudantes, tais como: horas de estudo por dia, quantidade de faltas e nota final. A partir de uma grande quantidade de dados históricos, é possível apresentar esses dados a um algoritmo, criar um modelo e utilizá-lo para prever a nota final de outros alunos, conforme a seguinte tabela:

Tabela: Previsão de nota dos alunos

Aluno Horas de Estudo Faltas Nota Final
A 4 2 7,0
B 2 5 5,0
C 6 0 9,5

Fonte: Elaborado pelo autor.


  • KNN

O K-Nearest Neighbors (KNN) é um algoritmo de classificação que se baseia nos vizinhos mais próximos. Quando um novo dado é apresentado ao algoritmo, ele irá classificá-lo com base nos exemplos mais próximos apresentados na fase de treinamento.

Fig10 LINGUAGEM R.png

Fonte: Raschka (2015).


O parâmetro k representa a quantidade de vizinhos mais próximos que deve ser considerada pelo algoritmo. Analisando o gráfico apresentado e considerando o valor de k = 3, temos que o novo elemento (?) é classificado como triângulo, pois é a quantidade de elementos mais próximos da nova observação.

  • Árvore de Decisão

Será que você já utilizou alguma árvore de decisão em sua vida pessoal ou profissional? Você já tomou alguma decisão se baseando em respostas para os diversos cenários inerentes àquele contexto? Você já utilizou um fluxograma em seu trabalho? Se a sua resposta foi afirmativa para qualquer um desses questionamentos, então você já fez uso dessa ferramenta que, simplificadamente, é a representação de uma tabela de decisão sob a forma de uma árvore.


Árvore de decisão é uma estrutura que armazena regras de decisão e possui nós, ramos e folhas. Os nós representam as variáveis, os ramos representam os valores possíveis de cada nó e as folhas representam o valor final de um nó.

Na imagem a seguir, temos a representação de uma árvore de decisão:

Fig11 LINGUAGEM R.png

Fonte: Lantz (2015).

Com isso, o modelo aprendeu as regras de quando aceitar e quando não aceitar uma proposta de emprego. Dessa forma, ao ser apresentado um novo dado, uma nova proposta de emprego, o modelo é capaz de tomar essa decisão.

Algoritmos de aprendizagem não supervisionada

Esse tipo de aprendizagem é usado quando não temos os dados rotulados, ou seja, quando não temos a saída esperada para uma determinada entrada. Assim, o algoritmo aprende sem informações adicionais para produzir uma saída.

Os algoritmos de aprendizagem não supervisionada são baseados em medidas de similaridade e padrões ocultos nos dados. Normalmente, é utilizado para resolver problemas de agrupamento (clustering), associação e detecção de anomalias.

Clustering é uma atividade frequentemente utilizada para agrupar os dados que possuem características similares.

Um algoritmo muito conhecido para essa tarefa é o K-means.

  • K-means

No artigo Introdução Básica à Clusterização, do Laboratório de Aprendizado de Máquina em Finanças e Organizações (LAMFO/UNB), Honda (2017) diz que “o algoritmo se chama assim pois encontra k clusters diferentes no conjunto de dados. O centro de cada cluster será chamado centroide e terá a média dos valores neste cluster.” Ainda de acordo com o autor, o K-means é um dos algoritmos mais básicos para a clusterização.

O objetivo desse algoritmo é dividir os dados em grupos com base na similaridade dos dados (clusters), ou seja, temos dados que são similares dentro de um grupo, porém diferentes quando comparados com os dados de outros grupos.

A sua representação gráfica é apresentada na figura a seguir:

Fig12 LINGUAGEM R.png

Fonte: Bonaccorso (2017).

Nesse exemplo, pode-se perceber que cada cluster possui dados diferentes, porém são similares quando comparados com os dados do mesmo cluster.

Outros algoritmos de machine learning

Atualmente, temos inúmeros algoritmos de machine learning. Na tabela a seguir, apresentamos algoritmos frequentemente utilizados em aprendizagem supervisionada e não supervisionada:

Algoritmos de Machine Learning
Algoritmo Problema Tipo de Aprendizagem
Logistic Regression Classificação Supervisionada
K-Nearest Neighbor Classificação Supervisionada
Naive Bayes Classificação Supervisionada
Decision Trees Classificação Supervisionada
Regression Trees Regressão Supervisionada
Linear Regression Regressão Supervisionada
Neural Networks Classificação/Regressão Supervisionada
Support Vector Machines Classificação/Regressão Supervisionada
Random Forest Classificação/Regressão Supervisionada
PCA Redução de dimensionalidade Não supervisionada
Association Rules Detecção de padrões Não supervisionada
K-means Clustering Agrupamento Não supervisionada
DBSCAN Agrupamento Não supervisionada

Fonte: Elaborada pelo autor.

Depois de conhecer os diversos algoritmos utilizados na aprendizagem de máquina, é importante escolher o mais adequado ao problema proposto.

Construção do Modelo Preditivo

DESTAQUE
Agora, vamos aprender algumas etapas envolvidas na construção do modelo de machine learning, considerando a aprendizagem supervisionada.

Técnicas e etapas de construção do modelo de machine learning

Ao criar um modelo de machine learning, dificilmente teremos os dados prontos. Por esse motivo, faz-se necessário realizar algumas transformações nos dados antes de apresentá-los ao algoritmo.

Na fase de pré-processamento, os dados são divididos em dados de treino e dados de teste. Os dados de treino são apresentados ao algoritmo para que ele aprenda o relacionamento entre as variáveis e crie o modelo. Os dados de teste, por sua vez, são utilizados para avaliar o quanto o algoritmo aprendeu.

Ao apresentar os dados de teste ao modelo, as previsões são realizadas com base no que foi aprendido na fase de treinamento. Essas previsões são comparadas com as respostas esperadas para calcular o desempenho do modelo. Uma vez criado e validado, o modelo pode ser utilizado para realizar novas previsões quando for apresentado a novos dados.

A imagem a seguir apresenta um esquema das atividades envolvidas na construção de um modelo preditivo:

Fig13 LINGUAGEM R.png

Fonte: Raschka (2015).

Após analisar a imagem, vamos detalhar cada uma dessas etapas de construção do modelo de machine learning:

1. Pré-processamento dos Dados
Essa fase tem como objetivo melhorar a qualidade dos dados que serão apresentados ao algoritmo.
Algumas técnicas utilizadas são:
Feature selection
É utilizada para selecionar os atributos mais relevantes que serão utilizados para treinar o modelo.
Feature engineering
É a arte de criar variáveis a partir de um conjunto de dados para melhorar a performance do modelo.
Normalização
Um dataset pode conter variáveis em diferentes escalas e, assim sendo, recomenda-se padronizar esses dados para uma mesma escala. Para isso, usamos a técnica da normalização.
Redução de dimensionalidade
É utilizada quando se tem conjuntos de dados com muitas dimensões (colunas), o que acaba prejudicando a capacidade de generalização de alguns algoritmos.
Divisão dos dados em treino e teste
Em aprendizagem supervisionada, deve-se dividir os dados em dois datasets: treino e teste. Os dados de treino são usados para criar o modelo e os dados de teste são usados para verificar a performance do modelo. Além disso, essa divisão deve ser feita de forma aleatória.

Referências


Icone voltar.png Icone menu.png Icone prox.png