Olá 👋
Hoje, vamos mergulhar em 7 repositórios de ML que 1% dos principais desenvolvedores usam (e daqueles dos quais você provavelmente nunca ouviu falar)!
Classificar desenvolvedores é um problema difícil e toda metodologia tem seus problemas.
Por exemplo, se você classificar os desenvolvedores pelo número de linhas de código que eles escreveram em Python, provavelmente obterá alguns desenvolvedores Python muito bons no topo.
No entanto, você pode encontrar pessoas que acabaram de copiar e colar muitos códigos Python em seus repositórios e elas não são tão boas. 🙁
Na Quine, desenvolvemos uma metodologia que consideramos robusta na maioria dos casos , mas, novamente, não 100% perfeita!
Chama-se DevRank (você pode ler mais sobre como calculamos isso aqui ).
A noção de Top 1% que utilizo neste artigo é baseada no DevRank.
E sim, continuamos trabalhando nisso para que seja melhor a cada dia!
Observamos os repositórios estrelados pelo percentil 99.
Em seguida, comparamos a propensão de 1% dos principais desenvolvedores com a dos 50% inferiores dos desenvolvedores de marcar um repositório com estrela e gerar a lista automaticamente.
Em outras palavras, esses repositórios são joias escondidas usadas por 1% dos principais desenvolvedores e ainda não foram descobertos pela comunidade de desenvolvedores em geral .
Eu cuido dos seus CSVs bagunçados
Um pacote desenvolvido por alguns amigos nossos para lidar com problemas comuns de carregamento de arquivos CSV . Um problema pequeno, mas comum, no início de muitos pipelines de ML, bem resolvido. 🔮
CleverCSV é capaz de detectar e carregar vários dialetos CSV diferentes, sem a necessidade de ser informado em seus argumentos. Os arquivos CSV não fornecem as informações necessárias para realizar isso nativamente, portanto, alguma inferência inteligente é exigida pela biblioteca.
O CleverCSV pode até lidar com arquivos CSV confusos, que apresentam erros na formatação.
Além da biblioteca Python, o CleverCSV também inclui uma interface de linha de comando para geração, exploração e padronização de código.
https://github.com/alan-turing-institute/CleverCSV
Simplifique os fluxos de trabalho de ML com o scikit-learn por meio da CLI
Você está escrevendo padrões infinitos no sklearn para obter resultados de validação cruzada com vários algoritmos? Experimente a interface do skll
para uma experiência de codificação muito mais limpa. ⚡️
Skll foi projetado para permitir a execução de experimentos de aprendizado de máquina com scikit-learn de forma mais eficiente, reduzindo a necessidade de codificação extensa.
O principal utilitário fornecido é chamado run_experiment
e executa uma série de alunos em conjuntos de dados especificados em um arquivo de configuração.
Ele também oferece uma API Python para integração direta com código existente, incluindo ferramentas para conversão de formato e operações de arquivos de recursos.
https://github.com/EducationalTestingService/skll
Clustering de k-Medoids em tempo quase linear
Voltando aos algoritmos fundamentais aqui - BanditPAM é um novo algoritmo k-medoids (pense em um algoritmo robusto “k-means”) que pode ser executado em tempo quase linear. 🎉
Executa em tempo O(nlogn) em vez de tempo O(n^2), conforme algoritmos anteriores.
Os centros de cluster são pontos de dados e, portanto, correspondem a observações significativas. O centro de um cluster k-means pode corresponder a dados inválidos; isso não é possível com k-medóides.
Métricas de distância arbitrárias podem ser usadas (pense em L1 ou distância de Hamming, por exemplo). Algos eficientes de k-means são normalmente limitados à distância L2.
Implementado a partir desteartigo , o BanditPAM é ideal para cientistas de dados que procuram uma solução poderosa e escalonável para trabalho em grupo, especialmente aqueles que lidam com dados grandes ou complexos.
https://github.com/motiwari/BanditPAM
O comparador de registros e detector de duplicatas que todos precisam
Você já teve dificuldade para combinar usuários em conjuntos de dados diferentes que escreveram seus nomes incorretamente ou que tinham atributos ligeiramente diferentes? Use esta excelente biblioteca inspirada no Freely Extensible Biomedical Record Linkage (FEBRL) , reconstruída para ferramentas Python modernas. 🛠️
Fornece uma implementação nativa em Python da poderosa biblioteca FEBRL, fazendo uso de numpy e pandas.
Inclui abordagens supervisionadas e não supervisionadas.
Inclui ferramentas para gerar pares correspondentes para permitir abordagens de ML supervisionadas.
RecordLinkage é ideal para cientistas de dados que procuram uma solução flexível baseada em Python para executar tarefas de vinculação de registros e desduplicação de dados.
https://github.com/J535D165/recordlinkage
Foco exclusivo na extração de conteúdo de páginas da web
Extração de conteúdo de páginas da web . Dragnet concentra-se no conteúdo e nos comentários dos usuários em uma página e ignora o resto. É útil para nossos amigos raspadores por aí. 🕷️
Dragnet tem como objetivo extrair palavras-chave e frases de páginas da web, removendo conteúdo indesejado, como publicidade ou equipamentos de navegação.
Fornece funções Python simples ( extract_content
e extract_content_and_comments
) com a opção de incluir ou excluir comentários para extrair conteúdo de strings HTML.
Uma classe de extrator sklearn-style
existe para uso mais avançado, permitindo customização e treinamento de extratores.
https://github.com/dragnet-org/dragnet
Os mais recentes modelos de pesquisa StanfordNLP diretamente no spaCy
Interessado em tarefas padrão de PNL, como marcação de classes gramaticais, análise de dependências e reconhecimento de entidade nomeada? 🤔
SpaCy-Stanza envolve a biblioteca Stanza (anteriormente StanfordNLP) para ser usada em pipelines spaCy.
https://github.com/explosion/spacy-stanza
"Canivete suíço para tarefas de amostragem gráfica"
Você já trabalhou com um conjunto de dados tão grande que precisou coletar uma amostra dele? Para dados simples, a amostragem aleatória mantém a distribuição em uma amostra menor. No entanto, em redes complexas, a amostragem em bola de neve - onde você seleciona os usuários iniciais e inclui suas conexões - captura melhor a estrutura da rede.
Isso ajuda a evitar preconceitos na análise. 🔦
Agora, você tem dados estruturados em gráficos e precisa trabalhar em amostras deles (seja por razões algorítmicas ou computacionais)? 👩💻
Littleballoffur oferece uma variedade de métodos para amostragem de gráficos e redes, incluindo amostragem de nós, bordas e exploração.
Projetado com uma interface pública de aplicativo unificada, facilitando aos usuários a aplicação de algoritmos de amostragem complexos sem profundo conhecimento técnico.
https://github.com/benedekrozemberczki/littleballoffur
Espero que essas descobertas sejam valiosas para você e ajudem a construir um kit de ferramentas de ML mais robusto! ⚒️
Se você estiver interessado em aproveitar essas ferramentas para criar projetos impactantes em código aberto, primeiro você deve descobrir qual é o seu DevRank atual no Quine e ver como ele evolui nos próximos meses!
Por último, considere apoiar esses projetos estrelando-os. ⭐️
PS: Não somos afiliados a eles. Apenas pensamos que grandes projetos merecem grande reconhecimento.
Vejo voce na proxima semana,
Seu amigo Hackernoon 💚
Bap
Se você deseja ingressar no servidor autoproclamado "mais legal" em código aberto 😝, você deve ingressar em nosso servidor discord . Estamos aqui para ajudá-lo em sua jornada no código aberto. 🫶
Também publicado aqui .