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!

91 perguntas para cientistas de dados

Via Data Science Central.

  1. What is the biggest data set that you processed, and how did you process it, what were the results?
  2. Tell me two success stories about your analytic or computer science projects? How was lift (or success) measured?
  3. What is: lift, KPI, robustness, model fitting, design of experiments, 80/20 rule?
  4. What is: collaborative filtering, n-grams, map reduce, cosine distance?
  5. How to optimize a web crawler to run much faster, extract better information, and better summarize data to produce cleaner databases?
  6. How would you come up with a solution to identify plagiarism?
  7. How to detect individual paid accounts shared by multiple users?
  8. Should click data be handled in real time? Why? In which contexts?
  9. What is better: good data or good models? And how do you define “good”? Is there a universal good model? Are there any models that are definitely not so good?
  10. What is probabilistic merging (AKA fuzzy merging)? Is it easier to handle with SQL or other languages? Which languages would you choose for semi-structured text data reconciliation? 
  11. How do you handle missing data? What imputation techniques do you recommend?
  12. What is your favorite programming language / vendor? why?
  13. Tell me 3 things positive and 3 things negative about your favorite statistical software.
  14. Compare SAS, R, Python, Perl
  15. What is the curse of big data?
  16. Have you been involved in database design and data modeling?
  17. Have you been involved in dashboard creation and metric selection? What do you think about Birt?
  18. What features of Teradata do you like?
  19. You are about to send one million email (marketing campaign). How do you optimze delivery? How do you optimize response? Can you optimize both separately? (answer: not really)
  20. Toad or Brio or any other similar clients are quite inefficient to query Oracle databases. Why? How would you do to increase speed by a factor 10, and be able to handle far bigger outputs? 
  21. How would you turn unstructured data into structured data? Is it really necessary? Is it OK to store data as flat text files rather than in an SQL-powered RDBMS?
  22. What are hash table collisions? How is it avoided? How frequently does it happen?
  23. How to make sure a mapreduce application has good load balance? What is load balance?
  24. Examples where mapreduce does not work? Examples where it works very well? What are the security issues involved with the cloud? What do you think of EMC’s solution offering an hybrid approach – both internal and external cloud – to mitigate the risks and offer other advantages (which ones)?
  25. Is it better to have 100 small hash tables or one big hash table, in memory, in terms of access speed (assuming both fit within RAM)? What do you think about in-database analytics?
  26. Why is naive Bayes so bad? How would you improve a spam detection algorithm that uses naive Bayes?
  27. Have you been working with white lists? Positive rules? (In the context of fraud or spam detection)
  28. What is star schema? Lookup tables? 
  29. Can you perform logistic regression with Excel? (yes) How? (use linest on log-transformed data)? Would the result be good? (Excel has numerical issues, but it’s very interactive)
  30. Have you optimized code or algorithms for speed: in SQL, Perl, C++, Python etc. How, and by how much?
  31. Is it better to spend 5 days developing a 90% accurate solution, or 10 days for 100% accuracy? Depends on the context?
  32. Define: quality assurance, six sigma, design of experiments. Give examples of good and bad designs of experiments.
  33. What are the drawbacks of general linear model? Are you familiar with alternatives (Lasso, ridge regression, boosted trees)?
  34. Do you think 50 small decision trees are better than a large one? Why?
  35. Is actuarial science not a branch of statistics (survival analysis)? If not, how so?
  36. Give examples of data that does not have a Gaussian distribution, nor log-normal. Give examples of data that has a very chaotic distribution?
  37. Why is mean square error a bad measure of model performance? What would you suggest instead?
  38. How can you prove that one improvement you’ve brought to an algorithm is really an improvement over not doing anything? Are you familiar with A/B testing?
  39. What is sensitivity analysis? Is it better to have low sensitivity (that is, great robustness) and low predictive power, or the other way around? How to perform good cross-validation? What do you think about the idea of injecting noise in your data set to test the sensitivity of your models?
  40. Compare logistic regression w. decision trees, neural networks. How have these technologies been vastly improved over the last 15 years?
  41. Do you know / used data reduction techniques other than PCA? What do you think of step-wise regression? What kind of step-wise techniques are you familiar with? When is full data better than reduced data or sample?
  42. How would you build non parametric confidence intervals, e.g. for scores? (see the AnalyticBridge theorem)
  43. Are you familiar either with extreme value theory, monte carlo simulations or mathematical statistics (or anything else) to correctly estimate the chance of a very rare event?
  44. What is root cause analysis? How to identify a cause vs. a correlation? Give examples.
  45. How would you define and measure the predictive power of a metric?
  46. How to detect the best rule set for a fraud detection scoring technology? How do you deal with rule redundancy, rule discovery, and the combinatorial nature of the problem (for finding optimum rule set – the one with best predictive power)? Can an approximate solution to the rule set problem be OK? How would you find an OK approximate solution? How would you decide it is good enough and stop looking for a better one?
  47. How to create a keyword taxonomy?
  48. What is a Botnet? How can it be detected?
  49. Any experience with using API’s? Programming API’s? Google or Amazon API’s? AaaS (Analytics as a service)?
  50. When is it better to write your own code than using a data science software package?
  51. Which tools do you use for visualization? What do you think of Tableau? R? SAS? (for graphs). How to efficiently represent 5 dimension in a chart (or in a video)?
  52. What is POC (proof of concept)?
  53. What types of clients have you been working with: internal, external, sales / finance / marketing / IT people? Consulting experience? Dealing with vendors, including vendor selection and testing?
  54. Are you familiar with software life cycle? With IT project life cycle – from gathering requests to maintenance? 
  55. What is a cron job? 
  56. Are you a lone coder? A production guy (developer)? Or a designer (architect)?
  57. Is it better to have too many false positives, or too many false negatives?
  58. Are you familiar with pricing optimization, price elasticity, inventory management, competitive intelligence? Give examples. 
  59. How does Zillow’s algorithm work? (to estimate the value of any home in US)
  60. How to detect bogus reviews, or bogus Facebook accounts used for bad purposes?
  61. How would you create a new anonymous digital currency?
  62. Have you ever thought about creating a startup? Around which idea / concept?
  63. Do you think that typed login / password will disappear? How could they be replaced?
  64. Have you used time series models? Cross-correlations with time lags? Correlograms? Spectral analysis? Signal processing and filtering techniques? In which context?
  65. Which data scientists do you admire most? which startups?
  66. How did you become interested in data science?
  67. What is an efficiency curve? What are its drawbacks, and how can they be overcome?
  68. What is a recommendation engine? How does it work?
  69. What is an exact test? How and when can simulations help us when we do not use an exact test?
  70. What do you think makes a good data scientist?
  71. Do you think data science is an art or a science?
  72. What is the computational complexity of a good, fast clustering algorithm? What is a good clustering algorithm? How do you determine the number of clusters? How would you perform clustering on one million unique keywords, assuming you have 10 million data points – each one consisting of two keywords, and a metric measuring how similar these two keywords are? How would you create this 10 million data points table in the first place?
  73. Give a few examples of “best practices” in data science.
  74. What could make a chart misleading, difficult to read or interpret? What features should a useful chart have?
  75. Do you know a few “rules of thumb” used in statistical or computer science? Or in business analytics?
  76. What are your top 5 predictions for the next 20 years?
  77. How do you immediately know when statistics published in an article (e.g. newspaper) are either wrong or presented to support the author’s point of view, rather than correct, comprehensive factual information on a specific subject? For instance, what do you think about the official monthly unemployment statistics regularly discussed in the press? What could make them more accurate?
  78. Testing your analytic intuition: look at these three charts. Two of them exhibit patterns. Which ones? Do you know that these charts are called scatter-plots? Are there other ways to visually represent this type of data?
  79. You design a robust non-parametric statistic (metric) to replace correlation or R square, that (1) is independent of sample size, (2) always between -1 and +1, and (3) based on rank statistics. How do you normalize for sample size? Write an algorithm that computes all permutations of n elements. How do you sample permutations (that is, generate tons of random permutations) when n is large, to estimate the asymptotic distribution for your newly created metric? You may use this asymptotic distribution for normalizing your metric. Do you think that an exact theoretical distribution might exist, and therefore, we should find it, and use it rather than wasting our time trying to estimate the asymptotic distribution using simulations? 
  80. More difficult, technical question related to previous one. There is an obvious one-to-one correspondence between permutations of n elements and integers between 1 and n! Design an algorithm that encodes an integer less than n! as a permutation of n elements. What would be the reverse algorithm, used to decode a permutation and transform it back into a number? Hint: An intermediate step is to use the factorial number system representation of an integer. Feel free to check this reference online to answer the question. Even better, feel free to browse the web to find the full answer to the question (this will test the candidate’s ability to quickly search online and find a solution to a problem without spending hours reinventing the wheel).  
  81. How many “useful” votes will a Yelp review receive? My answer: Eliminate bogus accounts (read this article), or competitor reviews (how to detect them: use taxonomy to classify users, and location – two Italian restaurants in same Zip code could badmouth each other and write great comments for themselves). Detect fake likes: some companies (e.g. FanMeNow.com) will charge you to produce fake accounts and fake likes. Eliminate prolific users who like everything, those who hate everything. Have a blacklist of keywords to filter fake reviews. See if IP address or IP block of reviewer is in a blacklist such as “Stop Forum Spam”. Create honeypot to catch fraudsters.  Also watch out for disgruntled employees badmouthing their former employer. Watch out for 2 or 3 similar comments posted the same day by 3 users regarding a company that receives very few reviews. Is it a brand new company? Add more weight to trusted users (create a category of trusted users).  Flag all reviews that are identical (or nearly identical) and come from same IP address or same user. Create a metric to measure distance between two pieces of text (reviews). Create a review or reviewer taxonomy. Use hidden decision trees to rate or score review and reviewers.
  82. What did you do today? Or what did you do this week / last week?
  83. What/when is the latest data mining book / article you read? What/when is the latest data mining conference / webinar / class / workshop / training you attended? What/when is the most recent programming skill that you acquired?
  84. What are your favorite data science websites? Who do you admire most in the data science community, and why? Which company do you admire most?
  85. What/when/where is the last data science blog post you wrote? 
  86. In your opinion, what is data science? Machine learning? Data mining?
  87. Who are the best people you recruited and where are they today?
  88. Can you estimate and forecast sales for any book, based on Amazon public data? Hint: read this article.
  89. What’s wrong with this picture?
  90. Should removing stop words be Step 1 rather than Step 3, in the search engine algorithm described here? Answer: Have you thought about the fact that mine and yours could also be stop words? So in a bad implementation, data mining would become data mine after stemming, then data. In practice, you remove stop words before stemming. So Step 3 should indeed become step 1. 
  91. Experimental design and a bit of computer science with Lego’s
91 perguntas para cientistas de dados

Falsa Ciência de Dados

No Analytic Bridge tem uma definição sensacional sobre o atual momento dessa disciplina:

Books, certificates and graduate degrees in data science are spreading like mushrooms after the rain.

Unfortunately, many are just a mirage: some old guys taking advantage of the new paradigm to quickly re-package some very old material (statistics, R programming) with the new label: data science.

To add to the confusion, executives, decision makers building a new team of data scientists sometimes don’t know exactly what they are looking for, ending up hiring pure tech geeks, computer scientists, or people lacking proper experience. The problem is compounded by HR who do not know better, producing job ads which always contain the same keywords: Java, Python, Map Reduce, R, NoSQL. As if a data scientist was a mix of these skills.

Falsa Ciência de Dados

Cientistas de Dados Horizontais X Cientistas de Dados Verticais

Dois conceitos bem interessantes trazidos pelo Vincent Grandville que mostram o porque que os recrutadores de TI/Análise de Dados devem ter atenção no momento de análise de candidatos:

    • Vertical data scientists have very deep knowledge in some narrow field. They might be computer scientists very familiar with computational complexity of all sorting algorithms. Or a statistician who knows everything about eigenvalues, singular value decomposition and its numerical stability, and asymptotic convergence of maximum pseudo-likelihood estimators. Or a software engineer with years of experience writing Python code (including graphic libraries) applied to API development and web crawling technology. Or a database guy with strong data modeling, data warehousing, graph databases, Hadoop and NoSQL expertise. Or a predictive modeler expert in Bayesian networks, SAS and SVM.
    • Horizontal data scientists are a blend of business analysts, statisticians, computer scientists and domain experts. They combine vision with technical knowledge. They might not be expert in eigenvalues, generalized linear models and other semi-obsolete statistical techniques, but they know about more modern, data-driven techniques applicable to unstructured, streaming, and big data, such as (for example) the very simple and applied Analyticbridge theorem to build confidence intervals. They can design robust, efficient, simple, replicable and scalable code and algorithms.
Cientistas de Dados Horizontais X Cientistas de Dados Verticais

Negócios Orientados pelos Dados e a Demanda por Cientistas de Dados

Neste post do Michael Walker ele referencia uma pesquisa da EMC na qual ele apresenta dados sobre a demanda de profissionais de meados de 2011 até o presente momento apresenta um aumento de mais de 200% devido ao fato de que alguns negócios já necessitam de analisar os próprios dados para manutenção de vantagens competitivas em relação aos concorrentes.

Note-se que o verbo utilizado foi manutenção e não obtenção, devido ao fato de que em grandes empresas fora do Brasil muito já é realizado em relação a questão de análise de dados corporativos; que vão desde o emprego de técnicas de aprendizado de máquina até sistemas de recomendação que utilizam mineração de dados.

Em terra brasilis o panorama é bom para estudantes das hard sciences e cientistas da computação devido ao fato do nosso mercado em sua grande maioria não possuírem nada além do básico em análise de dados que são respectivamente o Excel, e estatísticas descritivas básicas.

Conceitos como Modelagem Multidimensional / Datawarehousing, e o tradicional Business Intelligence são apresentados aqui no Brasil como novidades e fatores de desequilíbrio corporativo, sendo que nos EUA/Europa são conceitos mais do que ultrapassados.

Não acredita no acima? Pergunte a qualquer Diretor/Gerente/Coordenador de Business Intelligence algo básico como Market Basket Analysis e verá o quão atrasados estes estão em relação a pessoas com o mesmo cargo em outros lugares do globo.

Análise Preditiva? Isso soa quase como algo esotérico.

Para finalizar o post, fica uma frase do Abraham Lincoln para vocês futuros cientistas de dados.

“If I had eight hours to chop down a tree, I’d spend six hours sharpening my ax”. 

Negócios Orientados pelos Dados e a Demanda por Cientistas de Dados

O Mito do Cientista de Dados Perdido

Para quem deseja saber um pouco mais sobre o lado B da profissão de Cientista de Dados (Data Scientist) que está em alta no mercado, este post do Brian Lee coloca um ponto de vista bem interessante.

Ele alega que esse buzz do mercado sobre esse tipo de profissional em grande parte do tempo pode esconder diversas limitações nesses profissionais e em suas práticas.

O Mito do Cientista de Dados Perdido

Acadêmicos deveriam considerar os desafios do Kaggle válidos para pesquisas

A algum tempo atrás foi realizada uma postagem neste espaço sobre o Kaggle o qual é um site no qual empresas terceirizam a sua análise de dados, através de competições que podem ser remuneradas ou não.

Neste post há uma boa provocação no sentido de porque os acadêmicos não consideram os desafios do Kaggle como válidos para pesquisas; em especial os famosos Data Scientists da web.

Em especial, e aqui é um mea culpa com uma crítica coletiva; é muito bom de ver diversos livros de mineração de dados em português, e até mesmo a popularização do ensino; entretanto, seria muito válido que os profesores e demais acadêmicos de mineração de dados que tanto escrevem artigos e livros (que só o webmaster desse site e mais duas dúzias de alunos fazem questão de ler) se submetessem com o seu background para esse tipo de disputa; o que colocaria não são em perspectiva a teoria como a prática.

Acadêmicos deveriam considerar os desafios do Kaggle válidos para pesquisas

Mineração de Dados x Econometria

Uma ótima discussão via LinkedIn sobre um assunto bastante recorrente e importante quando falamos de Mineração de Dados e análises voltadas a predição.

Com o crescimento dos softwares computacionais voltados à análise de dados, bem como a falha dos setores econômicos em relação as suas previsões, ficou a impressão que a máquina em breve substituiria o papel do homem em relação à análise de dados, no qual bastaria apenas uma base de dados que a máquina realizaria todo o trabalho de previsão e os analistas humanos teriam apenas o trabalho de validar os modelos propostos de forma automática.

Entretanto, muito do que se fala hoje sobre modelos de predição não envolve apenas o programa de computador, mas também tem muito da modelagem que é proposta por trás da análise; e nesse campo a Econometria continua soberana (e continuará por muito tempo). E a delimitação desses papéis se faz necessária para compreensão do processo de modelagem e análise de dados.

Primeiro o Data Scientist, ou Minerador de Dados é o responsável por realizar todo o mapeamento do projeto de mineração de dados desde o seu nascedouro como o entendimento do negócio e definição de domínio de atuação, aquisição e entendimento dos dados e métricas, manipulação/transformação de dados, aplicação e estudo de algoritmos de implementação, validação e implementação do projeto; muitas das vezes utilizando a metodologia CRISP-DM, e também a utilização de soft skills sobretudo em questões de relacionamentos interpessoais.

Em segundo lugar vem o Econometrista que é responsável pela utilização ferramentas de estimação/previsão dentro de contextos  político-econômicos, utilização de instrumentos das políticas econômicas e financeiras através de elementos matemáticos, prospecção de modelos econométricos, i.e. combinação de elementos matemáticos para descrever determinados comportamentos da economia, validação de modelos estatísticos para mensuração de recursos; além de contar com um leque de elementos intelectuais bastante vasto para interpretação de elementos da administração, contabilidade,  e economia clássica para conjecturas sistêmicas para construção desses modelos de comportamentos econômicos não observáveis  de forma experimental ou aplicada.

Em linhas gerais vemos que a diferença entre esses papéis são bem claras; enquanto um realiza análises através de conjecturas intelectuais, algo mais ou menos como a montagem de um quebra cabeças; outro tem como foco a elaboração de modelos estruturados dentro de uma teoria consolidada.

Essas profissões mais do que concorrer em questão de qual é a mais eficiente em termos de predições; são complementares e em diversos momentos estão dentro da mesma intersecção; na qual, o Data Scientist não consegue propor um modelo de mineração sem conhecimento do domínio baseado em análise exploratória (abordagem Hit and Run); o Econometrista não consegue realizar predições sem um conjunto de dados que siga um determinado padrão de aquisição e abrangência. Simples assim. Pensar dessas duas formas é no mínimo muita pretensão, para não dizer falta de desconhecimento em análise de dados.

Dentro dos seus segmentos de atuações, a Mineração de Dados e a Econometria se complementam em muitos aspectos, no qual o primeiro contribuí com a aquisição de dados e tratamento além de análises exploratórias de acordo com modelos interdisciplinares e domínios específicos, o segundo contribuí de forma muito significativa com os seus modelos baseados em matemática e forte fundamentação teoria econômica.

Para finalizar, fica essa ótima analogia postada pelo usuário Nethra sobre a diferença entre a Econometria e a Mineração de Dados em relação às suas abordagens:

It reminds me the story of two people on an island, coming together evaluating what the heck happened, having extracted themselves from a fallen plane on the sea – fortunate to have survived but wanted to figure out how to get out of this no-mans land. Fortunately, the plane crashed just after take off. One said, let us start swimming in the direction of where we came from, taking into consideration the starting direction of the plane and the time they spent on the plane. He was smart to come to some quick conclusions and wanted to keep moving. We will adjust and fine tune our swimming patterns on the way based on various clues we might get.

The second one said, well we do not know whether we will get clues on the way or get eaten away. How about we evaluate various possible alternatives including the one you proposed and select the best and then go. In the end, we need to survive, and if it takes to stay here in this island, we should do that too. The first curiously looked at the second and asked, are you hypothesizer? Let us get to work and I am swimming. Obviously he is a great swimmer and he was trained by the best swimmers in the world.

He shouted, “we did enough calculations, the shore is not far we know, come on, lets go”. The second did not believe him; some of his previous reading suggested that these waters are shark infested, but he did not know which direction it was.

One version of the story ends like this: He came back two days later on a helicopter to retrieve the hypothesizer, who was dehydrating and about to die. My son secretly tells me, dad, you do not have to finish the story in this way, just because you are a data miner. He completed the story as follows.

Two days later a helicopter came and retrieved him when he was dehydrating and about to die. The pilot was saying that the coast guard found a swimmer 10 miles further away from the shore, in the wrong direction, and about to die. He was retrieved and recovering at the shore.

My son continued, the pilot said, ‘it seems he misjudged the direction”. May be it helps to have some good idea of planetory sciences and oceanography, I guess dad, my son was telling me, with a twinkle in his eyes.

Mineração de Dados x Econometria

Modelo de Domínio + Habilidades em Tratamento de Dados = Data Miner

Este post de Brendan Tierney apresenta uma pequena introdução sobre os skills necessários para ser um Data Miner (Minerador de Dados). Em tempos em que o termo Data Scientist (Cientista de Dados) está cada vez mais popular, Brendan expõe de maneira bem categórica as habilidades envolvidas para esse novo segmento de trabalho, e mostra que grande parte das vezes um PhD em estatística não vale o trabalho de um Data Miner, devido ao fato que as habilidades envolvidas são muito amplas como delimitação de domínio e tratamento de dados.

Modelo de Domínio + Habilidades em Tratamento de Dados = Data Miner