3.3 Data Mining
3.3.3 Métodos e técnicas de Data Mining
Na literatura é possível encontrar referências à aplicação das várias técnicas de data mining existentes, na área da saúde. Conseguindo sintetizar as seguintes (Freitas, 2009; Cios, 2000; Fayyad et al.,1996):
• Sumarização - descrição agregada de dados com poucos atributos;
• Análise exploratória - uso de modelos gráficos para auxiliar visualmente a deteção de novos padrões;
• Análise de agrupamento de dados (clustering) - dados similares entre si são agrupados em clusters e simultaneamente dissimilares com outros grupos. Também designado por segmentação (segmentation);
• Regressão - análise de dependências dos valores de atributos relativamente a outros atributos no mesmo objeto;
24 Capítulo 3. Enquadramento teórico
• Classificação/Previsão - construção de classificadores que determinam a classe à qual pertence (por exemplo, árvores de decisão), permitindo a previsão de um valor que esse caso deverá assumir, fundamentando testes de hipóteses;
• Análise de dependências - determinação de relações/dependências entre campos num conjunto de dados;
• Associação - associações entre atributos e objetos, como por exemplo a presença de um padrão dever implicar a presença de um outro padrão;
• Análise de sequências - modelação de dados através da análise de séries temporais, modelos de séries temporais, redes neuronais temporais.
• Deteção de desvios - procura de casos desviantes (outliers) ou “pequenos padrões” nos dados, dados dissimilares ou inconsistentes em relação aos restantes dados;
Estes métodos são aplicados através de algoritmos especializados, tanto em machine learning supervisionado, por algoritmos de regressão, árvores de decisão, regressão logística, como em
machine learning não supervisionado, por algoritmos de clustering e apriori.
Atualmente, existe inúmeros algoritmos de data mining a serem utilizados e em constante surgimento. No entanto, Institute of Electrical and Electronics Engineers (IEEE) na International
Conference on Data Mining (ICM) publicou um top dez de algoritmos de data mining (Wu et al., 2008):
• C4.5 - algoritmo de classificação que produz árvores de decisão (Korting,2006);
• k-Mean - algoritmo de clustering, machine learning não supervisionado, que agrupa dados baseados consoante a sua similaridade (Selvakumar et al.,2012);
• Support Vector Machines (SVM) - algoritmo de Statistical learning, framework de classi- ficação de machine learning. Baseada na teoria de aprendizagem estatística, estabelece uma série de princípios que devem ser seguidos na obtenção de classificadores com boa generalização (Lorena and de Carvalho,2007);
• Apriori - algoritmo de associações analíticas para encontrar conjuntos de itens frequentes usando a geração de candidatos, que define que se um conjunto de itens não é frequente, qualquer um de seus superconjuntos nunca é frequente - itens dentro de uma transação ou conjunto de itens são classificados em ordem lexicográfica (Agrawal and Srikant,1994);
• Expectation-Maximization (EM) - algoritmo de Statistical learning, de clustering e machine
learning, iterativo para maximizar a probabilidade quando o modelo contém variáveis
latentes não observadas (McLachlan and Krishnan,2007), interatua entre a expectativa atual para os parâmetros e a maximização;
3.3. Data Mining 25
• PageRank - algoritmo de link mining, criar modelos preditivos ou descritivos dos dados em
machine learning. Produz uma classificação estática de páginas da Web, no sentido de que
um valor de PageRank é computado para cada página off-line e não depende de consultas de pesquisa (Brin and Page,1998);
• AdaBoost - algoritmo meta-heurístico de classificação de Ensemble learning, [20] lida com métodos que emprega grande fundamentação teórica, previsão muito precisa, grande simplicidade e aplicativos amplos e bem-sucedidos (Dietterich,1997;Freund and Schapire, 1997);
• K Nearest Neighbours (kNN) - algoritmo de classificação que encontra um grupo de k objetos num conjunto de treino que estão mais próximos do objeto de teste, e baseia a atribuição de um rótulo sobre a predominância de uma determinada classe neste neighborhood (bairro) (Fix and Hodges,1989;Tan et al.,2013);
• Naive Bayes - algoritmo de classificação probabilístico, calcula um conjunto de probabili- dades por contagem da frequência e combinações de valores num determinado conjunto de dados, usando o teorema de Bayes (Patil and Sherekar,2013). A probabilidade de um evento é baseado num conhecimento a priori que pode estar relacionado (probabilidade condicionada) (Andrade,1999);
• Classification and Regression Tree (CART) - algoritmo de classificação com árvores de decisão, o procedimento de particionamento recursivo é binário e capaz de processar atributos contínuos e nominais (Crawford,1989);
Em machine learning supervisionada os algoritmos de aprendizagem induzem modelos preditivos baseados em: distâncias (ex: kNN), métodos probabilísticos (ex: Naive Bayes), métodos baseados em procura (ex: árvores de decisão e regressão, regras de decisão), métodos baseados em otimização (ex: redes neuronais artificiais, SVM) e modelos múltiplos preditivos (Han et al.,2011). Enquanto que, em machine learning não supervisionado os algoritmos de aprendizagem induzem modelos de descrição, com o objetivo de exportar/descrever um conjunto de dados.
Nesta dissertação apenas será abordado com maior pormenor algoritmos de classificação de
machine learning supervisionado.
3.3.3.1 Algoritmos de classificação
Em algoritmos de classificação o processo de classificação é correspondentemente dividido em duas fases: treino, quando modelo de classificação é construído a partir do conjunto de treino, e teste, quando o modelo é avaliado no conjunto de testes (Neelamegam and Ramaraj,2013). Prevê-se rótulos de classe e classificar os dados para uma determinada classe com base na amostra de dados de treino e, em seguida, é usado para classificar os dados de teste (Deeba and Amutha, 2016). Um dos principais objetivos de um algoritmo de classificação é maximizar a precisão
26 Capítulo 3. Enquadramento teórico
preditiva obtida pelo modelo de classificação, ao classificar exemplos no conjunto de testes que não foram apresentados ao modelo durante o treino.
A construção do modelo descreve um conjunto de classes predeterminadas. Cada caso (instância) é considerado como pertencente a uma classe predefinida, conforme determinado pelo atributo de rótulo de classe (Han et al.,2011). O conjunto de instâncias usado para construção do modelo é o conjunto de treino. O modelo é representado como regras de classificação, árvores de decisão ou fórmulas matemáticas. O uso do modelo permite classificar casos futuros ou desconhecidos.
SVM, CART, C4.5 e kNN são dos algoritmos de classificação mais referenciados pela literatura (Amancio et al.,2014). Nesta dissertação, optamos pela utilização do SVM, tendo em vista, a boa capacidade deste algoritmo em tratar problemas de alta dimensionalidade, sobretudo quando o número de atributos relativamente ao número de instâncias é elevado (Verplancke et al., 2008). Este cenário tende a ser verificado na classificação em GDH, que envolve uma grande quantidade de atributos sobre os diagnósticos, procedimentos, visto que existem dezenas de milhares de códigos possíveis, para além de outras características do doente.
O SVM (Support Vector Machines) é um método que examina os dados e os classifica em uma entre duas categorias, o que faz deste um algoritmo desenvolvido especificamente para a classificação binária, ou seja, quando o problema envolve a classificação em duas categorias possíveis. Entretanto, para problemas que envolvam um maior número de classes, o algoritmo pode ser implementado através do método proposto por Hastie and Tibshirani, em que o modelo deverá comparar todas as combinações de pares de classes possíveis (Hastie and Tibshirani,1998). A implementação do weka do algoritmo SVM, que foi utilizado neste trabalho, utiliza este método para problemas com múltiplas classes, como é o caso da classificação em APR-DRG. Um SVM gera um mapa dos dados classificados e encontra uma linha de separação ou fronteira, denominada de hiperplano, entre os dados de duas classes distintas. O algoritmo SVM é implementado na prática usando um kernel. O kernel define a similaridade ou uma medida de distância entre novos dados e os vetores de suporte (Cortes and Vapnik, 1995). Exige que cada instância de dados seja representada como um vetor de números reais. Portanto, se houver atributos categóricos, primeiro é necessário converter em dados numéricos. Hsu C., Chang C. e Lin C. (Suykens and Vandewalle, 1999) afirmam que se o número de valores num atributo não for muito grande, essa codificação pode ser mais estável do que usar um único número.