-
Notifications
You must be signed in to change notification settings - Fork 2
Processo de julgamento dos algoritmos
Um grupo de pesquisa da UFMJ dedicado ao estudo de uma anomalia no tecido delgado do trato intestinal humano descobriu que tal anomalia trata-se na realidade de três tipos de doenças diferentes, cada uma causada por um tipo novo de bactéria (B1, B2 e B3). Seus técnicos de laboratório isolaram amostras destas bactérias e, ao longo de alguns meses, conseguiram realizar algumas medidas (Comprimento e Largura do corpo, Comprimento e Largura do flagelo). Eles acreditam que podem realizar uma diferenciação das mesmas com base nestas informações. Considere-se contratado para este trabalho. Ou seja, seu grupo deve ajudar o grupo da UFMJ e desenvolver um sistema capaz de realizar a diferenciação das bactérias B1, B2 e B3 com base nos dados fornecidos.
Para avaliação de qual algoritmo se encaixa melhor ao contexto do problema, é necessário identificar a natureza do problema e de sua solução. Os aspectos analisados para decidir quais algoritmos utilizar geralmente são 2:
- O tamanho, a quantidade, e a natureza dos dados.
- O tempo computacional disponível.
- A urgência da tarefa.
- O que você quer fazer com os dados.
Analisando o problema à luz de todos esses aspectos, a equipe chegou a conclusão que se tratava de um problema que poderia ser resolvido por aprendizagem supervisionada. Isso porque:
-
Os dados iniciais são rotulados, ou seja, as relações entre os dados das bactérias e os tipos já estão estabelecidos.
-
A solução esperada é a previsão/classificação de novas bactérias nos rótulos pré-estabelecidos.
A aprendizagem supervisionada é usada sempre que se deseja prever um certo resultado de determinadas entradas, e quando se possui um conjunto de entradas e saídas relacionadas/rotuladas 1. A aprendizagem supervisionada irá criar um modelo a partir de conjuntos de entradas e saídas iniciais, que compõe os dados utilizados na fase de treinamento. O objetivo da aprendizagem supervisionada é prever os resultados para conjuntos de entradas nunca vistos 1.
A aprendizagem supervisionada, possui duas formas principais de 'solução', são elas:
O objetivo principal da classificação é prever o tipo de classe de um conjunto de dados, com base em uma lista pré-definida de possibilidades/classes. A classificação pode ser divida em duas principais: Classificação binária e Classificação multi-classe 1. Como o próprio nome sugere, a classificação binária tem o simples objetivo de responder sim ou não para uma questão, por exemplo: "Esse e-mail é um span?". Enquanto a classificação multi-classe possui mais de duas opções de classe 1.
O objetivo principal da regressão é prever um número contínuo, ou como conhecemos na programação, um número flutuante que representa algum valor de interesse da solução 1. Quando tenta-se prever, por exemplo, o valor de receita de uma empresa dado algumas informações passadas sobre a empresa e o mercado.
Como o resultado esperado pelo problema não é numérico, classificamos nosso problema como um problema de classificação. Para auxiliar ainda mais a escolha de algoritmos optou-se pela utilização do mapa abaixo disponibilizado pelo próprio scikit-learn, ele leva em consideração diferentes parâmetros para a indicação de um algoritmo, como por exemplo, quantidade de dados, se os dados estão rotulados, propósito do aprendizado, dentre outros:
O resultado do fluxo percorrido pelo nosso contexto foi:
Seguindo o gráfico chegamos aos modelos do KNN e SVC
Links:
Imagem : http://scikit-learn.org/stable/tutorial/machine_learning_map/index.html
Sklearn : http://scikit-learn.org/stable/index.html
[1] - Introduction to Machine Learning with Python_ A Guide for Data Scientists - (Andreas C. Muller & Sarah Guido, O'Reilly Media, 2016)
[2] - (http://blogs.sas.com/content/subconsciousmusings/2017/04/12/machine-learning-algorithm-use/, Visitado 25/08/2017)