Hola 👋
¡Hoy, profundicemos en 7 repositorios de ML que usa el 1% superior de los desarrolladores (y de aquellos de los que probablemente nunca hayas oído hablar)!
Clasificar a los desarrolladores es un problema difícil y cada metodología tiene sus problemas.
Por ejemplo, si clasificas a los desarrolladores por el número de líneas de código que han escrito en Python, probablemente obtendrás algunos desarrolladores de Python bastante buenos en la parte superior.
Sin embargo, es posible que haya personas que hayan copiado y pegado mucho código Python en sus repositorios y no sean tan buenos. 🙁
En Quine, hemos desarrollado una metodología que creemos que es sólida en la mayoría de los casos , ¡pero nuevamente no es 100% perfecta!
Se llama DevRank (puedes leer más sobre cómo lo calculamos aquí ).
La noción del 1% superior que utilizo en este artículo se basa en DevRank.
Y sí, ¡seguimos trabajando en esto para hacerlo cada día mejor!
Nos fijamos en los repos que ha protagonizado el percentil 99.
Luego comparamos la propensión del 1% superior de los desarrolladores frente al 50% inferior de los desarrolladores a destacar un repositorio y generamos automáticamente la lista.
En otras palabras, estos repositorios son las joyas ocultas utilizadas por el 1% superior de los desarrolladores y aún no han sido descubiertas por la comunidad de desarrolladores en general .
Yo manejo tus CSV desordenados
Un paquete desarrollado por algunos amigos nuestros para manejar los problemas comunes al cargar archivos CSV . Un problema pequeño pero común al inicio de muchas canalizaciones de ML, bien resuelto. 🔮
CleverCSV es capaz de detectar y cargar varios dialectos CSV diferentes, sin necesidad de que se le diga nada en sus argumentos. Los archivos CSV no proporcionan la información necesaria para realizar esto de forma nativa, por lo que la biblioteca requiere alguna inferencia inteligente.
CleverCSV puede incluso manejar archivos CSV desordenados, que tienen errores en su formato.
Además de la biblioteca Python, CleverCSV también incluye una interfaz de línea de comandos para generación, exploración y estandarización de código.
https://github.com/alan-turing-institute/CleverCSV
Optimice los flujos de trabajo de ML con scikit-learn a través de CLI
¿Está escribiendo un sinfín de textos repetitivos en sklearn para obtener resultados de validación cruzada con múltiples algoritmos? Pruebe la interfaz de skll
para disfrutar de una experiencia de codificación mucho más limpia. ⚡️
Skll está diseñado para permitir ejecutar experimentos de aprendizaje automático con scikit-learn de manera más eficiente, reduciendo la necesidad de una codificación extensa.
La utilidad principal proporcionada se llama run_experiment
y ejecuta una serie de alumnos en conjuntos de datos especificados en un archivo de configuración.
También ofrece una API de Python para una integración sencilla con el código existente, incluidas herramientas para conversión de formato y operaciones de archivos de características.
https://github.com/EducationalTestingService/skll
Agrupación de k-Medoides en tiempo casi lineal
Volviendo a los algoritmos fundamentales aquí: BanditPAM es un nuevo algoritmo de k-medoids (piense en un algoritmo robusto de "k-means") que puede ejecutarse en un tiempo casi lineal. 🎉
Se ejecuta en tiempo O(nlogn) en lugar de tiempo O(n^2), según los algoritmos anteriores.
Los centros de conglomerados son puntos de datos y, por tanto, corresponden a observaciones significativas. El centro de un grupo de k-medias puede corresponder a datos no válidos; Esto no es posible con los k-medoides.
Se pueden usar métricas de distancia arbitrarias (piense en L1 o la distancia de Hamming, por ejemplo), los algoritmos de k-medias eficientes generalmente se limitan a la distancia L2.
Implementado a partir de estedocumento , BanditPAM es ideal para científicos de datos que buscan una solución potente y escalable para el trabajo en grupo, especialmente aquellos que trabajan con datos grandes o complejos.
https://github.com/motiwari/BanditPAM
El comparador de registros y detector de duplicados que todos necesitan
¿Alguna vez ha tenido problemas para hacer coincidir usuarios dentro de diferentes conjuntos de datos que han escrito mal su nombre o que tienen atributos ligeramente diferentes? Utilice esta gran biblioteca inspirada en Freely Extensible Biomedical Record Linkage (FEBRL) , reconstruida para las herramientas modernas de Python. 🛠️
Proporciona una implementación nativa de Python de la poderosa biblioteca FEBRL, haciendo uso de numpy y pandas.
Incluye enfoques tanto supervisados como no supervisados.
Incluye herramientas para generar pares coincidentes para permitir enfoques de aprendizaje automático supervisados.
RecordLinkage es ideal para científicos de datos que buscan una solución flexible basada en Python para realizar tareas de vinculación de registros y deduplicación de datos.
https://github.com/J535D165/recordlinkage
Un enfoque exclusivo en la extracción de contenido de páginas web.
Extracción de contenidos de páginas web . Dragnet se centra en el contenido y los comentarios de los usuarios en una página e ignora el resto. Es útil para nuestros amigos raspadores. 🕷️
Dragnet tiene como objetivo extraer palabras clave y frases de páginas web eliminando contenido no deseado, como publicidad o equipos de navegación.
Proporciona funciones simples de Python ( extract_content
y extract_content_and_comments
) con la opción de incluir o excluir comentarios para extraer contenido de cadenas HTML.
Existe una clase de extractor sklearn-style
para un uso más avanzado, lo que permite la personalización y capacitación de los extractores.
https://github.com/dragnet-org/dragnet
Los últimos modelos de investigación de StanfordNLP directamente en spaCy
¿Está interesado en tareas estándar de PNL, como el etiquetado de partes del discurso, el análisis de dependencias y el reconocimiento de entidades nombradas? 🤔
SpaCy-Stanza envuelve la biblioteca Stanza (anteriormente StanfordNLP) para ser utilizada en tuberías spaCy.
https://github.com/explosion/spacy-stanza
"Navaja suiza para tareas de muestreo de gráficos"
¿Alguna vez ha trabajado con un conjunto de datos tan grande que necesita tomar una muestra? Para datos simples, el muestreo aleatorio mantiene la distribución en una muestra más pequeña. Sin embargo, en redes complejas, el muestreo de bola de nieve ( donde se seleccionan usuarios iniciales e incluye sus conexiones ) captura mejor la estructura de la red.
Esto ayuda a evitar sesgos en el análisis. 🔦
Ahora bien, ¿tiene datos estructurados en gráficos y necesita trabajar en muestras de ellos (ya sea por razones algorítmicas o computacionales)? 👩💻
Littleballoffur ofrece una variedad de métodos para tomar muestras de gráficos y redes, incluido el muestreo de nodos, bordes y exploración.
Diseñado con una interfaz pública de aplicación unificada, lo que facilita a los usuarios aplicar algoritmos de muestreo complejos sin conocimientos técnicos profundos.
https://github.com/benedekrozemberczki/littleballoffur
Espero que estos descubrimientos sean valiosos para usted y le ayuden a crear un conjunto de herramientas de aprendizaje automático más sólido. ⚒️
Si está interesado en aprovechar estas herramientas para crear proyectos impactantes en código abierto, primero debe averiguar cuál es su DevRank actual en Quine y ver cómo evoluciona en los próximos meses.
Por último, considere apoyar estos proyectos protagonizándolos. ⭐️
PD: No estamos afiliados a ellos. Simplemente pensamos que los grandes proyectos merecen un gran reconocimiento.
Te veo la proxima semana,
Tu amigo Hackernoon 💚
Panecillo en Escocia
Si desea unirse al servidor autoproclamado "más genial" de código abierto 😝, debe unirse a nuestro servidor de Discord . Estamos aquí para ayudarle en su viaje hacia el código abierto. 🫶
También publicado aquí .