Trabalhando com dados desbalanceados no R

Além do AUC o post fala que a curva de Precision-Recall pode ser uma ótima alternativa.

 

 

 

Anúncios
Trabalhando com dados desbalanceados no R

Tuning via hiper-parametrização para Máquinas de Vetor de Suporte (Support Vector Machines) por estimação de distribuição de algoritmos

Em épocas de Deep Learning, é sempre bom ver um paper com as boas e velhas Máquinas de Vetor de Suporte (Support Vector Machines). Em breve teremos um post sobre essa técnica aqui no blog.

Hyper-Parameter Tuning for Support Vector Machines by Estimation of Distribution Algorithms

Abstract: Hyper-parameter tuning for support vector machines has been widely studied in the past decade. A variety of metaheuristics, such as Genetic Algorithms and Particle Swarm Optimization have been considered to accomplish this task. Notably, exhaustive strategies such as Grid Search or Random Search continue to be implemented for hyper-parameter tuning and have recently shown results comparable to sophisticated metaheuristics. The main reason for the success of exhaustive techniques is due to the fact that only two or three parameters need to be adjusted when working with support vector machines. In this chapter, we analyze two Estimation Distribution Algorithms, the Univariate Marginal Distribution Algorithm and the Boltzmann Univariate Marginal Distribution Algorithm, to verify if these algorithms preserve the effectiveness of Random Search and at the same time make more efficient the process of finding the optimal hyper-parameters without increasing the complexity of Random Search.

Tuning via hiper-parametrização para Máquinas de Vetor de Suporte (Support Vector Machines) por estimação de distribuição de algoritmos

RLScore: Regularized Least-Squares Learners

Tapio Pahikkala, Antti Airola; 17(221):1−5, 2016.

RLScore is a Python open source module for kernel based machine learning. The library provides implementations of several regularized least-squares (RLS) type of learners. RLS methods for regression and classification, ranking, greedy feature selection, multi-task and zero-shot learning, and unsupervised classification are included. Matrix algebra based computational short-cuts are used to ensure efficiency of both training and cross-validation. A simple API and extensive tutorials allow for easy use of RLScore.

RLScore: Regularized Least-Squares Learners

Desenvolvimento e validação de um algoritmo de Deep Learning para detecção da retinopatia diabética em fotografias de fundo retinal

Em 2008 quando eu iniciei grande parte dos meus estudos e interesse em Data Mining (que é uma disciplina irmã do que chamamos hoje de Data Science) desde aquela época tinha uma convicção muito forte de que os dados seriam o motor do que estamos vivendo hoje que é a quarta revolução industrial; revolução esta que tem os dados como principal combustível seja nas mas diversas áreas do conhecimento humano.

Dito isso, a Google juntamente com pesquisadores dos times da University of Texas, 3EyePACS LLC, University of California, Aravind Medical Research Foundation, Shri Bhagwan Mahavir Vitreoretinal Services, Verily Life Sciences e da Harvard Medical School conseguiram um avanço da aplicação de Deep Learning que confirma essa tese acima.

A retinopatia diabética é uma doença causada pela evolução de um quadro de diabetes em que os vasos sanguíneos do fundo da retina sofrem algum tipo de dilatação ou rompimento e que e não tratada pode causar cegueira. É uma doença que tem mais de 150 mil casos no brasil e não tem cura. Contudo, se o diagnóstico for realizado de forma antecipada o tratamento pode ajudar na minimização da cegueira.

E a aplicação de Deep Learning por esses pesquisadores ocorreu para auxiliar os médicos no diagnóstico desta doença.

retinopatia

Colocando de forma bem resumida: esse time utilizou Deep Learning para detecção da retinopatia diabética usando uma base de fotografias de fundo retinal de treinamento e obteve 90.3% e 87.0% de sensibilidade (i.e. a capacidade do algoritmo saber corretamente quem está com a doença ou não dos casos em que a doença é presente) e 98.1% e 98.5% de especificidade (i.e. o grau de precisão do algoritmo para identificar corretamente as pessoas que não tem a doença em casos em que de fato a doença não está presente) na detecção da retinopatia diabética.

Essa alta taxa de especificidade de 98.1% (i.e. capacidade de saber corretamente quem não tem a doença dentro do grupo que realmente não tem, ou seja, saber identificar corretamente a classe negativa) direciona de forma muito assertiva os tratamentos no sentido em que há uma certeza maior nos resultados da classe negativa (e essa forma os esforços não seriam direcionados de fato para quem não tem a doença).

Uma ideia de estratégia de saúde preventiva ou mesmo de diagnósticos pontuais é que após o exame de imagem a fotografia de fundo de retina passaria pelo algoritmo de Deep Learning já treinado, e caso o resultado do teste fosse positivo , o médico já iniciaria o tratamento e ao mesmo tempo a rede hospitalar e de medicamentos seria notificada de mais um caso, e haveria automaticamente o provisionamento de medicação e alocação de recursos médicos para o acompanhamento/tratamento.

Isso sem dúvidas muda todo o eixo de como vemos a medicina hoje, dado que isso daria um ganho ainda maior de eficiência para a medicina preventiva e evitaria a ineficiente (e bem mais cara) medicina curativa.

Abaixo os principais resultados do estudo.

Development and Validation of a Deep Learning Algorithm for Detection of Diabetic Retinopathy in Retinal Fundus Photographs

Varun Gulshan, PhD1; Lily Peng, MD, PhD1; Marc Coram, PhD1; et al Martin C. Stumpe, PhD1; Derek Wu, BS1; Arunachalam Narayanaswamy, PhD1; Subhashini Venugopalan, MS1,2; Kasumi Widner, MS1; Tom Madams, MEng1; Jorge Cuadros, OD, PhD3,4; Ramasamy Kim, OD, DNB5; Rajiv Raman, MS, DNB6; Philip C. Nelson, BS1; Jessica L. Mega, MD, MPH7,8; Dale R. Webster, PhD1

Key Points
Question How does the performance of an automated deep learning algorithm compare with manual grading by ophthalmologists for identifying diabetic retinopathy in retinal fundus photographs?

Finding In 2 validation sets of 9963 images and 1748 images, at the operating point selected for high specificity, the algorithm had 90.3% and 87.0% sensitivity and 98.1% and 98.5% specificity for detecting referable diabetic retinopathy, defined as moderate or worse diabetic retinopathy or referable macular edema by the majority decision of a panel of at least 7 US board-certified ophthalmologists. At the operating point selected for high sensitivity, the algorithm had 97.5% and 96.1% sensitivity and 93.4% and 93.9% specificity in the 2 validation sets.

Meaning Deep learning algorithms had high sensitivity and specificity for detecting diabetic retinopathy and macular edema in retinal fundus photographs.

Abstract
Importance Deep learning is a family of computational methods that allow an algorithm to program itself by learning from a large set of examples that demonstrate the desired behavior, removing the need to specify rules explicitly. Application of these methods to medical imaging requires further assessment and validation.

Objective To apply deep learning to create an algorithm for automated detection of diabetic retinopathy and diabetic macular edema in retinal fundus photographs.

Design and Setting A specific type of neural network optimized for image classification called a deep convolutional neural network was trained using a retrospective development data set of 128 175 retinal images, which were graded 3 to 7 times for diabetic retinopathy, diabetic macular edema, and image gradability by a panel of 54 US licensed ophthalmologists and ophthalmology senior residents between May and December 2015. The resultant algorithm was validated in January and February 2016 using 2 separate data sets, both graded by at least 7 US board-certified ophthalmologists with high intragrader consistency.

Exposure Deep learning–trained algorithm.

Main Outcomes and Measures The sensitivity and specificity of the algorithm for detecting referable diabetic retinopathy (RDR), defined as moderate and worse diabetic retinopathy, referable diabetic macular edema, or both, were generated based on the reference standard of the majority decision of the ophthalmologist panel. The algorithm was evaluated at 2 operating points selected from the development set, one selected for high specificity and another for high sensitivity.

Results The EyePACS-1 data set consisted of 9963 images from 4997 patients (mean age, 54.4 years; 62.2% women; prevalence of RDR, 683/8878 fully gradable images [7.8%]); the Messidor-2 data set had 1748 images from 874 patients (mean age, 57.6 years; 42.6% women; prevalence of RDR, 254/1745 fully gradable images [14.6%]). For detecting RDR, the algorithm had an area under the receiver operating curve of 0.991 (95% CI, 0.988-0.993) for EyePACS-1 and 0.990 (95% CI, 0.986-0.995) for Messidor-2. Using the first operating cut point with high specificity, for EyePACS-1, the sensitivity was 90.3% (95% CI, 87.5%-92.7%) and the specificity was 98.1% (95% CI, 97.8%-98.5%). For Messidor-2, the sensitivity was 87.0% (95% CI, 81.1%-91.0%) and the specificity was 98.5% (95% CI, 97.7%-99.1%). Using a second operating point with high sensitivity in the development set, for EyePACS-1 the sensitivity was 97.5% and specificity was 93.4% and for Messidor-2 the sensitivity was 96.1% and specificity was 93.9%.

Conclusions and Relevance In this evaluation of retinal fundus photographs from adults with diabetes, an algorithm based on deep machine learning had high sensitivity and specificity for detecting referable diabetic retinopathy. Further research is necessary to determine the feasibility of applying this algorithm in the clinical setting and to determine whether use of the algorithm could lead to improved care and outcomes compared with current ophthalmologic assessment.

Desenvolvimento e validação de um algoritmo de Deep Learning para detecção da retinopatia diabética em fotografias de fundo retinal

Paper Ensemble methods for uplift modeling

Esse paper sobre a aplicação de métodos ensemble especificamente em modelagem uplift, é um ótimo guia de como técnicas não são canônicas em termos de resolução de problemas.

Abstract: Uplift modeling is a branch of machine learning which aims at predicting the causal effect of an action such as a marketing campaign or a medical treatment on a given individual by taking into account responses in a treatment group, containing individuals subject to the action, and a control group serving as a background. The resulting model can then be used to select individuals for whom the action will be most profitable. This paper analyzes the use of ensemble methods: bagging and random forests in uplift modeling. We perform an extensive experimental evaluation to demonstrate that the application of those methods often results in spectacular gains in model performance, turning almost useless single models into highly capable uplift ensembles. The gains are much larger than those achieved in case of standard classifi- cation. We show that those gains are a result of high ensemble diversity, which in turn is a result of the differences between class probabilities in the treatment and control groups being harder to model than the class probabilities themselves. The feature of uplift modeling which makes it difficult thus also makes it amenable to the application of ensemble methods. As a result, bagging and random forests emerge from our evaluation as key tools in the uplift modeling toolbox.

Ensemble methods for uplift modeling

Paper Ensemble methods for uplift modeling

Comparação entre R e Python utilizando Florestas Aleatórias e Classificação

Neste post do blog do Yhat tem o código, os dados e os resultados.

Pessoalmente gosto muito da abordagem dos autores em comparação de classificadores usando as métricas de Acurácia, Erro Quadrático Médio e  para regressão e tempo de treinamento.

Para projetos curtos de avaliação de uma série de classificadores essas medidas são suficientes para dar uma linha de base. Essas medidas podem auxiliar na escolha de quais modelos estão com melhor convergência e podem indicar um melhor tratamento dos dados em termos de quais variáveis são pertinentes ao modelo escolhido.

 

 

Comparação entre R e Python utilizando Florestas Aleatórias e Classificação

Métricas de Avaliação de Modelos de Classificação/Predição

A algum tempo estava namorando a ideia de escrever sobre esse assunto que eu julgo ser importantíssimo para quem está aprendendo, aplicando, e principalmente ensinando Data Mining; e que as vezes me incomoda ver como esse tópico tem tão pouco destaque.

Essas métricas de avaliação de modelos tem suas origens em uma disciplina chamada Recuperação da Informação (de Informações), que nada mais é que uma teoria que estuda a forma em que os documentos são recuperados de forma automática.

Essas métricas surgiram dentro dessa teoria como uma forma de  avaliar se o sistema de Recuperação de Informações estava se comportando da maneira na qual ele foi proposto; isso é, avaliar não somente se o sistema estava recuperando as informações corretas, mas também verificando o quanto o sistema estava abstraindo as informações erradas.

Ao longo do tempo, muitos pesquisadores viram que essas métricas de recuperação da informação poderiam ser aplicadas em classificadores e modelos de predição para determinar as características de cada um dos modelos.

Note-se que não foram colocados os adjetivos “melhor” ou “pior“. É importante ressaltar esse aspecto devido ao fato de que cada modelo é único e a qualidade pode ser relativa; principalmente se estiver sendo considerada uma abordagem sensível ao custo (que pode ser lida aqui, aqui, aqui , aqui, aqui e aqui)

Dado esse pequeno background (que será explorado em postagens futuras), o motivo principal desse post é recomendar um link para quem quiser avaliar os respectivos modelos de classificação e predição de forma correta que é o Teste Diagnóstico da Universidade Federal do Paraná.

É bem simples.

Pegam-se os resultados da matriz de confusão, coloca nos campos em azul e automaticamente são calculadas os parâmetros de avaliação de modelos; e ainda de quebra tem as descrições das métricas.

Testes

As métricas estão no site e são as seguintes:

ACURÁCIA

A proporção de predições corretas, sem levar em consideração o que é positivo e o que é negativo. Esta medida é altamente suscetivel a desbalanceamentos do conjunto de dados e pode facilmente induzir a uma conclusão errada sobre o desempenho do sistema.

ACURACIA = TOTAL DE ACERTOS / TOTAL DE DADOS NO CONJUNTO
ACURACIA = (VP + VN) / (P + N)

SENSIBILIDADE

A proporção de verdadeiros positivos: a capacidade do sistema em predizer corretamente a condição para casos que realmente a têm.

SENSIBILIDADE = ACERTOS POSITIVOS / TOTAL DE POSITIVOS
SENSIBILIDADE = VP / (VP + FN)

ESPECIFICIDADE

A proporção de verdadeiros negativos: a capacidade do sistema em predizer corretamente a ausência da condição para casos que realmente não a têm.

ESPECIFICIDADE = ACERTOS NEGATIVOS / TOTAL DE NEGATIVOS
ESPECIFICIDADE = VN / (VN + FP)

EFICIÊNCIA

A média aritmética da Sensibilidade e Especificidade. Na prática, a sensibilidade e a especificidade variam em direções opostas. Isto é, geralmente, quando um método é muito sensível a positivos, tende a gerar muitos falso-positivos, e vice-versa. Assim, um método de decisão perfeito (100 % de sensibilidade e 100% especificidade) raramente é alcançado, e um balanço entre ambos deve ser atingido.

EFICIENCIA = (SENS + ESPEC) / 2

VALOR PREDITIVO POSITIVO

A proporção de verdadeiros positivos em relação a todas as predições positivas. Esta medida é altamente suscetivel a desbalanceamentos do conjunto de dados e pode facilmente induzir a uma conclusão errada sobre o desempenho do sistema.

VPP = ACERTOS POSITIVOS / TOTAL DE PREDIÇÕES POSITIVAS
VALOR PREDITIVO POSITIVO = VP / (VP + FP)

VALOR PREDITIVO NEGATIVO

A proporção de verdadeiros negativos em relação a todas as predições negativas. Esta medida é altamente suscetivel a desbalanceamentos do conjunto de dados e pode facilmente induzir a uma conclusão errada sobre o desempenho do sistema.

VPN = ACERTOS NEGATIVOS / TOTAL DE PREDIÇÕES NEGATIVAS
VALOR PREDITIVO NEGATIVO = VN / (VN + FN)

COEFICIENTE DE CORRELAÇÃO DE MATTHEWS – COEFICIENTE (PHI)

O coeficiente de correlação de Matthews é uma medida de qualidade de duas classificações binárias que pode ser usada mesmo se as classes possuem tamanhos bastante diferentes. Retorna um valor entre (-1) e (+1), em que um coeficiente de (+1) representa uma predicao perfeita, (0) representa uma predicao aleatoria media, e (-1) uma predicao inversa. Esta estatistica é equivalente ao coeficiente phi, e tenta, assim como a eficiência, resumir a qualidade da tabela de contingência em um único valor numérico passivel de ser comparado.

phi = (VP*VN – FP*FN) / sqrt((VP + FP)*(VP + FN)*(VN + FP)*(VN + FN))

Note que, se qualquer uma das somas no denominador for igual a (0), o denominador pode ser considerado (1), resutando em um phi igual a (0) que seria o limite correto para esta situação.

Para Ler:

KOHAVI, Ron; PROVOST, Foster. Glossary of terms. Machine Learning, v. 30, n. 2-3, p. 271-274, 1998.

Métricas de Avaliação de Modelos de Classificação/Predição

Comparação de Algoritmos de Aprendizado de Máquina de acordo com o hiperplano gerado de acordo com suas regiões de fronteira

Mostra a importância de entender o que cada algortimo faz e as suas aplicações.

Comparação de Algoritmos de Aprendizado de Máquina de acordo com o hiperplano gerado de acordo com suas regiões de fronteira

Aprendizado de Máquina Utilizando Função de Custo

Um vídeo bastante elucidativo sobre o quanto a abordagem sensível ao custo pode auxiliar na construção de modelos preditivos ou de classificação.

Aprendizado de Máquina Utilizando Função de Custo

Teorema de que “Não há almoço grátis” na construção de modelos.

Um bom artigo do Eric Cai.

Porque sempre a representação de um modelo seguirá a fórmula abaixo:

Modelo = Realidade – Erro

Teorema de que “Não há almoço grátis” na construção de modelos.

A Toda Poderosa Floresta Aleatória

Um ótimo post sobre as potencialidades das Florestas Aleatórias (Random Forests) com o direito de um Salmo no final do post. O post ainda apresenta duas referências sobre o uso das Random Forests.

The Random Forest™ is my shepherd; I shall not want.
He makes me watch the mean squared error decrease rapidly.
He leads me beside classification problems.
He restores my soul.
He leads me in paths of the power of ensembles
for his name’s sake.

Even though I walk through the valley of the curse of dimensionality,
I will fear no overfitting,
for you are with me;
your bootstrap and your randomness,
they comfort me.

You prepare a prediction before me
in the presence of complex interactions;
you anoint me data scientist;
my wallet overflows.
Surely goodness of fit and money shall follow me
all the days of my life,
and I shall use Random Forests™
forever.

A Toda Poderosa Floresta Aleatória

4 Razões para ler o livro “Predictive Analytics”

No Kgnuggets tem uma lista bem interessante sobre as razões para ler Predictive Analytics: The Power to Predict Who Will Click, Buy, Lie, or Die.

1. New case studies. Find detailed stories you have never before heard from Hewlett-Packard, Chase, and the Obama Campaign. And did you know that John Elder once invested all his own personal money into a blackbox stock market system of his own design? That’s the opening story of Chapter 1.

2. Complete conceptual coverage. Although packaged with catchy chapter titles, the conceptual outline is fundamental:  1) deployment, 2) civil liberties, 3) data, 4) core modeling, 5) ensemble models, 6) IBM’s Jeopardy!-playing Watson, and 7) uplift modeling (aka net lift or persuasion modeling).

3. A cross-industry compendium of 147 cases. This comprehensive collection of mini-case studies serves to illustrate just how wide the field’s reach extends. A color insert, it includes a table for each of the verticals:  Personal Life, Marketing, Finance, Healthcare, Crime Fighting, Reliability Modeling, Government and Nonprofit, Human Language and Thought, and Human Resources. One reviewer said, “The tables alone are worth the price of admission.”

4. Privacy and other civil liberty concerns. The author’s treatise on predictive analytics’ ethical realm, a chapter entitled “With Power Comes Responsibility,” addresses the questions: In what ways does predictive analytics fuel the contentious flames surrounding data privacy, raising its already-high stakes? What civil liberty concerns arise beyond privacy per se? What about predictive crime models that help decide who stays in prison?

4 Razões para ler o livro “Predictive Analytics”

Comparações de Modelos

Deep Data Mining Blog neste post aborda um tema interessante que é a comparação e escolha de modelos de classificação. No post os autores realizam comparações sobre alguns métodos de classificação e tomam uma tabela de Lift para comparação de performance.

Os resultados são bem claros: Apesar do método de Gradient Boost Tree ser o mais perfomático a nível de acurácia, o método de seleção do modelo deve levar em conta também a complexidade de realizar o Walk-Through em ambientes de produção.

Comparações de Modelos

Previsão de Investimento em Porfólios utilizando Mineração de Dados

Este artigo de Adebimpe, Adedara e Longe pode ser descrito como um apanhado geral de idéias pertinentes a utilização de mineração de dados para administração e construção de portfólios, no qual os autores utilizam a técnica de árvore de decisão no qual fazem a classificação de atributos fundamentalistas para formulação de estratégias de investimento para portfólios financeiros de ativos em bolsa.

O artigo por si só é bem curto, entretanto trás uma bibliografia rica e apresenta uma idéia plausível para quem deseja realizar uma análise inicial sobre ativos em bolsa para formulação de estratégias de investimento de forma organizada e coordenada.

Forecasting Portfolio Investment Using Data Mining

Previsão de Investimento em Porfólios utilizando Mineração de Dados

Um modelo de aplicação de Mineração de Dados para Score de Crédito – A framework of data mining application process for credit scoring

Esse artigo apresenta um framework muito elaborado no qual Yang Liu passa pelos aspectos básicos da mineração de dados. O artigo conta com uma ótima bibliografia de apoio. De maneira geral o artigo coloca a mineração de dados como um meio de obter análises de portfólios através de métodos indutivos paramétricos e/ou não paramétricos. A diagramação é ótima na qual dá apoio significativo ao que está sendo explicado. Obrigatório para quem trabalha com scoring de crédito em geral.

A Framework of a Data Mining Application Process to a Credit Scoring

Um modelo de aplicação de Mineração de Dados para Score de Crédito – A framework of data mining application process for credit scoring

Resenha: Data Mining with R: Learning with Case Studies

 

Este livro de Luiz Torgo é um ótimo exemplo de que se podem escrever bons livros de mineração de dados, sem a forma prolixa dos livros que estão no mercado atualmente, no qual o autor ao mesmo tempo que trata da mineração de dados na ferramenta R, coloca exemplos bem práticos os quais podem ser transpostos para situações corporativas e educacionais com extrema facilidade.

O livro consolida o R como uma ferramenta robusta de mineração de dados, no qual coloca em seu livro de modo bem didático e através de muito código e explicações passo-a-passo como utilizar o R, através do aprendizado na prática, e devido a isso os usuários menos experientes podem sentir falta de explicações sobre a sintaxe do R; mas em termos gerais isso foi um trunfo do livro que se mantêm como um manual prático bem enxuto.

Dentro da mineração de dados, a obra aborda aspectos relativos à predição, detecção de outliers e classificação; no qual que deseja uma abordagem prática e precisa desse tipo de recurso tem neste livro o manual absoluto para aplicação da mineração de dados.

Falar do R como ferramenta de mineração de dados dispensa comentários já que seguramente é a melhor ferramenta para esse tipo de pratica, pois; além de envolver bibliotecas customizáveis, conta com uma parte estatística que ainda não tem nenhum tipo de concorrente.

O livro é seguramente o melhor manual prático de mineração de dados disponível. Ponto.

Apesar do escrito acima não indica que o mesmo é perfeito em todos os aspectos, o qual o autor não menciona em seus estudos de caso nenhum tipo de metodologia, mas naquilo que o livro se propõe a ser, ou seja, um manual de aprendizado de mineração de dados prático, esse objetivo é atingido em sua plenitude.

Pontos Fontes: Para quem deseja conhecer o R já de cara no Data Mining, para quem gosta de aprender com estudos de caso.

Pontos Fracos: Os scripts de implementação não estão muito bem explicados, e a falta de explicação da sintaxe deixa a desejar.

Resenha: Data Mining with R: Learning with Case Studies