Hallo 👋
Lassen Sie uns heute in die 7 ML-Repos eintauchen, die das oberste 1 % der Entwickler verwenden (und von denen Sie wahrscheinlich noch nie gehört haben)!
Das Ranking von Entwicklern ist ein schwieriges Problem, und jede Methodik hat ihre Probleme.
Wenn Sie beispielsweise die Entwickler nach der Anzahl der Codezeilen ordnen, die sie in Python geschrieben haben, werden Sie wahrscheinlich einige ziemlich gute Python-Entwickler an der Spitze finden.
Es kann jedoch sein, dass es Leute gibt, die gerade jede Menge Python-Code in ihre Repos kopiert haben und dieser nicht so gut ist. 🙁
Bei Quine haben wir eine Methodik entwickelt, die unserer Meinung nach in den meisten Fällen robust , aber wiederum nicht 100 % perfekt ist!
Es heißt DevRank (mehr darüber, wie wir es berechnen, können Sie hier lesen).
Die Vorstellung der Top 1 %, die ich in diesem Artikel verwende, basiert auf DevRank.
Und ja, wir arbeiten weiter daran, es jeden Tag besser zu machen!
Wir schauen uns die Repos an, bei denen das 99. Perzentil die Hauptrolle gespielt hat.
Anschließend vergleichen wir die Neigung des oberen 1 % der Entwickler mit der der unteren 50 % der Entwickler, ein Repo zu starten, und erstellen automatisch die Liste.
Mit anderen Worten: Diese Repositories sind die verborgenen Schätze, die von den besten 1 % der Entwickler genutzt werden und von der breiteren Entwicklergemeinschaft erst noch entdeckt werden müssen .
Ich kümmere mich um Ihre chaotischen CSVs
Ein Paket, das von einigen Freunden von uns entwickelt wurde , um häufige Probleme beim Laden von CSV-Dateien zu beheben . Ein kleines, aber häufiges Problem am Anfang vieler ML-Pipelines, gut gelöst. 🔮
CleverCSV ist in der Lage, verschiedene CSV-Dialekte zu erkennen und zu laden, ohne dass in seinen Argumenten etwas gesagt werden muss. CSV-Dateien stellen nicht die notwendigen Informationen bereit, um dies nativ durchzuführen, daher sind von der Bibliothek einige clevere Schlussfolgerungen erforderlich.
CleverCSV kann sogar unordentliche CSV-Dateien verarbeiten, die Fehler in der Formatierung aufweisen.
Neben der Python-Bibliothek enthält CleverCSV auch eine Befehlszeilenschnittstelle zur Codegenerierung, -exploration und -standardisierung.
https://github.com/alan-turing-institute/CleverCSV
Optimieren Sie ML-Workflows mit scikit-learn über CLI
Schreiben Sie endlose Boilerplates in sklearn , um mit mehreren Algorithmen kreuzvalidierte Ergebnisse zu erhalten? Probieren Sie stattdessen die Benutzeroberfläche von skll
aus, um ein viel saubereres Codierungserlebnis zu erzielen. ⚡️
Skll wurde entwickelt, um maschinelle Lernexperimente mit scikit-learn effizienter durchzuführen und den Bedarf an umfangreicher Codierung zu reduzieren.
Das führende bereitgestellte Dienstprogramm heißt run_experiment
und führt eine Reihe von Lernenden mit Datensätzen aus, die in einer Konfigurationsdatei angegeben sind.
Es bietet außerdem eine Python-API für die einfache Integration in vorhandenen Code, einschließlich Tools für die Formatkonvertierung und Feature-File-Operationen.
https://github.com/EducationalTestingService/skll
k-Medoids-Clusterbildung in nahezu linearer Zeit
Zurück zu den grundlegenden Algorithmen: BanditPAM ist ein neuer k-medoids-Algorithmus (denken Sie an einen robusten „k-means“), der in nahezu linearer Zeit ausgeführt werden kann. 🎉
Läuft in O(nlogn)-Zeit statt in O(n^2)-Zeit, wie bei früheren Algorithmen.
Clusterzentren sind Datenpunkte und entsprechen daher aussagekräftigen Beobachtungen. Das Zentrum eines k-means-Clusters entspricht möglicherweise ungültigen Daten. Dies ist bei k-Medoiden nicht möglich.
Es können beliebige Distanzmetriken verwendet werden (denken Sie zum Beispiel an L1 oder Hamming-Distanz), effiziente K-Mittelwert-Algorithmen sind typischerweise auf die L2-Distanz beschränkt.
BanditPAM wurde anhand diesesArtikels implementiert und ist ideal für Datenwissenschaftler, die eine leistungsstarke, skalierbare Lösung für Gruppenarbeit suchen, insbesondere für diejenigen, die mit großen oder komplexen Daten arbeiten.
https://github.com/motiwari/BanditPAM
Der Datensatz-Matcher und Duplikat-Detektor, den jeder braucht
Hatten Sie jemals Schwierigkeiten, Benutzer in verschiedenen Datensätzen zuzuordnen, die ihren Namen falsch geschrieben haben oder die leicht unterschiedliche Attribute haben? Nutzen Sie diese großartige Bibliothek, die von der Freely Extensible Biomedical Record Linkage (FEBRL) inspiriert und für moderne Python-Tools neu erstellt wurde. 🛠️
Bietet eine native Python-Implementierung der leistungsstarken FEBRL-Bibliothek unter Verwendung von Numpy und Pandas.
Beinhaltet sowohl überwachte als auch unbeaufsichtigte Ansätze.
Enthält Tools zum Generieren passender Paare, um überwachte ML-Ansätze zu ermöglichen.
RecordLinkage ist ideal für Datenwissenschaftler, die eine flexible, Python-basierte Lösung zur Durchführung von Datensatzverknüpfungs- und Datendeduplizierungsaufgaben suchen.
https://github.com/J535D165/recordlinkage
Ein einziger Fokus liegt auf der Extraktion von Webseiteninhalten
Inhaltsextraktion aus Webseiten . Dragnet konzentriert sich auf den Inhalt und die Benutzerkommentare auf einer Seite und ignoriert den Rest. Es ist praktisch für unsere Scraper-Freunde da draußen. 🕷️
Ziel von Dragnet ist es, Schlüsselwörter und Phrasen aus Webseiten zu extrahieren, indem unerwünschte Inhalte wie Werbung oder Navigationsgeräte entfernt werden.
Bietet einfache Python-Funktionen ( extract_content
und extract_content_and_comments
) mit der Option, Kommentare zum Extrahieren von Inhalten aus HTML-Strings einzuschließen oder auszuschließen.
Für eine fortgeschrittenere Verwendung gibt es eine Extraktorklasse sklearn-style
, die eine individuelle Anpassung und Schulung von Extraktoren ermöglicht.
https://github.com/dragnet-org/dragnet
Die neuesten StanfordNLP-Forschungsmodelle direkt in spaCy
Interessiert an Standard-NLP-Aufgaben wie Wortart-Tagging, Abhängigkeitsanalyse und Erkennung benannter Entitäten? 🤔
SpaCy-Stanza umschließt die Stanza-Bibliothek (ehemals StanfordNLP) zur Verwendung in spaCy-Pipelines.
https://github.com/explosion/spacy-stanza
„Schweizer Taschenmesser für Grafik-Sampling-Aufgaben“
Haben Sie jemals mit einem Datensatz gearbeitet, der so groß ist, dass Sie eine Probe davon entnehmen müssen? Bei einfachen Daten behält die Zufallsstichprobe die Verteilung in einer kleineren Stichprobe bei. In komplexen Netzwerken lässt sich die Netzwerkstruktur jedoch besser mit der Schneeballstichprobe erfassen, bei der Sie die ersten Benutzer auswählen und deren Verbindungen einbeziehen .
Dies trägt dazu bei, Verzerrungen in der Analyse zu vermeiden. 🔦
Verfügen Sie nun über grafisch strukturierte Daten und müssen Stichproben davon bearbeiten (entweder aus algorithmischen oder rechnerischen Gründen)? 👩💻
Littleballoffur bietet eine Reihe von Methoden zum Sampling aus Diagrammen und Netzwerken, einschließlich Knoten-, Kanten- und Explorations-Sampling.
Entwickelt mit einer einheitlichen öffentlichen Anwendungsschnittstelle, die es Benutzern erleichtert, komplexe Stichprobenalgorithmen ohne umfassende technische Kenntnisse anzuwenden.
https://github.com/benedekrozemberczki/littleballoffur
Ich hoffe, dass diese Entdeckungen für Sie wertvoll sind und Ihnen beim Aufbau eines robusteren ML-Toolkits helfen werden! ⚒️
Wenn Sie daran interessiert sind, diese Tools zu nutzen, um wirkungsvolle Open-Source-Projekte zu erstellen, sollten Sie zunächst herausfinden, wie hoch Ihr aktueller DevRank bei Quine ist, und sehen, wie er sich in den kommenden Monaten entwickelt!
Bitte denken Sie schließlich darüber nach, diese Projekte zu unterstützen, indem Sie sie in den Mittelpunkt stellen. ⭐️
PS: Wir sind nicht mit ihnen verbunden. Wir sind einfach der Meinung, dass großartige Projekte große Anerkennung verdienen.
Bis nächste Woche,
Dein Hackernoon-Kumpel 💚
Bap
Wenn Sie dem selbsternannten „coolsten“ Open-Source-Server beitreten möchten 😝, sollten Sie unserem Discord-Server beitreten. Wir sind hier, um Sie auf Ihrer Reise in Open Source zu unterstützen. 🫶
Auch hier veröffentlicht.