MapReduce: A major step backwards

David J. DeWitt and Michael Stonebraker (no longer available). Online 1/11/09 at

On January 8, a Database Column reader asked for our views on new distributed database research efforts, and we’ll begin here with our views on MapReduce. This is a good time to discuss it, since the recent trade press has been filled with news of the revolution of so-called “cloud computing.” This paradigm entails harnessing large numbers of (low-end) processors working in parallel to solve a computing problem. In effect, this suggests constructing a data center by lining up a large number of “jelly beans” rather than utilizing a much smaller number of high-end servers.
For example, IBM and Google have announced plans to make a 1,000 processor cluster available to a few select universities to teach students how to program such clusters using a software tool called MapReduce [1]. Berkeley has gone so far as to plan on teaching their freshman how to program using the MapReduce framework.
As both educators and researchers, we are amazed at the hype that the MapReduce proponents have spread about how it represents a paradigm shift in the development of scalable, data-intensive applications. MapReduce may be a good idea for writing certain types of general-purpose computations, but to the database community, it is:
A giant step backward in the programming paradigm for large-scale data intensive applications
A sub-optimal implementation, in that it uses brute force instead of indexing
Not novel at all — it represents a specific implementation of well known techniques developed nearly 25 years ago
Missing most of the features that are routinely included in current DBMS
Incompatible with all of the tools DBMS users have come to depend on
First, we will briefly discuss what MapReduce is; then we will go into more detail about our five reactions listed above.

What is MapReduce?
The basic idea of MapReduce is straightforward. It consists of two programs that the user writes called map and reduce plus a framework for executing a possibly large number of instances of each program on a compute cluster.
The map program reads a set of “records” from an input file, does any desired filtering and/or transformations, and then outputs a set of records of the form (key, data). As the map program produces output records, a “split” function partitions the records into M disjoint buckets by applying a function to the key of each output record. This split function is typically a hash function, though any deterministic function will suffice. When a bucket fills, it is written to disk. The map program terminates with M output files, one for each bucket.
In general, there are multiple instances of the map program running on different nodes of a compute cluster. Each map instance is given a distinct portion of the input file by the MapReduce scheduler to process. If N nodes participate in the map phase, then there are M files on disk storage at each of N nodes, for a total of N * M files; Fi,j, 1 ≤ i ≤ N, 1 ≤ j ≤ M.
The key thing to observe is that all map instances use the same hash function. Hence, all output records with the same hash value will be in corresponding output files.
The second phase of a MapReduce job executes M instances of the reduce program, Rj, 1 ≤ j ≤ M. The input for each reduce instance Rj consists of the files Fi,j, 1 ≤ i ≤ N. Again notice that all output records from the map phase with the same hash value will be consumed by the same reduce instance — no matter which map instance produced them. After being collected by the map-reduce framework, the input records to a reduce instance are grouped on their keys (by sorting or hashing) and feed to the reduce program. Like the map program, the reduce program is an arbitrary computation in a general-purpose language. Hence, it can do anything it wants with its records. For example, it might compute some additional function over other data fields in the record. Each reduce instance can write records to an output file, which forms part of the “answer” to a MapReduce computation.
To draw an analogy to SQL, map is like the group-by clause of an aggregate query. Reduce is analogous to the aggregate function (e.g., average) that is computed over all the rows with the same group-by attribute.
We now turn to the five concerns we have with this computing paradigm.

1. MapReduce is a step backwards in database access
As a data processing paradigm, MapReduce represents a giant step backwards. The database community has learned the following three lessons from the 40 years that have unfolded since IBM first released IMS in 1968.
Schemas are good.
Separation of the schema from the application is good.
High-level access languages are good.
MapReduce has learned none of these lessons and represents a throw back to the 1960s, before modern DBMSs were invented.
The DBMS community learned the importance of schemas, whereby the fields and their data types are recorded in storage. More importantly, the run-time system of the DBMS can ensure that input records obey this schema. This is the best way to keep an application from adding “garbage” to a data set. MapReduce has no such functionality, and there are no controls to keep garbage out of its data sets. A corrupted MapReduce dataset can actually silently break all the MapReduce applications that use that dataset.
It is also crucial to separate the schema from the application program. If a programmer wants to write a new application against a data set, he or she must discover the record structure. In modern DBMSs, the schema is stored in a collection of system catalogs and can be queried (in SQL) by any user to uncover such structure. In contrast, when the schema does not exist or is buried in an application program, the programmer must discover the structure by an examination of the code. Not only is this a very tedious exercise, but also the programmer must find the source code for the application. This latter tedium is forced onto every MapReduce programmer, since there are no system catalogs recording the structure of records — if any such structure exists.
During the 1970s the DBMS community engaged in a “great debate” between the relational advocates and the Codasyl advocates. One of the key issues was whether a DBMS access program should be written:
By stating what you want – rather than presenting an algorithm for how to get it (relational view)
By presenting an algorithm for data access (Codasyl view)
The result is now ancient history, but the entire world saw the value of high-level languages and relational systems prevailed. Programs in high-level languages are easier to write, easier to modify, and easier for a new person to understand. Codasyl was rightly criticized for being “the assembly language of DBMS access.” A MapReduce programmer is analogous to a Codasyl programmer — he or she is writing in a low-level language performing low-level record manipulation. Nobody advocates returning to assembly language; similarly nobody should be forced to program in MapReduce.
MapReduce advocates might counter this argument by claiming that the datasets they are targeting have no schema. We dismiss this assertion. In extracting a key from the input data set, the map function is relying on the existence of at least one data field in each input record. The same holds for a reduce function that computes some value from the records it receives to process.
Writing MapReduce applications on top of Google’s BigTable (or Hadoop’s HBase) does not really change the situation significantly. By using a self-describing tuple format (row key, column name, {values}) different tuples within the same table can actually have different schemas. In addition, BigTable and HBase do not provide logical independence, for example with a view mechanism. Views significantly simplify keeping applications running when the logical schema changes.

2. MapReduce is a poor implementation
All modern DBMSs use hash or B-tree indexes to accelerate access to data. If one is looking for a subset of the records (e.g., those employees with a salary of 10,000 or those in the shoe department), then one can often use an index to advantage to cut down the scope of the search by one to two orders of magnitude. In addition, there is a query optimizer to decide whether to use an index or perform a brute-force sequential search.
MapReduce has no indexes and therefore has only brute force as a processing option. It will be creamed whenever an index is the better access mechanism.
One could argue that value of MapReduce is automatically providing parallel execution on a grid of computers. This feature was explored by the DBMS research community in the 1980s, and multiple prototypes were built including Gamma [2,3], Bubba [4], and Grace [5]. Commercialization of these ideas occurred in the late 1980s with systems such as Teradata.
In summary to this first point, there have been high-performance, commercial, grid-oriented SQL engines (with schemas and indexing) for the past 20 years. MapReduce does not fare well when compared with such systems.
There are also some lower-level implementation issues with MapReduce, specifically skew and data interchange.
One factor that MapReduce advocates seem to have overlooked is the issue of skew. As described in “Parallel Database System: The Future of High Performance Database Systems,” [6] skew is a huge impediment to achieving successful scale-up in parallel query systems. The problem occurs in the map phase when there is wide variance in the distribution of records with the same key. This variance, in turn, causes some reduce instances to take much longer to run than others, resulting in the execution time for the computation being the running time of the slowest reduce instance. The parallel database community has studied this problem extensively and has developed solutions that the MapReduce community might want to adopt.
There is a second serious performance problem that gets glossed over by the MapReduce proponents. Recall that each of the N map instances produces M output files — each destined for a different reduce instance. These files are written to a disk local to the computer used to run the map instance. If N is 1,000 and M is 500, the map phase produces 500,000 local files. When the reduce phase starts, each of the 500 reduce instances needs to read its 1,000 input files and must use a protocol like FTP to “pull” each of its input files from the nodes on which the map instances were run. With 100s of reduce instances running simultaneously, it is inevitable that two or more reduce instances will attempt to read their input files from the same map node simultaneously — inducing large numbers of disk seeks and slowing the effective disk transfer rate by more than a factor of 20. This is why parallel database systems do not materialize their split files and use push (to sockets) instead of pull. Since much of the excellent fault-tolerance that MapReduce obtains depends on materializing its split files, it is not clear whether the MapReduce framework could be successfully modified to use the push paradigm instead.
Given the experimental evaluations to date, we have serious doubts about how well MapReduce applications can scale. Moreover, the MapReduce implementers would do well to study the last 25 years of parallel DBMS research literature.

3. MapReduce is not novel
The MapReduce community seems to feel that they have discovered an entirely new paradigm for processing large data sets. In actuality, the techniques employed by MapReduce are more than 20 years old. The idea of partitioning a large data set into smaller partitions was first proposed in “Application of Hash to Data Base Machine and Its Architecture” [11] as the basis for a new type of join algorithm. In “Multiprocessor Hash-Based Join Algorithms,” [7], Gerber demonstrated how Kitsuregawa’s techniques could be extended to execute joins in parallel on a shared-nothing [8] cluster using a combination of partitioned tables, partitioned execution, and hash based splitting. DeWitt [2] showed how these techniques could be adopted to execute aggregates with and without group by clauses in parallel. DeWitt and Gray [6] described parallel database systems and how they process queries. Shatdal and Naughton [9] explored alternative strategies for executing aggregates in parallel.
Teradata has been selling a commercial DBMS utilizing all of these techniques for more than 20 years; exactly the techniques that the MapReduce crowd claims to have invented.
While MapReduce advocates will undoubtedly assert that being able to write MapReduce functions is what differentiates their software from a parallel SQL implementation, we would remind them that POSTGRES supported user-defined functions and user-defined aggregates in the mid 1980s. Essentially, all modern database systems have provided such functionality for quite a while, starting with the Illustra engine around 1995.

4. MapReduce is missing features
All of the following features are routinely provided by modern DBMSs, and all are missing from MapReduce:
Bulk loader — to transform input data in files into a desired format and load it into a DBMS
Indexing — as noted above
Updates — to change the data in the data base
Transactions — to support parallel update and recovery from failures during update
Integrity constraints — to help keep garbage out of the data base
Referential integrity — again, to help keep garbage out of the data base
Views — so the schema can change without having to rewrite the application program
In summary, MapReduce provides only a sliver of the functionality found in modern DBMSs.

5. MapReduce is incompatible with the DBMS tools
A modern SQL DBMS has available all of the following classes of tools:
Report writers (e.g., Crystal reports) to prepare reports for human visualization
Business intelligence tools (e.g., Business Objects or Cognos) to enable ad-hoc querying of large data warehouses
Data mining tools (e.g., Oracle Data Mining or IBM DB2 Intelligent Miner) to allow a user to discover structure in large data sets
Replication tools (e.g., Golden Gate) to allow a user to replicate data from on DBMS to another
Database design tools (e.g., Embarcadero) to assist the user in constructing a data base.
MapReduce cannot use these tools and has none of its own. Until it becomes SQL-compatible or until someone writes all of these tools, MapReduce will remain very difficult to use in an end-to-end task.

In Summary
It is exciting to see a much larger community engaged in the design and implementation of scalable query processing techniques. We, however, assert that they should not overlook the lessons of more than 40 years of database technology — in particular the many advantages that a data model, physical and logical data independence, and a declarative query language, such as SQL, bring to the design, implementation, and maintenance of application programs. Moreover, computer science communities tend to be insular and do not read the literature of other communities. We would encourage the wider community to examine the parallel DBMS literature of the last 25 years. Last, before MapReduce can measure up to modern DBMSs, there is a large collection of unmet features and required tools that must be added.
We fully understand that database systems are not without their problems. The database community recognizes that database systems are too “hard” to use and is working to solve this problem. The database community can also learn something valuable from the excellent fault-tolerance that MapReduce provides its applications. Finally we note that some database researchers are beginning to explore using the MapReduce framework as the basis for building scalable database systems. The Pig[10] project at Yahoo! Research is one such effort.

MapReduce: A major step backwards

Mineração de Dados, Inversão de valores, e o episódio Pokerstars

Algumas rápidas palavras sobre as ações da Poker Starts contra a PokerTableRatings…

Nos dias atuais, com o desenvolvimento de novas técnicas para aquisição e consolidação de dados em diversos segmentos da vida moderna; um dos pontos levantados em Data Management e da ética em relação à utilização de mineração de dados e seus limites de utilização no que diz respeito à privacidade.

A principal motivação desse ensaio é sem dúvidas as ações tomadas pela PokerStars contra a PokerTableRatings, na qual a primeira acusa a outra de utilizar métodos de Mienração de Dados e vender estatísticas sobre jogadores, seus padrões de jogo, mãos disputadas, estilo de jogo, entre outros.

Hoje está mais do que provado que a diferença entre quem ganha e quem perde em diversos segmentos que envolvam dinheiro e jogos é a assimetria da informação, na qual quase sempre um jogador/investidor que tem mais informações vence contra um adversário com menos informações sobre a atividade em questão. Quer um exemplo básico disso? Compre U$ 1000 em açoes e experimente entrar no mercado acionário sem saber a variação das ações, taxa de retorno, curva de evolução e análises técnicas e fundamentalistas e veja em quanto tempo os investidores vão demorar para ganhar o seu dinheiro. Não há anjos ou demônios há apenas uma definição de que os ganhos dos informados vêm do prejuízo dos desinformados.

Para se ter uma idéia do que está em jogo, e de como os valores relacionados à privacidade estão investidos em tempos de internet, vejamos alguns exemplos clássicos e triviais de mineração de dados que estão em corrente utilização, e que são quase invisíveis aos olhos dos leigos: a) Marketing dirigido, b) Criação de “personas” para classificação de clientes e definições de taxas e crédito, c) Vendas de dados de redes sociais para empresas de informações e localizações (ou alguém acha que os lucros e o valor de mercado do Facebook vem de anúncios e visualização de propagandas? Come on!). Vejam que são 3 exemplos simples, mas que tem um grau de alcance muito maior do que jogos de poker online.

Está mais do que claro que a privacidade digital é um sonho muito distante, e que provavelmente nesse exato momento tem pessoas trabalhando para buscar mais e mais informações específicas de cada um dos usuários da rede, estes que por sua vez estão quase em estado de torpor mental devido a avalanche de entretenimento por trás dos reais interesses das empresas.

A PokerStarts se pronunciou que irá proibir a prática, e blah, blah, blah; porém, é pouco provável que irá resultar em algo de fato (já existem indícios que a PTR já esteja operando em outros servidores) e mais: esse tipo de atitude irá reforçar somente a questão que o Poker Online não está imune ao Data Gathering.

As coisas se inverteram… As mesmas pessoas que não ligam em deixar os seus rastros e dados no Facebook; agoram vêm com a história que é errado Data Gathering e estatísticas sobre sites de Poker… Come on!

Declaração da PokerStars – Retirado de PokerStrategy

Visão geral

“Há alguns anos nós da PokerStars temos nos preocupado com os efeitos que sites de datamining, como o PokerTableRatings, podem ter sobre o bom funcionamento do ecossistema do poker online. Tais sites oferecem grandes base de dados, que permitem a um jogador conhecer um grande número de informações sobre um adversário específico na primeira vez que eles jogam um pote juntos. Temos muitas preocupações sobre o datamining:

• “Ele permite que um jogador de poker tenha informações e dados sobre oponentes contra quem ele nunca jogou. Mesmo reconhecendo as diferenças entre o poker online e ao vivo, nós acreditamos que isso contraria o espírito do jogo.

• “Jogadores novos e/ou fracos muitas vezes nem sequer sabem que eles estão sentados na mira de seus oponentes. Assim, os jogadores mais vulneráveis não tem consciência de que estão sendo alvejados.

• “Uma pequena minoria (mas notável) de jogadores diz rotineiramente aos jogadores fracos em suas mesas o quanto eles são ruins, baseados nestas estatísticas datamined. Isso cria um ambiente desagradável e é mau para os jogadores, mau para o jogo e mau para a comunidade. Sendo uma empresa líder na indústria, temos a responsabilidade de impedir este tipo de abuso.

“Além disso, não somos os únicos que veem dessa forma. Muitos profissionais da indústria do poker e (mais importante) a maioria dos jogadores da comunidade vê tal datamining como uma ameaça em potencial para a existência do poker online no mundo.”

As medidas da PokerStars para impedir o datamining

“A PokerStars sempre afirmou que se um jogador deseja compartilhar seus resultados dos jogos online em público, é uma questão entre ele e qualquer site que fornece tais dados. Mas se um jogador não deseja compartilhar estes resultados em público, então ele não precisa. Nós sistematizamos isso em nossos Termos de Serviço com relação aos programas proibidos.”

“Temos adotado uma estratégia em duas frentes contra o datamining de sites como o PTR.

“Primeiro, temos investido em tecnologia para prevenir que os sites façam datamining das nossas mãos. Sem entrar em detalhes, temos modificado o software várias vezes para tornar mais difícil que terceiros gravem os históricos de mãos das nossas mesas. Todas as vezes que fizemos isso, o PTR respondeu modificando seu software para neutralizar a nossa mudança. Podemos tomar medidas drásticas para vencer essa “corrida armamentista”, mas tais medidas poderiam prejudicar a experiência de jogo dos nossos jogadores legítimos. Obviamente preferimos não fazer isso.

“Nossa segunda frente tem sido através de medidas legais. Temos contactado repetidas vezes sites como o PTR para solicitar que parem de fornecer dados sobre os nossos jogadores, a menos que os jogadores optem por isso. O PTR nunca respondeu a esses pedidos. Houve algumas atualizações nas últimas 24 horas, das quais vamos falar até o fim deste documento.”

“A PokerStars é a maior empresa do mundo no poker online. Temos responsabilidades com nós mesmos, com a indústria e, mais importante, com a comunidade de jogadores de poker online para cuidar de todo o ecossistema do poker online. Fizemos todo o esforço para dar a chance ao PTR de “obedecer à lei do jogo”; eles nos ignoraram, e em todos os casos reagiram rápido às nossas tentativas de defesa. Mas estamos empenhados em fornecer aos nossos jogadores a privacidade que eles merecem e à indústria do poker online a proteção que ela necessita.

“No dia 18 de abril de 2012, o ISP (provedor de serviços de Internet) que hospeda o Poker Table Ratings (“PTR”) concordou com a “ordem de cessação” dada pela PokerStars e parou de fornecer serviços para o PTR. O ISP concordou que o PTR estava infringindo os direitos de propriedade intelectual da PokerStars. Pouco tempo depois, o PTR ressurgiu com um ISP diferente. No entanto, na noite de 18 de abril o PTR publicou um anúncio em seu blog que “[Nós] vamos cumprir integralmente a ordem de cessação dada pela PokerStars, embora não estejamos convencidos que sejamos um desserviço para a comunidade do poker online.”

“Nossa equipe jurídica está analisando a declaração do PTR e irá decidir como proceder. Nós vamos, é claro, continuar informando a mídia do poker e a comunidade de jogadores sobre este assunto.”

Mineração de Dados, Inversão de valores, e o episódio Pokerstars

Projeto Wiki de Mineração de Dados – The Data Mine

Um projeto bastante interessante para comunidade em Mineração de Dados é o The Data Mine que é um projeto colaborativo no qual constam diversas informações sobre referências bibliográficas, citações, e diversas informações introdutórias para quem deseja saber mais sobre Mineração de Dados.

The Data Mine Site

Projeto Wiki de Mineração de Dados – The Data Mine

Mineração de Dados aplicado à Neurociência Preditiva

Um interessante artigo recém publicado pela Ecole Polytechnique Fédérale de Lausanne no PLoS One de autoria de Georges Khazen, Sean Hill, Felix Schürmann e Henry Markram apresenta um interessante avanço na utilização de mineração de dados para previsão de padrões de estruturas cerebrais. Através dessas previsões é possível chegar a um mapeamento da estrutura anatômica e propriedades elétricas dos tipos de neurônios, os quais os autores podem chegar aos resultados futuros de extração de regras para padrões genéticos e dessa forma prever as características cerebrais do indivíduo.

Esta pesquisa é um importante avanço em relação ao que é praticado e estudado em mineração de dados pois, com a utilização de ‘strats’ e a posteriori extração/descoberta dessas regras, parte do paradigma de estudos relacionados a morfologia cerebral tem sua complexidade reduzida; no qual através de ‘pedaços de dados’ os autores conseguem predizer o complemento dos canais iônicos os quais são presentes nos neurônios e através disso consegue-se saber quais genes que se manifestam de acordo com o comportamento elétrico do neurônio.

Combinatorial Expression Rules of Ion Channel Genes in Juvenile Rat (Rattus norvegicus) Neocortical Neurons

PLoS ONE_ Combinatorial Expression Rules of Ion Channel Genes in Juvenile Rat (Rattus norvegicus) Neocortical Neurons

Mineração de Dados aplicado à Neurociência Preditiva

Poker Mining

O Poker é em sua natureza um jogo de pura estratégia; entretanto, muito mais além das técnicas e truques durante uma partida, o Poker é também um jogo no qual o reconhecimento de padrões pode ser fator determinante para vitória. Artifícios como óculos escuros, os lábios serrando em um momento ruim do jogo, as pupilas dilatadas quando se está com uma mão boa, os movimentos do corpo em relação ao “River” quando se está blefando são apenas algumas das características apresentadas pelos jogadores.

Contudo quando se trata de partidas online – as quais não há a interface humana na qual pode-se encontrar padrões físicos/comportamentais durante a partida – a mineração de dados entra na forma em que jogadores mais experientes realizam todo o mapeamento de seus adversários (Características das mãos que blefaram, comportamentos de apostas quando se está com uma mão boa, tipos de mãos na quais costumam arriscar mais, entre outros), mesmo estando em uma região geográfica distante.

Esse post do One Poker Solution mostra um overview de como é feito o trabalho de mineração de dados em partidas de poker online, e como os jogadores estudam até a quantidade de 30 mesas de forma automática e forma uma base de dados para que os jogadores possam inferir os padrões dos jogadores de acordo com as cartas que possuem e as cartas do River. Para quem quiser realizar um trabalho de aplicação prática é um ótimo domínio para começar.

Poker Mining

Algumas provocações sobre o post do Pós Graduando

Parafraseando o colega do Bolha de Brasília, vou fazer um pequeno prólogo sobre a situação da Pós-Graduação no Brasil e os motivos para se objetivar a área acadêmica.

Se alguém quisesse um conselho sobre qual direção dar em sua carreira, seria muito enfático: Faça um mestrado de qualidade o mais rápido possível, pois além de te dar a possibilidade de ir além no aspecto de pesquisa que melhora a vida das pessoas e amplifica o debate técnico-cultural em sua comunidade, o futuro irá lhe reservar ótimas vagas devido a diferenciação de sua formação.

Alguns devem pensar que sou louco, um ermitão ou algo do gênero. Mas não.

A possibilidade não só na área de pesquisa, mas também na área profissional que o mestrado possibilita um amplo leque de possibilidades e atuações. A pessoa que se submete a esse tipo de programa, não somente busca a titulação, como também desenvolve a competência de “aprender a aprender”. Em tempos em que grande parte da nossa mão de obra “Qualificada” são pessoas que fazem parte da triste estatística de analfabetismo funcional, é mais do que necessário que tenha alguém para “carregar o piano” quando falamos de inovação e pesquisa séria. Para quem assistiu Tempos Modernos, e acompanha a atual situação; o apertador de parafusos de ontem é o apertador do mouse do computador de hoje.

Muitos acreditam que o Mestrado de fato não contribuí para melhoria da vida das pessoas de uma maneira mais prática; mas isso não deve partir de uma sala de aula; mas sim das pessoas que ganharam o seu voto (sim, aqueles mesmos que você colocou o número e apertou confirma). Todos acham que só porque uma pessoa tem um diploma de mestre ela automaticamente é dotada de amplos poderes para resolver todos os problemas da sociedade na qual ela está inserida.

Mas mais do que falar de maneira desestruturada, vejam porque eu tenho esse pensamento:

1 – Fazer a Diferença: Esse é o primeiro lema para quem deseja entrar em um programa desse gênero. Se for para estudar por estudar, sem que haja nenhum tipo de contribuição; acho melhor passar as noites (e madrugadas) em atividades bem mais agradáveis, como por exemplo, sinuca no bar com os amigos. Vejam, não é porque disse agradável, que necessariamente deixei implícito que seria melhor. Digo no sentido de fazer a diferença, é contribuir com o corpo de conhecimento que molda a cultura da sociedade na qual o elemento está inserido, bem como doar (dedicar) parte do seu tempo (e alguns casos até a vida) para soluções, métodos que de uma maneira ou de outra acabam ajudando no aspecto geral a vida das pessoas. Se não acredita, dá uma olhadinha nessa dissertação de mestrado e veja se ela não te ajuda nos dias de hoje

2 – Aplicar conhecimento e contribuir com a sua cultura acadêmica: É autoexplicativo. Em minha monografia estudei aspectos relacionados à aplicação de Mineração de Dados na esfera pública; e de certa forma apliquei parte dos meus conhecimentos de análise de dados aplicada à nossa realidade; e que se implementado poderia mudar todo o paradigma da forma na qual governamos as nossas cidades/estados/país, ajudando milhões de pessoas Brasil a for a. Até o final do ano vou imprimir 26 cópias para cada um dos governadores e pretendo ainda conversar com o Jorge Hage Sobrinho, Ministro de Estado Chefe da Controladoria-Geral da União sobre o meu trabalho. E não tem maior satisfação em doar parte do tempo para o ganho em rede.

3- Fazer algo substancial da vida: Citando o Dalai Lama “Dividir conhecimento, é alcançar a imortalidade”. Nesse caso, vou citar apenas a profissão de Mestre na questão de ensino acadêmico. Hoje, mais do que nunca temos uma sociedade que gira em torno da informação; e o papel do professor hoje é muito mais substancial do que anos atrás. Antigamente o professor ensinava normas, conceitos; hoje ele é a pessoa que é responsável por desenvolver competências; habilidades essas que só melhoram a qualidade de vida das pessoas, que vão desde pretensões de mudança de emprego, até atingir uma posição de vida satisfatória através dos estudos e dos ensinamentos do professor.

 Mas se não acredita em mim, acredite nesses camaradas abaixo:

 1 – Faculdade como commodity: Não vou entrar em discussões sobre aspectos socioeconômicos sobre a inclusão no meio universitário, porque isso além de ser uma atitude rasteira; soa até como leviana vindo de alguém que tem o mesmo perfil dessa nova sociedade; porém que obteve seus fins por outros meios.

 Feitas as devidas ressalvas…

 Pessoal, não se iludam: Sabe aquele sonho que muitos veem nos filmes de Holywood no qual o cara termina a faculdade, e já vai para aquele escritório de advocacia, no qual todos os sócios são uns caras velhos e chatos e que você chega como uma estrela, e que em menos de 6 meses já está com 2 aumentos de salários e mandando e todo mundo? Esqueçam isso.

 O mundo corporativo gira dentro de uma estrutura de competências muito complexa, e ainda tem o famoso e glorioso NETWORKING no qual não importa o que VOCÊ SABE, mas sim QUEM VOCẼ CONHECE. Em um mundo tão conectado, as pessoas se falam e dentro do propósito da economia capitalista, na qual há o livre mercado de contratação de recursos humanos (ou seja, não há reserva de mercado) nada mais justo que as empresas contratem pessoas que elas têm mais confiança e afinidade do que pessoas competentes de fato. E isso pode levar muita gente que está pagando em parcelas a sua faculdade a um tipo de frustação que jamais sonharam.

 E mais… Não é preciso ter lido a obra do Adam Smith para saber que com o aumento da oferta (pessoas com o diploma de graduação) os preços (leia: salários) diminuem (ou seja, esqueça aquele salário inicial de R$ 7000 que te falaram na faculdade (ao menos que você trabalhe no Bahamas pra quitar as parcelas do seu curso, e isso é outra história)). E devido a isso muitos que estão nessa situação, podem se pegar em um dia ganhando 3x menos que o cara que tá todo sujo de cimento fazendo uma obra na sua casa. Recado dado.

 2 – Marqueteiros de Pós-Graduação de IES Particulares: Esses sempre terão aquele curso de “Ultimate Financial Certification in Business” ou os grandes “Intensive program of Administration” ou o “Curso de Curta Duração em Liderança”. Pessoal, nada contra; mas são formas mais doloridas de se perder dinheiro. Instrutores desqualificados, avalanches de ppt’s, super sintetização, falta de foco são só alguns dos aperitivos pra quem acredita que esses tipos de cursos vão de fato impulsionar a carreira de alguém. No mais, vão representar R$ 200 de aumento e olhe lá; em geral representam pouco em questão de agregação de valor intelectual. Há cursos sérios? Sim, e muitos. Têm ainda instituições sérias, só garimpar um pouco.

 3 – IES particulares que NÃO têm Strictu Sensu: Em 2011 quando procurei um curso na minha área em Mineração de Dados fui até uma importante escola em São Paulo, e me ofertaram o curso por módicos R$ 41.000 (isso mesmo, quarenta e um mil reais). Com esse dinheiro investido no mesmo período do curso eu teria uma rentabilidade de 7% se investisse em Títulos Públicos, e pensando em termos de mercado (colocação profissional dentro da área de atuação) levando em conta os salários pagos pelo mercado eu teria o retorno em…7 anos? Havia algo de errado nessa história. Perguntei por que o curso de Mineração de Dados (que não era reconhecido ainda) estava mais caro do que um curso em… Stanford, mas até hoje não tive retorno.

 O ponto é: Há uma indústria por trás dessa pseudo-ascensão social através da educação. Há toda uma estrutura de crédito estudantil e facilidades, na qual você contraiu empréstimos a juros pornográficos e depois de formado ou você cai nos órgãos de proteção ao crédito (ceifando as possibilidades de recrutamento) ou você vira escravo do seu financiamento. A escolha é sua.

 4 – Especialistas de produtos / Empresas de Softwares e Certificações: Esses são sujeitos confiáveis. Sempre terão uma resposta na ponta da língua: Empregabilidade, acesso rápido ao mercado de trabalho, aplicações práticas, trabalhar em casos reais, resolução de problemas. Só esqueceu-se de avisar uma coisa pra esse pessoal: “E se a tecnologia mudar?”. Como eu sou da área de TI me sinto até confortável em dissertar sobre esse assunto. Hoje os especialistas de produto tem um nicho de mercado bem estabelecido devido a estrutura de suporte que as empresas montam para ganhar após o deployment de seus produtos (Carl Shapiro e Hal Varian exploram esse aprisionamento em Economia da Informação). Ou seja, os produtos tem o design para dar problemas; e quem melhor do que os especialistas de produtos para solucionar problemas?

Acontece que por mais que esse tipo de indústria pague bem (se você acha que passar 4 anos no banco da faculdade pra ganhar R$ 2000 como analista, tudo bem), há um dinamismo muito grande, o que exige um desdobramento quase que heroico por parte das pessoas que trabalham nesse tipo de tarefa (suporte). Conheço profissionais que estudam/trabalham mais de 18h/dia só falando de problemas; e não colocam nenhum tipo de skill intelectual no seu trabalho; apenas o ferramental.

E mais uma coisa, se você acha que um dia vai chegar a um cargo de liderança, gestão e direção vindo desse segmento; com diria um importante professor meu “Tolinho”; vai ser mais fácil você ficar amplamente desmotivado quando a sua empresa anunciar o novo gerente, um cara novinho que não tem nenhuma ideia do que você está fazendo, mas tem algo relacionado à gestão que você não tem; ou não conseguiu desenvolver ao longo da sua carreira técnica.

 Não acredita em mim?, veja o que o Paul Randal instrutor do Microsoft Certified Master, um dos maiores especialistas Microsoft SQL Server fala sobre as certificações… Microsoft.

 5 – Empresas, empregadores e afins: Esses sim são plenamente confiáveis. Abreviando o que eu coloquei no item 1) é a lógica do mercado. Muitas empresas veem que os empregados estão estudando, pensam na lógica macabra que os mesmos “estão pensando menos na empresa” ou que querem sair. São poucas as empresas que apoiam os estudos, e veem isso como um investimento do empregado para melhor desenvolver as suas competências. Infelizmente, está cheio disso por aí. Então, quando você chegar ao seu patrão falando que quer fazer um mestrado ele te recomendar cursinhos de 36/40hs em matemática financeira, SQL Server e que ninguém vai pra frente com isso acho que está na hora de mudar de emprego.

 Eu não vou me estender (mais) no assunto, porque acho que são motivos suficientes ao menos para uma reflexão. That’s all folks!!!

PS: Post escrito em 40 min folks, take it easy!

PS 2: Alguns links interessantes.


Algumas provocações sobre o post do Pós Graduando

Livro Discovering Knowledge in Data: An Introduction to Data Mining

É sempre difícil comentar sobre um livro o qual se vê claramente que é um dos textbooks que podem receber a denominação de clássico. O livro do Dr. Daniel Larose Discovering Knowledge in Data: An introduction to Data Mining ( ISBN-10: 0471666572 | ISBN-13: 978-0471666578) é um ótimo livro para quem busca conhecer de forma introdutória a Mineração de Dados; bem como quer fugir do lugar comum no qual dezenas de livros sobre o assunto levam.

O autor inicia o livro realizando uma série de overviews bastante pertinentes em relação a elucidação das tarefas de mineração de dados, até mesmo apresentando o CRISP-DM através de casos de estudos.

Após isso, o livro entra na questão do Pre-processamento de dados, e explica de forma bem concisa o conceito de Análise Exploratória de Dados (Exploratory Data Analysis – EDA) .

Nos capítulos subsequentes o autor desvenda através de abordagens conceituais e práticas as Abordagens Estatísticas para Estimação e Predição, Algoritmo k-Nearest Neighbor , Árvores de Decisão, Redes Neurais, Técnicas de Agrupamento e Regras de Associação.

O mais valioso no livro sem sombra de dúvidas é o capitulo 11-Model Evaluation Techniques (Modelo de Técnicas de Avaliação) no qual mostra alguns dos atributos de um projeto de Mineração de Dados mais negligenciados que são Índice de Erros, Falsos Positivos e Falsos Negativos; que através de exemplos práticos em capitulos anteriores mostram uma forma prática de se avaliar os modelos de mineração.

Este livro é para: Cursos Introdutórios de Mineração de Dados, Interessados em Análise Hands-On em Mineração de Dados, Estudantes de Banco de Dados, Entusiastas de Mineração de Dados, Cursos de Graduação sobre a Disciplina de Banco de Dados/Mineração de Dados.

Este livro NÃO é para: Desenvolvimento de projetos complexos de Mineração de Dados, Aprendizado de Técnicas Avançadas em Mineração de Dados, quem não gosta/entende representações matemáticas.

Pontos Positivos: Facilidade de Leitura, Roteiro de assuntos abordados pelo autor, explicações teóricas sem prolixidade, abordagem prática.

Pontos Negativos: Abordagem matemática do autor em determinadas sessões que pode confundir o leitor menos habituado ao tipo de leitura, Tamanho (pouco mais de 220 páginas).

Livro Discovering Knowledge in Data: An Introduction to Data Mining

Referência do Blog/Site Mineração de Dados no Kdnuggets

O Kdnuggets é o maior portal agregador de noticias, empregos, e discussões sobre Mineração de Dados da internet, sendo referência quase que absoluta em relação ao assunto; e para a nossa alegria o site, que tem menos de 100 posts já foi referenciado como um dos mais influentes em Mineração de Dados em língua portuguesa. Desde já obrigado a todos por essa conquista.

Referência do Blog/Site Mineração de Dados no Kdnuggets

A inquestionável necessidade de especialistas de domínio

O artigo do  provavelmente é um dos melhores artigos sobre a questão da Mineração de Dados e a sua aplicação prática; e a suas implicações seja no aspecto técnico, quando no aspecto conceitual.

O motivo do post saiu através de uma análise do debate promovido pela O’Reilly, no qual ‘levantaram a bola’ sobre a necessidade de especialistas de domínio em projetos de mineração de dados. Hoje há diversas competições de mineração de dados, ferramentas, técnicas disponíveis; porém, ainda faltam analistas que consigam mapear o domínio em mineração de dados e conduzir um projeto desde o Business Understanding até o Deployment final.

Um trecho interessante sobre a análise black-box está descrita abaixo:

There’s a limit to the value you can derive from correct but inexplicable results. (Whatever else one may say about the Target case, it looks like they made sure they understood the results.) It takes a subject matter expert to make the leap from correct results to understood results. In an email, Pete Warden said:

“My biggest worry is that we’re making important decisions based on black-box algorithms that may have hidden and problematic biases. If we’re deciding who to give a mortgage based on machine learning, and the system consistently turns down black people, how do we even notice it, let alone fix it, unless we understand what the rules are? A real-world case is trading systems. If you have a mass of tangled and inexplicable logic driving trades, how do you assign blame when something like the Flash Crashhappens?

“For decades, we’ve had computer systems we don’t understand making decisions for us, but at least when something went wrong we could go in afterward and figure out what the causes were. More and more, we’re going to be left shrugging our shoulders when someone asks us for an explanation.”

Veja que não é um raciocínio espúrio, mas sim uma preocupação real e que deve ser olhada com bastante atenção, e é por isso que muitas das vezes há de se bater na tecla sobre combater a análise black-box que muitos vendedores de software e pacotes estatísticos oferecem.

Quando se fala de avaliação, e o impacto econômico (só para ficar nesses aspecto particular) veja um caso bem interessante de associação em bases de dados reais:

Another realistic scenario: Target recently used purchase histories to target pregnant women with ads for baby-related products, with surprising success. I won’t rehash that story. From that starting point, you can go a lot further. Pregnancies frequently lead to new car purchases. New car purchases lead to new insurance premiums, and I expect data will show that women with babies are safer drivers. At each step, you’re compounding data with more data. It would certainly be nice to know you understood what was happening at each step of the way before offering a teenage driver a low insurance premium just because she thought a large black handbag (that happened to be appropriate for storing diapers) looked cool.

Enfim, vale a pena assistir o vídeo pois há algumas considerações bem interessantes e pertinentes.

A inquestionável necessidade de especialistas de domínio


Para quem leu o excelente livro Nerds On the Wall Street; esse ‘paper’ trata de um caso clássicode  que a premissa muito popular em um passado recente que a mineração de dados era ‘torturar os dados até que eles gritem’  está mais que fora de contexto. Esse paper apresenta a correlação entre o índice da S&P500 com a produção de manteiga em… Bangladesh. Para ver a entrevista com o autor do livro, clique aqui.



Erros em Mineração de Dados – Predição de Terremotos Através de Manchas Solares

Um importante artigo de Cristian Mesiano aborda um problema muito recorrente na literatura de Mineração de Dados que é a não observância de aspectos básicos em relação aos dados a serem minerados; e valores de julgamento sobre a base a ser minerada. Ele elenca 4 aspectos que levam  um projeto de mineração de dados a falha que são 1) Confiança em demasia na base de dados, 2) Formulação da amostra de dados para análise, 3) Dependência dos resultados do Trainning Set, e 4) Explicação de fenômenos na base de dados através de algumas regressões. 

O post é bem curto, mas vale a pena a discussão e a reflexão.

Erros em Mineração de Dados – Predição de Terremotos Através de Manchas Solares

Administração Obama libera dados de agências governamentais para Mineração de Dados

Um dos acertos da administração Obama está no fato de a Casa Branca abrir os dados governamentais de algumas agências para pesquisadores levantarem dados pertinentes para análise do Governo para auxiliar na tomada de decisões como defesa, saúde, meio ambiente entre outros. Sem dúvidas é um grande passo para a consolidação do conceito de e-Government; o qual quebra diversos paradigmas em ao invés de usar métodos pouco produtivos (como análises conjecturais entre administradores e afins) de análise; através do mapeamento de um domínio, realizar toda a parte de análise sobre dados concretos e atualizados.

Big Data Press Release

Big Data Fact Sheet

Administração Obama libera dados de agências governamentais para Mineração de Dados

Everything You Wanted to Know About Data Mining but Were Afraid to Ask

Um artigo da Atlantic sobre Mineração de Dados mostra que esse segmento computacional está aos poucos virando o “Hot Topic” do momento. Se por um lado isso é bom pela divulgação e difusão da mineração de dados; por outro lado pode passar a idéia que a Mineração de Dados é algo trivial como BI por exemplo. De resto, mais do mesmo.

Everything You Wanted to Know About Data Mining but Were Afraid to Ask

Crime Analyst Blog

Esse blog do Scott Dickson apresenta diversos posts (pequenos por sinal) sobre as especificidades do trabalho de analista criminal. O blog tem diversos artigos sobre esse tipo de assunto, e para quem desejar trabalhar com Mineração de Dados aplicando esse tipo de domínio. 

Crime Analyst Blog

Mineração de Dados Excel 2007/ SQL Server 2008 – Análise de Cenário

Por mais que eu seja um crítico ferrenho da Microsoft quando se trata de suas ferramentas de Mineração de Dados, bem como alguns de seus evangelistas (Escrevi um post aqui sobre isso), há de se reconhecer que para o público de que toma decisões de um nível mais alto sem a necessidade de ter um rigor técnico e mais apurado a ferramenta da Microsoft, em especial o seus plugins para Excel; podem auxiliar na análise de pequenas bases de dados (não mais que 1Mi de registros) o que pode ser bem proveitoso para pequenas empresas; no qual qualquer informação pode ser um diferencial sobre a concorrência.

Esse vídeo foi gravado pelo Mark Tabladillo, que é um dos maiores especialistas em Mineração de Dados na plataforma Microsoft e tras uma análise bem curta sobre uma base de dados utilizando a opção de Scenario Analysis que realiza algumas correlações entre os itens da base de dados.

Mineração de Dados Excel 2007/ SQL Server 2008 – Análise de Cenário

The CRISP-DM Model: The New Blueprint for Data Mining

O Modelo CRISP-DM  (Acrônimo para CRoss-Industry Standard Process for Data Mining, ou Padrões de Processos Inter-Indústrias em Mineração de Dados ) é um framework de boas práticas para projetos de Mineração de Dados; que foi desenvolvido em meados dos anos dos anos 90 por cerca de 200 profissionais que já estavam trabalhando em projetos de mineração e viram que o mercado estava carente de idéias específicas para compreender todos as especificidades de projetos de Mineração de Dados.

Esse artigo, retrata um overview do framework como um todo; e tem como característica principal realizar uma ruptura do projeto de Mineração com os projetos de software em geral, que é muito benéfica quando tratamos de projetos de dados. Bill Inmon em seu livro Building the Datawarehouse especifica que o projeto de dados é muito mais específico e menos tolerante a falhas do que um projeto de software; e que o mesmo tem muitas especificações; e o CRISP-DM leva a risca esse tipo de tratamento com informação, mesmo sem citar diretamente o pai do CIF. Em tempos de ‘gerentes de projetos’ que nunca escreveram uma query ou uma linha de código isso é bem relevante de se dizer; e vale a pena a reflexão de que “será MESMO que o BABOK, PMI, ou outras siglas levam isso em consideração?”. Creio que não.

Em geral o modelo é bem construído e tem uma vantagem de ser de fácil adaptação em relação ao domínio de dados o qual o projeto de mineração de dados é proposto.

The CRISP-DM Model – A Blueprint

The CRISP-DM Model: The New Blueprint for Data Mining