7 conceitos simples de Machine Learning

Mais didático que isso, somente um desenho.

Anúncios
7 conceitos simples de Machine Learning

Algoritmos de Clustering para conjuntos de dados massivos

Via Big Data Central.

Potential applications:

  • Creating a keyword taxonomy to categorize the entire universe of cleaned (standardized), valuable English keywords. We are talking of about 10 million keywords made up of one, two or three tokens, that is, about 300 times the number of keywords found in a good English dictionary. The purpose might be to categorize all bid keywords that could be purchased by eBay and Amazon on Google (for pay-per-click ad campaigns), to better price them. This is the application discussed in this article.
  • Clustering millions of documents (e.g. books on Amazon.com) or
  • Clustering web pages, or even the entire Internet, which consist of about 100 million top websites – and billions of web pages.
Algoritmos de Clustering para conjuntos de dados massivos

Qual a diferença entre LASSO e Ridge Regression?

Eu sei que essa pergunta é velha, mas sempre que alguém não consegue entender alguma coisa é uma nova oportunidade de transmitir esse conhecimento de forma mais inteligente em um novo formato.

Essas duas técnicas derivadas da regressão são conhecidos com métodos regressores de Shrinkage, ou de encolhimento.

Isso torna-se necessário partindo do seguinte princípio: Uma regressão com diversos coeficientes regressores torna o modelo como um todo muito mais complexo e pode tirar características de interpretabilidade. Uma forma de eliminar esse problema, que pode absorver o ruído dos dados e causar o overfitting, esses métodos fazem a retenção de um subconjunto de coeficientes regressores o que não somente reduz a complexidade do modelo e a forma que o mesmo é calculado e construído, como reduz o erro e de quebra miimiza qualquer possibilidade do modelo ter overfitting.

Dentro desses métodos de encolhimento (Shirinkage Methods)  há dois que se destacam em se tratando de aprendizado de máquina que são a Ridge Regression e o LASSO (Least Absolute Shrinkage and Selection Operator).

A Ridge Regression é um método de regularização do modelo que tem como principal objetivo suavizar atributos que sejam relacionados uns aos outros e que aumentam o ruído no modelo (A.K.A multicolinearidade). Com isso com a retirada de determinados atributos do modelo, o mesmo converge para um resultado muito mais estável em que com a redução desses atributos, a redução em termos de acuácia do modelo se mantêm inalterada. O mecanismo algoritmico que faz isso é através de um mecanismo de penalização que coloca um viés e que vai reduzindo os valores os betas até não zero. Com isso os atributos que contribuem menos para o poder preditivo do modelo são levados para a irrelevância usando esse mecanismo de penalização do viés.

Já o LASSO tem o mesmo mecanismo de penalização dos coeficientes com um alto grau de correlação entre si, mas que usa o mecanismo de penalizar os coeficientes de acordo com o seu valor absoluto (soma dos valores dos estimadores) usando o mecanismo de minimizar o erro quadrático. Isso é feito através da penalização do coeficiente até que o mesmo convirja para zero; o que naturalmente vai eliminar o atributo e reduzir a dimensionalidade do modelo.

A pergunta que todo mundo vai fazer no final desse post: “Mas Flavio quando eu posso aplicar um ou outro?

A resposta é um grande depende. 

Como heurística de trabalho, eu particularmente gosto do LASSO para validar um pré-processamento que foi feito usando alguma outra técnica como Rough Sets, ou mesmo quando eu tenho modelos que precisam em um primeiro momento ter o erro bem isolado (e.g. problemas relativos à precisão). Já a Ridge Regression é mais apropriada para problemas em que o erro deve estar contido como parte de uma solução (que nunca será a melhor) em que eu tenha que colocar um pouco mais de aleatoreidade no modelo (e.g. problemas de acurácia).

Abaixo os papers originais de LASSO e de Ridge Regression.

Regression Shrinkage and Selection via LASSO

Ridge Regression – Biased Estimation for Nonorthogonal Problems

 

Qual a diferença entre LASSO e Ridge Regression?

STR: A Seasonal-Trend Decomposition Procedure Based on Regression

Um dos maiores desafios em predição/decomposição de séries temporais (no espectro de aprendizado de máquina) é a inclusão de diversos efeitos sazonais ou até mesmo como saber quais efeitos cíclicos que estão contidos na série.

Esse paper do  Dokumentov e do Rob J Hyndman ataca essa questão com a criação do STR que é um procedimento para decomposição sazonal e de tendência baseado em regressão.

Abstract
We propose new generic methods for decomposing seasonal data: STR (a Seasonal-Trend decomposition procedure based on Regression) and Robust STR. In some ways, STR is similar to Ridge Regression and Robust STR can be related to LASSO. Our new methods are much more general than any alternative time series decomposition methods. They allow for multiple seasonal and cyclic components, and multiple linear regressors with constant, flexible, seasonal and cyclic influence. Seasonal patterns (for both seasonal components and seasonal regressors) can be fractional and flexible over time; moreover they can be either strictly periodic or have a more complex topology. We also provide confidence intervals for the estimated components, and discuss how STR can be used for forecasting.

wp13-15

STR: A Seasonal-Trend Decomposition Procedure Based on Regression

7 técnicas para redução da dimensionalidade

Na atual era do Big Data em que o custo de armazenamento praticamente foi levado ao nível de commodity, muitas corporações que se gabam que são ‘adeptas’ do Big Data acabam pagando/armazenando ruído ao invés de sinal.

Pelo motivo exposto acima, diante do prisma de Engenharia de Dados o problema de absorção/retenção dessas informações está resolvido.

No entanto, quando é necessário escalar negócios através de inteligência usando os dados (lembrando o que foi dito no passado: Dado > Informação > Conhecimento > Sabedoria) o que era uma característica inerente ao avanço tecnológico de engenharia de dados, torna-se um problema gigante dentro da ciência de dados.

Com esse aumento horizontal das bases de dados (dimensões / atributos) um problema grave é o aumento da dimensionalidade (Course of Dimensionality) em que temos não somente multicolinearidade, heteroscedasticidade e autocorreação para ficar em exemplos estatísticos simples.  Em termos computacionais nem é preciso dizer que o aumento de atributos faz com que os algoritmos de Data Mining ou Inteligência Computacional tenham que processar um volume de dados muito maior (aumento da complexidade do processamento = maior custo temporal).

Dada essa pequena introdução, essa é a razão na qual a redução da dimensionalidade é muito importante para qualquer data miner.

Esse post da Knime apresenta 7 técnicas para redução da dimensionalidade, que são:

Missing Values Ratio. Data columns with too many missing values are unlikely to carry much useful information. Thus data columns with number of missing values greater than a given threshold can be removed. The higher the threshold, the more aggressive the reduction.

Low Variance Filter. Similarly to the previous technique, data columns with little changes in the data carry little information. Thus all data columns with variance lower than a given threshold are removed. A word of caution: variance is range dependent; therefore normalization is required before applying this technique.

High Correlation Filter. Data columns with very similar trends are also likely to carry very similar information. In this case, only one of them will suffice to feed the machine learning model. Here we calculate the correlation coefficient between numerical columns and between nominal columns as the Pearson’s Product Moment Coefficient and the Pearson’s chi square value respectively. Pairs of columns with correlation coefficient higher than a threshold are reduced to only one. A word of caution: correlation is scale sensitive; therefore column normalization is required for a meaningful correlation comparison.

– Random Forests / Ensemble Trees. Decision Tree Ensembles, also referred to as random forests, are useful for feature selection in addition to being effective classifiers. One approach to dimensionality reduction is to generate a large and carefully constructed set of trees against a target attribute and then use each attribute’s usage statistics to find the most informative subset of features. Specifically, we can generate a large set (2000) of very shallow trees (2 levels), with each tree being trained on a small fraction (3) of the total number of attributes. If an attribute is often selected as best split, it is most likely an informative feature to retain. A score calculated on the attribute usage statistics in the random forest tells us ‒ relative to the other attributes ‒ which are the most predictive attributes.

Principal Component Analysis (PCA). Principal Component Analysis (PCA) is a statistical procedure that orthogonally transforms the original n coordinates of a data set into a new set of n coordinates called principal components. As a result of the transformation, the first principal component has the largest possible variance; each succeeding component has the highest possible variance under the constraint that it is orthogonal to (i.e., uncorrelated with) the preceding components. Keeping only the first m < n components reduces the data dimensionality while retaining most of the data information, i.e. the variation in the data. Notice that the PCA transformation is sensitive to the relative scaling of the original variables. Data column ranges need to be normalized before applying PCA. Also notice that the new coordinates (PCs) are not real system-produced variables anymore. Applying PCA to your data set loses its interpretability. If interpretability of the results is important for your analysis, PCA is not the transformation for your project.

Backward Feature Elimination. In this technique, at a given iteration, the selected classification algorithm is trained on n input features. Then we remove one input feature at a time and train the same model on n-1 input features n times. The input feature whose removal has produced the smallest increase in the error rate is removed, leaving us with n-1 input features. The classification is then repeated using n-2 features, and so on. Each iteration k produces a model trained on n-k features and an error rate e(k). Selecting the maximum tolerable error rate, we define the smallest number of features necessary to reach that classification performance with the selected machine learning algorithm.

– Forward Feature Construction. This is the inverse process to the Backward Feature Elimination. We start with 1 feature only, progressively adding 1 feature at a time, i.e. the feature that produces the highest increase in performance. Both algorithms, Backward Feature Elimination and Forward Feature Construction, are quite time and computationally expensive. They are practically only applicable to a data set with an already relatively low number of input columns.

Os resultados obtidos em termos de acurácia foram:

dimensionality_reduction

Alguns insights em relação aos resultados:

  • Apesar da robustez matemática, o PCA apresenta um resultado não tão satisfatório em relação a métodos mais simples de seleção de atributos. Isso pode indicar que esse método não lida tão bem com bases de dados com inconsistências.
  • Filtro de baixa variância e de valores faltantes são técnicas absolutamente simples e tiveram o mesmo resultado de técnicas algoritmicamente mais complexas como Florestas Aleatórias.
  • Construção de modelos com inclusão incremental de atributos e eliminação de atributos retroativa são métodos que apresentam uma menor performance e são proibitivos em termos de processamento.
  • A estatística básica ainda é uma grande ferramenta para qualquer data miner, e não somente ajuda em termos de redução do custo temporal (processamento) quanto em custo espacial (custo de armazenamento).

A metodologia do estudo pode ser encontrada abaixo.

knime_seventechniquesdatadimreduction

7 técnicas para redução da dimensionalidade

Agrupamento usando Mean Shift

Neste post do Matt Nedrich fica quase impossível não entender as vantagens de se usar o Mean Shift que é uma técnica pouco conhecida e muito útil no caso de clustering em que o cálculo de cada um dos clusters não é possível.

Agrupamento usando Mean Shift

Métodos de reamostragem para estimativa de erro em aprendizado de máquina

Esses slides do Tanagra, mostram de maneira bem didática como são feitas as estimativas usando métodos de reamostragem como Cross-Validation, Bootstrap, e LOO Cross Validation.

resampling_evaluation

Métodos de reamostragem para estimativa de erro em aprendizado de máquina

Previsão em séries temporais probabilísticas

Abstract

A large body of the forecasting literature so far has been focused on forecasting the conditional mean of future observations. However, there is an increasing need for generating the entire conditional distribution of future observations in order to effectively quantify the uncertainty in time series data. We present two different methods for probabilistic time series forecasting that allow the inclusion of a possibly large set of exogenous variables. One method is based on forecasting both the conditional mean and variance of the future distribution using a traditional regression approach. The other directly computes multiple quantiles of the future distribution using quantile regression. We propose an implementation for the two methods based on boosted additive models, which enjoy many useful properties including accuracy, flexibility, interpretability and automatic variable selection. We conduct extensive experiments using electricity smart meter data, on both aggregated and disaggregated scales, to compare the two forecasting methods for the challenging problem of forecasting the distribution of future electricity consumption. The empirical results demonstrate that the mean and variance forecasting provides better forecasts for aggregated demand, while the flexibility of the quantile regression approach is more suitable for disaggregated demand. These results are particularly useful since more energy data will become available at the disaggregated level in the future.

Probabilistic time series forecasting with boosted additive models

Previsão em séries temporais probabilísticas

Redes Neurais e Redes Neurais Profundas

Como o assunto está muito quente foi feito até um livro online (com códigos e tudo mais):

Neural Networks and Deep Learning is a free online book. The book will teach you about:

Neural networks, a beautiful biologically-inspired programming paradigm which enables a computer to learn from observational data

Deep learning, a powerful set of techniques for learning in neural networks

Neural networks and deep learning currently provide the best solutions to many problems in image recognition, speech recognition, and natural language processing. This book will teach you the core concepts behind neural networks and deep learning.

The book is currently an incomplete beta draft. More chapters will be added over the coming months. For now, you can:

Read Chapter 1, which explains how neural networks can learn to recognize handwriting

Read Chapter 2, which explains backpropagation, the most important algorithm used to learn in neural networks.

Read Chapter 3, which explains many techniques which can be used to improve the performance of backpropagation.

Read Chapter 4, which explains why neural networks can compute any function.

Learn more about the approach taken in this book

Redes Neurais e Redes Neurais Profundas

Data Scientists não escalam!

Esse artigo da HBR que fala que a linguagem natural é a última fronteira para escalar de fato o que eles denominam como data science, e também mostram que os cientistas de dados ‘manuais’  existem em um arranjo de trabalho que simplesmente não tem escalabilidade.

Para jogar um pouco de lenha na fogueira em relação ao haterismo (aqui, aqui, aqui, e aqui) que vem tomando conta da comunidade de analytics/data mining/data science sobre as ferramentas de análise baseadas em GUI e os novos Work Horses em analytics como Amazon, Google e Microsoft.

Muito do que foi colocado no artigo tem muito a ver com o antigo, porém excelente artigo da Continental Airlines em que usando a extensão do trabalho do Richard Hackathorn coloca os tipos de latência no contexto de decisão-ação:

Action-Latency

Tudo começa com o evento de negócios que pode ser uma venda, uma transação qualquer que tenha valor monetário para a companhia em questão. A contar do evento de negócios, tem início a latência de dados que nada mais é do que o tempo requirido para capturar, transformar, higienizar o dado de algum sistema transacional e armazenar no DW, com isso tem-se o segundo ponto na linha do tempo de ação que é o dado armazenado.

Com o dado armazenado inicia-se a latência de análise que é o tempo utilizado para analisar e disseminar os resultados da análise para as pessoas apropriadas, e no fim desse processo tem-se o que é chamado de informação entregue. Após a informação chegar para as pessoas corretas inicia-se a latência de decisão que é o tempo para que o agente decisor entenda o contexto e a situação, faça um plano de ação e inicie o conjunto de tarefas listadas no plano.

Dentro do atual cenário em que temos o problema de armazenamento de dados quase que resolvido pelas novas tecnologias, pode ser dito que o problema de latência de dados está definitivamente resolvido  (e pode ser escalado com dinheiro), com isso resta a latência de análise e decisão.

Muito do que é apresentado como Data Science não está diretamente relacionado a questões de negócios em que grande parte das vezes o tempo é a variável mais determinante. Isso é, o eixo X do gráfico é extremamente reduzido.

Com isso, muito do que é feito é uma solução ótima para um problema que muitas das vezes já era para estar resolvido ou pior: a solução foi tão demorada que a organização perdeu o timing para a solução do problema. Isso pode significar desde uma oportunidade perdida (e.g. custo de oportunidade) até mesmo milhões de reais/dólares (e.g. perda de receita que poderia ser garantida usando o ativo de inteligência de dados).

E é nesse ponto que vamos chegar: Em grande parte das corporações não é necessária a solução perfeita; mas sim a solução que atenda uma questão de negócios dentro de um limite de tempo pré-estabelecido; e é nesse contexto que as soluções das suítes de Data Mining e ferramentas GUI vem a solucionar, ou ajudar na solução desse problema.

Além do mais, como a Julia Evans colocou, muitas as vezes o entendimento do problema é tão ou mais importante que a solução em si.

Dessa forma, dentro desse cenário a reportagem da HBR está correta: Cientistas de Dados não escalam por dois motivos (i) apesar da inteligência ser escalável, o agente humano (peça cognitiva no processo) não escala (não em termos industriais como o artigo coloca), e (ii) as soluções estão restritas a um intervalo de tempo finito e curto.

 

 

Data Scientists não escalam!

Aplicações de Deep Learning e desafios e Big Data Analytics

Uma coisa interessante nesse artigo, foi que é um dos poucos que tem uma estratégia para Deep Learning não baseada em algoritmos, mas sim em indexação semântica. 

Abstract

Big Data Analytics and Deep Learning are two high-focus of data science. Big Data has become important as many organizations both public and private have been collecting massive amounts of domain-specific information, which can contain useful information about problems such as national intelligence, cyber security, fraud detection, marketing, and medical informatics. Companies such as Google and Microsoft are analyzing large volumes of data for business analysis and decisions, impacting existing and future technology. Deep Learning algorithms extract high-level, complex abstractions as data representations through a hierarchical learning process. Complex abstractions are learnt at a given level based on relatively simpler abstractions formulated in the preceding level in the hierarchy. A key benefit of Deep Learning is the analysis and learning of massive amounts of unsupervised data, making it a valuable tool for Big Data Analytics where raw data is largely unlabeled and un-categorized. In the present study, we explore how Deep Learning can be utilized for addressing some important problems in Big Data Analytics, including extracting complex patterns from massive volumes of data, semantic indexing, data tagging, fast information retrieval, and simplifying discriminative tasks. We also investigate some aspects of Deep Learning research that need further exploration to incorporate specific challenges introduced by Big Data Analytics, including streaming data, high-dimensional data, scalability of models, and distributed computing. We conclude by presenting insights into relevant future works by posing some questions, including defining data sampling criteria, domain adaptation modeling, defining criteria for obtaining useful data abstractions, improving semantic indexing, semi-supervised learning, and active learning.

s40537-014-0007-7

Aplicações de Deep Learning e desafios e Big Data Analytics

Cross-Validation, e a estimativa da estimativa

No ótimo post do blog do Andrew Gelman em que o título é “Cross-Validation != Magic” tem uma observação muito importante sobre a definição do Cross-Validation (Validação Cruzada) que é:

“2. Cross-validation is a funny thing. When people tune their models using cross-validation they sometimes think that because it’s an optimum that it’s the best. Two things I like to say, in an attempt to shake people out of this attitude:

(a) The cross-validation estimate is itself a statistic, i.e. it is a function of data, it has a standard error etc.

(b) We have a sample and we’re interested in a population. Cross-validation tells us what performs best on the sample, or maybe on the hold-out sample, but our goal is to use what works best on the population. A cross-validation estimate might have good statistical properties for the goal of prediction for the population, or maybe it won’t.

Just cos it’s “cross-validation,” that doesn’t necessarily make it a good estimate. An estimate is an estimate, and it can and should be evaluated based on its statistical properties. We can accept cross-validation as a useful heuristic for estimation (just as Bayes is another useful heuristic) without buying into it as necessarily best.

Cross-Validation é um assunto bem espinhoso quando se trata de amostragem e/ou estimação de modelos devido ao fato de que há diversas opiniões a favor e contra.

Conhecer as propriedades de cada método de amostragem e saber as suas propriedades matemáticas/estatísticas, vantagens e desvantagens e principalmente limitações é regra número 1 para qualquer data miner.

Particularmente, eu vejo o Cross-Validation como um método excelente quando se tem um universo de dados restrito (poucas instâncias treinamento), ou mesmo quando faço as validações com método normal de 80-10-10 de amostragem; mas isso é mais uma heurística de trabalho do que uma regra propriamente dita .

Cross-Validation, e a estimativa da estimativa