Tendo decidido melhorar minhas habilidades no curto espaço de tempo que sobra entre a vida profissional e a vida pessoal, comecei a pesquisar as opções disponíveis sobre ciência de dados. Ficou claro rapidamente que deveria escolher uma linguagem de programação para aprender e aplicar as técnicas e a escolha recaíu em R ou Python, para mim ambas as opções são boas por serem gratuitas e de código aberto e com excelente reputação, além de cada uma ter sua própria comunidade de usuários ativos, e muito ativos!
Não me lembro onde vi essa dica, mas para mim foi o fator central da minha decisão e algo que vale a pena compartilhar:
Se você for um profissional que utiliza de ferramentas de análise no âmbito empresarial, e com experiência em Microsoft Excel, a minha dica é: selecione R para iniciar sua jornada na ciência de dados. R é uma linguagem de programação funcional orientada a objeto de thread único e, uma vez que você entende os comandos principais, é intuitivo usar. Sendo assim, é bastante previsível, o que tem sido ótimo para mim como um profissional. R tem um excelente pacote gráfico que complementa a ideia de analisar dados ou data wrangling, que muitas vezes, programadores em python recorrem ao ggplot2 para gerar visualizações bonitas, ou usar o tema ggplot2 dentro do python (rsrsr), mesmo que nos ultimos anos as bibliotecas de visualização do python tem melhorado muito, ainda assim isso ocorre com frequência.
Por outro lado, se você já tem alguma experiência em programação, ou é da área da computação, Python é uma linguagem de propósito muito mais geral e mais legível para quem vem desta área, e tudo que se pode fazer em Python é igual à maioria das coisas em que R é bom.
Ambos os grupos têm comunidades fortes que compartilham seus conhecimentos em vários blogs e eventos e realmente acho que ambos são ótimas escolhas. Hoje o mercado está mais aquecido quando o assunto é Python, e o profissional que conhece as duas linguagens se dá muito bem.
Agora que uso o R há alguns anos (desde 2013), tive a chance de usá-lo algumas vezes no local de trabalho, e sempre que posso faço o uso, mostrando os recursos que esta ferramenta oferece, criando modelos econometricos e procedimentos de estimação em modelagem para riscos financeiros para fornecer alguns insights de negócios. Já realizei muitos projetos de análise para clientes particulares e me sinto honrado pelo meu esforço em aprender, estar gerando resultados.
Uma certa vez, um colega especialista em Python com interesse em aprendizado de máquina viu as poucas linhas de código necessárias para organizar o conjunto de dados, treinar um modelo e prever resultados e, francamente, ele ficou chocado. Tivemos uma conversa estranha de R para Python tentando entender as diferenças entre matrizes de dados e quadros de dados (data frame) depois, embora para mim isso tenha esclarecido onde R era forte: a facilidade de preparar e construir um modelo rapidamente para qualquer tipo de análise.
Mas dependendo de quem você pode perguntar, quando a primeira vez que tive contato com R em 2013, o R provavelmente tinha uma ligeira, se não substancial, vantagem sobre o Python na adoção do usuário para aprendizado de máquina e o que agora é conhecido como ciência de dados. Desde então, o uso do Python cresceu substancialmente e seria difícil argumentar contra o fato de que o Python é o novo favorito, embora a corrida possa estar mais acirrada do que se poderia esperar, dado o entusiasmo dos fãs do Python que apoiam a nova e brilhante ferramenta com maior hype.
Nos últimos anos, o Python se beneficiou muito com o rápido amadurecimento de complementos gratuitos, como a estrutura de aprendizado de máquina Scikit-learn, a biblioteca de estrutura de dados Pandas, a biblioteca de gráficos Matplotlib e a interface de notebook Jupyter, entre vários outros aplicativos abertos. Bibliotecas de origem que tornaram mais fácil do que nunca fazer ciência de dados em Python. É claro que essas bibliotecas apenas trouxeram o Python para apresentar paridade com o que o R e o RStudio já podiam fazer há muito tempo! No entanto, o Python é comparativamente rápido e eficiente em termos de memória - pelo menos em relação ao R – o que pode ter contribuído para o fato de que o Python agora é sem dúvida a linguagem mais frequentemente ensinada em programas formais em ciência de dados e ganhou rapidamente adoção em domínios de negócios.
Em vez de indicar a morte iminente do R, porque a ascensão do Python está acentuada. Na verdade, o uso do R também está crescendo rapidamente, e o R e o RStudio estão se tornando mais populares do que nunca. Embora os alunos às vezes perguntem se vale a pena começar com R em vez de pular direto para o Python, ainda há muitos bons motivos para escolher aprender aprendizado de máquina com R em vez da alternativa.
Observe que essas justificativas são bastante subjetivas – e não somente as minhas, mas qualquer justificativa na internet vai ser assim – e não há uma resposta certa para todos, então hesito em colocar isso por escrito! No entanto, mas como alguém que ainda usa R quase diariamente como parte do meu trabalho para uma grande corporação, aqui estão algumas coisas que notei:
Como já comentei acima, R pode ser mais intuitivo e fácil de aprender para pessoas com formação em ciências sociais ou negócios (como economia, marketing e assim por diante), enquanto Python pode fazer mais sentido para cientistas da computação e outros tipos de engenheiros.
R tende a ser usado mais como uma “calculadora” em que você digita um comando e algo acontece; em geral, a codificação em Python tende a exigir mais consideração sobre loops e outros comandos de fluxo de programa (essa distinção está desaparecendo com o tempo com a funcionalidade adicional em bibliotecas Python).
R usa relativamente poucos tipos de estruturas de dados (aquelas incluídas são adaptadas para análise de dados) e o formato de dados do tipo planilha frequentemente usado é um tipo de dados embutido; comparativamente, o Python tem muitas estruturas de dados especializadas e usa bibliotecas como NumPy ou Pandas , e para o formato de dados de matriz, cada uma com sua própria sintaxe.
R e seus pacotes podem ser mais fáceis de instalar e atualizar do que o Python, em parte porque o Python é gerenciado por alguns sistemas operacionais por padrão, e manter dependências e ambientes separados é um desafio (ferramentas modernas de instalação do Python e gerenciadores de pacotes abordaram isso simultaneamente, em algumas formas, piorando o problema!).
R normalmente é mais lento e consome mais memória do que Python para manipulação de dados e iteração em grandes estruturas de dados, mas se os dados couberem na memória, essa diferença é um tanto insignificante. Na real? Se você não trabalha com BigData, provavelmente você nem sente essa diferença; O R melhorou nessa área, o R está tornando a preparação de dados mais rápida e fácil e, para dados que não cabem na memória, existem soluções alternativas (R with BigData), mas esta é reconhecidamente uma das maiores vantagens do Python.
O R tem o apoio e a visão da equipe da Posit (anteriormente conhecida como RStudio) impulsionando a inovação e tornando o R mais fácil e agradável de usar em um ambiente unificado de software (RStudio Desktop); em contraste, as inovações do Python estão ocorrendo em várias frentes, oferecendo maneiras mais “certas” de realizar a mesma coisa (para o bem ou para o mal).
Com sorte, os motivos acima lhe darão confiança para começar sua jornada. Não há vergonha em começar por R (como algumas pessoas pensam), independentemente de você permanecer com R por um longo prazo, usá-lo lado a lado com outras linguagens como Python ou se formar em algo totalmente diferente, os princípios fundamentais que você aprender serão transferidos para qualquer linguagem (um exemplo claro é: se você ainda não aprendeu SQL e já entende o básico de Tidyverse, terá mais facilidade ao estudar SQL, ou vice-versa) ou ferramentas que você escolher. Embora o código escrito em R é bem mais “bonito” para mim, é altamente recomendável que você use a ferramenta certa para o trabalho, seja ela qual for. Você pode descobrir, como eu mesmo, que o R e o RStudio são suas ferramentas preferidas para muitos projetos de ciência de dados e aprendizado de máquina do mundo real - mesmo que você ocasionalmente aproveite os pontos fortes exclusivos do Python!
No final, a minha recomendação é: basta escolher um e começar. Embora eu ainda precisarei aprender muito mais sobre Python para obter os benefícios exclusivos que cada linguagem oferece, ampliados por meio da colaboração. O bom disso tudo é que, utilizando o RStudio um IDE para R, é possível utilizar a linguagem Python e SQL também.