depende da relevância, quantidade e qualidade dos dados [8,35].
4.2.
Tipos de Machine Learning
Os sistemas de Machine Learning podem dividir-se em várias categorias, de acordo com vários aspetos [35]:
1. Se são ou não treinados com supervisão (Subsecção4.2.1): (a) Supervised learning
(b) Unsupervised learning (c) Reinforcement learning (d) Semisupervised learning
2. Se podem aprender de forma incremental (Subsecção 4.2.2): (a) Batch learning
(b) Online learning
3. Se fazem previsões comparando os novos dados com pontos conhecidos ou se constroem novos modelos preditivos (Subsecção4.2.3):
(a) Instance-based learning (b) Model-based learning
4.2.1.
Supervised, unsupervised, reinforcement learning e Semisu-
pervised learning
Os sistemas de Machine Learning podem ser divididos de acordo com a quantidade e tipo de supervisão que recebem durante a fase de treino [35]. Este aspeto permite a divisão dos modelos Machine Learning em três categorias principais (supervised,
unsupervised e reinforcement learning) e, ainda, numa quarta categoria que consiste
simplesmente na combinação de modelos das categorias anteriores (semisupervised
learning).
Supervised learning
Supervised learning é um dos modos de aprendizagem mais comum e também com
maior sucesso [35]. Neste, os dados fornecidos aos algoritmos durante a fase de treino incluem a solução desejada (label), isto é, a variável dependente resultante das variáveis independentes observadas [6]. É assim possível desenvolver modelos preditivos capazes de gerar respostas para novos dados [35].
4. Machine Learning 31
Existem dois principais tipos de problemas de supervised learning: classificação e regressão - Figura4.1.
Figura 4.1: Supervised Learning: Classificação e Regressão [6]
As técnicas de classificação são utilizadas para prever a resposta, isto é, a classifica- ção (class label), a partir de um conjunto de valores de entrada. As respostas são discretas (os modelos classificam os dados em categorias) [6]. Os problemas de clas- sificação podem ainda ser separados em: classificação binária (binary classification), que consiste na distinção entre duas classes, e problemas de classificação multi-classe (multiclass classification), quando o número de classes é superior a dois [6]. Classi- ficar um e-mail como spam ou não spam é um exemplo de um problema típico de
binary classification enquanto que, prever qual a língua de um website com base no
texto nele presente é um exemplo de um problema de multiclass classification, onde, neste caso, as classes seriam uma lista predefinida de possíveis línguas [35].
Por outro lado, as técnicas de regressão prevêem respostas contínuas [35]. Um exem- plo de um problema deste tipo é, dado um conjunto de dados sobre o tamanho de casas no mercado imobiliário, tentar prever o seu preço (variável contínua) [35]. As variáveis utilizadas em modelos de Machine Learning que, espera-se, contêm in- formação relevante acerca do problema e permitem ao modelo aprender com sucesso são denominadas por features (ou atributos) [35]. Uma feature pode ser diretamente medida, calculada a partir dos sinais medidos ou, simplesmente, gerada pelo progra- mador (por exemplo, a identificação de um equipamento) [35].
Os algoritmos mais populares de supervised learning são: k-nearest neighbors (kNN),
linear regression, logistic regression, support vector machines (SVMs), decision trees, random forests, naive Bayes e neural networks [6,35].
Unsupervised learning
Em alguns casos, conseguir dados com a solução desejada (label) pode ser caro ou até mesmo impossível [35].
32 4.2. Tipos de Machine Learning
Em unsupervised learning um algoritmo procura aprender padrões e relações exis- tentes num conjunto de dados sem categorização (sem labels) fornecidos [35]. Os sistemas de unsupervised learning procuram encontrar padrões escondidos e estrutu- ras intrínsecas nos dados - Figura4.2[6].
(a) Clustering (b) Deteção de Anomalias
Figura 4.2: Unsupervised Learning [6]
Dentro do unsupervised learning destacam-se quatro principais tarefas [35]: cluste-
ring, que consiste na divisão dos dados em grupos (clusters) semelhantes (Figura
4.2a); visualização e redução de dimensionalidade, que procura simplificar os dados sem perda significativa de informação; deteção de anomalias, uma vez que o sistema é treinado com exemplos normais, perante um novo ponto é capaz determinar se este se encontra fora do normal (Figura4.2b); e association rule learning, que consiste em encontrar relações entre features [35].
Reinforcement learning
Em reinforcement learning , o sistema tenta aprender qual a melhor ação a ser to- mada, dependendo das circunstâncias na qual essa ação será executada [35]. Como,
a priori, não sabe o que irá acontecer no futuro, é desejável uma abordagem que
leve em consideração essa incerteza, capaz de incorporar as eventuais mudanças no processo de tomada da melhor decisão [35]. Uma recompensa ou punição é dada ao sistema de apredizagem, dependendo da decisão tomada; ao longo do tempo e com a repetição do processo, espera-se que este seja capaz de associar as ações que geram maior recompensa para cada situação que o ambiente apresenta, e passe a evitar as ações que geram punição ou recompensa menor [35].
Semisupervised learning
Alguns algoritmos são capazes de lidar, em simultâneo, com uma combinação de dados de treino categorizados (normalmente em pequena quantidade) e não catego- rizados (em grande quantidade) - Figura 4.3 [35]. Esta combinação de um grande número de dados não categorizados, regra geral mais fáceis de obter, com alguns
4. Machine Learning 33
dados categorizados, geralmente dispendiosos de obter, pode levar a um aumento da
performance do sistema de aprendizagem [35].
Figura 4.3: Semisupervised learning [6]
4.2.2.
Batch e online learning
Outro critério usado para classificar os sistemas de Machine Learning é a sua capaci- dade de aprender de forma incremental (Figura4.4), a partir de um fluxo de dados recebidos [35]. Em batch learning (Figura 4.4a), o sistema é incapaz de aprender incrementalmente, sendo que necessita de acesso à totalidade dos dados para ser treinado [35]. De modo a fornecer novos dados ao sistema, é necessário treinar um nova versão com o conjunto de dados completo (não apenas os novos dados, mas também os antigos) [35].
Por outro lado, em online learning (Figura4.4b), a fase de treino é realizada de forma incremental, isto é, o sistema é capaz de treinar continuamente ao ser alimentado com exemplos [35]. Este modo de treino é ideal para sistemas que recebem um fluxo de dados contínuo e necessitam de se adaptar de forma rápida ou autónoma [35].
(a) Batch Learning (b) Online learning
Figura 4.4: Divisão baseada na capacidade dos algoritmos aprenderem de forma incremental [35]