Taverna /dev/All

Que tecnologias vocês usam e quais os prós e contras?

Acho que o título da pergunta já resume…

Alguém já teve experiências com o ecossistema do Python (Pandas, Scikit-Learn, Jupyter…) e com Apache Spark?

Até hoje não tive contato com nenhuma destas, por este motivo motivo não tenho como argumentar sobre prós e contras, mas futuramente penso em estudar sobre o ecossistema Python, sempre vejo conteúdos a respeito e parece ser bem interessante.

Comecei a entrar no ecossitema Python agora: está sendo uma experiência muito melhor do que a que esperava. Me surpreendeu positivamente, e muito.

Estou usando boa parte do ecossitema: Pandas, NumPy, mas o foco tem sido o TensorFlow, ao qual tenho me dedicado com maior profundidade. Aliás, quando conheci o numpy é que ficou nítido pra mim por que todo mundo que lida com deep learning vai pro Python: estas bibliotecas são sem sombra de dúvidas o killer app da linguagem.

O que observo é o seguinte: as ferramentas em si, são maravilhosas, não tenho muito o que reclamar até agora, entretanto, como experiência pessoal, o que estou observando é o seguinte: se você não souber estatística e o mínimo de matemática, vai patinar.

Pode ser que no futuro consigam fazer algo mais amigável que o TensorFlow (que já é em si bastante amigável), entretanto, se alguém quiser começar a olhar esta área de ciência de dados ignorando isto vai dar muito murro em ponta de faca.

O contra que tenho até agora é a baixa qualidade de boa parte do material que peguei para estudar estas tecnologias. Muita coisa ruim.

E o Keras, não tá usando? É uma camada de API em cima do TF (embora não te livre de entender algo de matemática e estatística)

já usei todos os citados, python, pandas e jupyter e outros fazem parte do meu dia.
o pró: mto rápido de fazer e testar
o contra: lento p/ mtos dados e ambiente de produção

spark usei com o Java, é um canhão, então não use p/ matar formiga. usei em abientes q processava 100k dados por minuto ele. depois acabei refazendo em serviço sem ele p/ tirar do EMR e virar EC2. o custo p/ manter o cluster na AWS é mto caro

Só fera aqui, bicho. Quem sabe um dia chego nesse nível.

1 Curtida

to dando os primeiros passos ainda, então quando comecei a ver que precisaria do Python, acabei dando vários passos pra trás e comecei a aprender o básico da linguagem.

e ao topar com as bibliotecas, acabei dando ainda mais alguns passos pra trás, voltando pra Matemática e revendo estatística. Então tudo o que eu faço até agora ainda é muito primitivo, mas tá progredindo aos pouquinhos!

1 Curtida

Demorei a dominar o NumPy, pois até então as matrizes eram só conteúdo inútil de vestibular e a Álgebra Linear era um troço com a finalidade de induzir estudantes de exatas a desistirem do curso. Foi na hora de aprender a fazer cálculo numérico que entendi que a parada é uma questão de notação, resumir trocentas linhas de adições e multiplicações em uma, e que essa sequência de contas pode significar coisas poderosas em termos práticos. Então você não domina o NumPy, o que você deve entender são a notação matricial e os espaços vetoriais, aí o NumPy vem como ferramenta.
Da mesma forma, para montar e treinar uma rede neural no TensorFlow para diferenciar fotos de cãezinhos e gatinhos, você precisa do Cálculo 2, porque o algoritmo é baseado nele. Ou tu aprende, ou fica boiando sem entender o que acontece no código.

2 Curtidas

e é justamente isto que estou amando neste caminho: a volta pra base e pro que realmente tem valor.

Por que as tecnologias, as ferramentas que realmente trazem valor duradouro, são aquelas que passam pelo teste do tempo. E são estas que precisamos dominar primeiro.

Sobre a falta de material, vou deixar como dica as recomendações que recebi na faculdade. Não quero ser pretensioso, eu mesmo estou devendo uma repassada no primeiro e ler o segundo, e irei precisar em breve!

É denso, para depois de rever a matemática e a estatística básicas. Mas depois o Scikit-Learn e o TensorFlow vão virar meras APIs.

http://www.work.caltech.edu/lecture.html
http://neuralnetworksanddeeplearning.com

Este link http://neuralnetworksanddeeplearning.com é maravilhoso.

Estava estudando por ele.

Bom, adicionando os meus 2 centavos na discussão … eu acho que para montar experimentos e análise exploratória de dados não tem muito como fugir do Python e da stack SciPy. Eu ainda vejo espaço para o Java crescer nesse nicho se o JCP estiver disposto a incorporar alguns recursos na linguagem para torná-la menos verbosa:

  • inferência dinâmica de tipos (que já entrou no Java 10)
  • sobrecarga de operadores
  • funções globais, ou no escopo do pacote
  • tuplas e dicionários

esta solução já existe: se chama Groovy

1 Curtida

Apesar desses pesares, o Java é forte em se tratando de big data (Hadoop, Spark…)

Também existe o Weka, composto de bibliotecas + interface gráfica. Nunca usei a fundo, mas deve ser possível fazer boas análises exploratórias direto na interface. Digo isso porque acho ela bastante carregada de funções. Também dá para incorporar as bibliotecas em aplicações e aplicar os algoritmos de ML.

1 Curtida

weka era usado na graduação onde estudei (UFES)

JVM é forte no ecossistema do Big Data, o Spark é Scala, Cascading é Clojure senão me engano e por ai vai

1 Curtida

Sobre Java para Data Science, fazendo uma pesquisa descobri este livro: “Java for Data Science”, que inclusive estou lendo que é recheado de soluções em Java para lidar com este universo.

image

Segue o link do livro: https://www.packtpub.com/big-data-and-business-intelligence/java-data-science

É um bom livro? Mais ou menos, não é nem de longe a melhor coisa que já li na vida: é raso pra dizer o mínimo. Entretanto, como uma fonte de informação para você saber ao menos quais ferramentas existem no Java e te dar este ponto de partida, é fenomenal.

1 Curtida

itexto