Afinal, quanto ganha um cientista de dados?

Foi publicado pela O'Reilly um relatório sobre o salário e ferramentas mais utilizadas pelos cientistas de dados. A pesquisa aconteceu entre 2012 e 2013 durante o Strata Conference, que é uma conferência realizada pela própria O'Reilly sobre Data Science. No total, pessoas de 33 países responderam a pesquisa, contemplando todos os setores profissionais, desde o governamental até o setor privado. O objetivo da pesquisa era entender melhor quais ferramentas os cientistas de dados utilizam e como as mesmas se correlacionam com o salário recebido e apesar de nem todos afirmarem trabalhar diretamente com análise de dados, quase todos afirmaram estar exposto a este ambiente. Alguns resultados seguem abaixo:
  • A ferramenta mais utilizada de longe foi SQL. No total, 71% dos respondentes afirmaram utilizar a ferramenta de banco de dados.
  • A segunda e terceira ferramentas mais utilizadas foram respectivamente R e Python. O agradável ambiente estatístico R ficou com 43% do total e a verdadeira linguagem serve-para-tudo Python ficou com 40% do total. 
  • Os salários são correlacionados positivamente com o número de ferramentas utilizadas. Enquanto que os indivíduos que afirmaram usar até 10 ferramentas possuem um salário anual mediano de $100.000, os que afirmaram utilizar mais de 15 ferramentas possuem um salário anual mediano de $130.000.
  • Foram encontrados 2 clusters de ferramentas utilizadas. Um composto de ferramentas open source (R, Python, Hadoop e mais algumas ferramentas de machine learning) e outro composto de ferramentas comerciais (Excel, SAS, Tableau e Oracle RDB).
  • Indivíduos que afirmaram utilizar mais ferramentas do grupo open source possuem um salário maior que os indíviduos que afirmaram utilizar mais ferramentas do grupo comercial.
  • Ferramentas open source (como Python e R) são tão importantes quanto (ou até mais) que ferramentas tradicionais como SAS e Excel.
  •  A utilização de ferramentas feitas com foco no big data como por exemplo MapR, Cassandra, Hive, MongoDB, Apache Hadoop e Cloudera também está correlacionada com salários maiores. 

apply, lapply, sapply, tapply, mapply.. Como é que é mesmo?

Acredito que a esta altura do campeonato todos já devem se questionar sobre a performance do R. Existe um Carma que é carregado de que não é eficiente em termos de gerenciamento de memória e velocidade. Tudo bem, temos que cofessar que estes itens não podem ser classificados como os pontos fortes da linguagem, porém nem tudo está perdido e dependendo da situação, contorná-la pode ser mais simples do que parece, em especial quando o assunto é velocidade.

Escrever loops da forma tradicional pode ser uma verdadeira tortura, tanto para o usuário quanto para o computador. Se você já tentou aninhar mais de 3 for's sabe do que estou falando. Claro que não existe uma ferramenta mágica que vai fazer com que seu loop passe de 2 horas paras 5 segundos, porém com as metafunções da família apply muita coisa pode ser melhorada. As funções da família apply são um conjunto muito poderoso de funções que sob certas condições permitem a aplicação de outras funções em objetos do R .  

Entendendo as diferentes mensagens de aviso no R

Comumente ao utilizar funções escritas por terceiros no ambiente R, algumas mensagens de aviso podem ser exibidas com o objetivo de alertar sobre algum acontecimento interno daquela função. Suponha que você tenha criado uma função que calcula o logaritmo de um número em uma determinada base. Caso o usuário passe algum número que seja menor que 0, algo de estranho tem de acontecer, afinal não existe o logaritmo de números negativos e estar atento a estas mensagens pode ser uma importante tarefa de alerta na utilização do R no dia a dia. Aqui vamos explorar essas mensagens tentando mostrar algumas dicas para tentar solucionar o problema de quando alguma mensagem for exibida. Os diferentes tipos de mensagem exibidos pelo R são: message. warning, error e condition.

message: Este tipo de mensagem é uma notificação produzida pela função message e não é considerado nem um warning nem um error. Tem o objetivo de servir apenas como mensagens de diagnóstico e sendo assim, a execução da função continua normalmente.

warning: Uma mensagem de notificação onde algo aconteceu de forma inesperada, porém não afetou a execução da função. Geralmente acontece pelo fato da função esperar uma coisa e receber outra coisa. Não é exatamente um problema, porém resultados inesperados podem acontecer. São gerados pela função warning.

error: O erro é uma mensagem que é exibida na ocorrência de um problema crítico. A execução da função é parada automaticamente e uma mensagem de erro é exibida. São gerados pela função stop.

condition: São mecanismos que permitem tratar condições não usuais. A criação de condições é feita pelo próprio usuário e tem o objetivo de lidar com as situações não esperadas que podem acontecer. São gerados pela função TryCatch.

Caso esteja tentando utilizar uma função - ou criando a sua própria - e ela estiver dando erros, algumas dicas podem ajudar a solucionar o problema. Um dos problemas mais comuns é chamar a função com argumentos que não são compatíveis com a função. Se você está utilizando uma função que recebe como argumentos uma lista e um número, então não adianta passar nada que não seja uma lista e um número que a função não será executada com sucesso, caso não tenha definido isto anteriormente. Outra dica é observar o resultado real e o esperado e refletir por quais razões eles foram diferentes. E por último é ver se você realmente é capaz de reproduzir o problema, pois algumas vezes a falha está justamente no real entendimento do problema. 

Ferramentas para criação de tabelas LaTex a partir do R

Sair do ambiente R para exportar resultados e tabelas nem sempre é uma tarefa fácil, em especial quando deseja-se exportar estes resultados para o ambiente LaTex. O motivo é simples de ser entendido, afinal nem nem sempre os resultados possuem uma estrutura simples e como acontece, as vezes este é demasiadamente grande. Neste post, vamos discutir algumas soluções para tornar esta tarefa mais simples e é claro, mais divertida. Além disso, vamos ilustrar exemplos da utilização de tais pacotes.

Enviando mensagens automáticas para o seu amigo oculto

O mês de Dezembro passou, e como de costume aconteceram as tão esperadas festas. Comidas, bebidas, confraternizações e é claro, não poderia faltar a tão esperada brincadeira de amigo oculto. Comumente já é difícil decidir uma data que consiga agradar a todos, então reunir todos apenas para a realização do sorteio é praticamente impossível. Neste contexto surgiram algumas possibilidade para evitar este problema, que nada mais é que fazer a realização do sorteio em algum ambiente online, cada um dos participantes se cadastra em um site, que realiza o sorteio e envia os resultados por e-mail. 

Simples assim.

Este ano o site escolhido para realizar tal façanha foi o amigosecreto.com.br . O site dispões de algumas ferramentas bem interessantes, como por exemplo a possibilidade de enviar mensagens de forma anônima. E entre essas possibilidades você pode enviar uma mensagem para quem te tirou, para quem você tirou ou simplesmente qualquer um do grupo. Feito o sorteio, lá estava o resultado. Tirei uma pessoa bem próxima de mim.