River ist eine Python -Bibliothek für Online -maschinelles Lernen. Ziel ist es, die benutzerfreundlichste Bibliothek für maschinelles Lernen für Streaming-Daten zu sein. Der Fluss ist das Ergebnis einer Fusion zwischen Creme und Scikit-Multiflow.
Als kurzes Beispiel schulen wir eine logistische Regression, um den Phishing -Datensatz der Website zu klassifizieren. Hier ist ein Blick auf die erste Beobachtung im Datensatz.
>>> aus pprint import pprint >>> aus Fluss importieren Datasets >>> dataset = datasets.phishing () >>> für x, y im Datensatz: ... pprint (x) ... drucken (y) ... Break {'ayof_domain': 1, 'anchor_from_other_domain': 0.0, 'leer_server_form_handler': 0.0, 'https': 0.0, 'ip_in_url': 1, 'is_popular': 0.5, 'long_url': 1.0, 'popup_window' ',' popup_window '' : 0.0, 'request_from_other_domain': 0.0} true
Lassen Sie uns nun das Modell auf dem Datensatz in Streaming -Weise ausführen. Wir unterschätzen nacheinander Vorhersagen und Modellaktualisierungen. In der Zwischenzeit aktualisieren wir eine Leistungsmetrik, um zu sehen, wie gut das Modell geht.
>>> vom Flussimport komponieren >>> aus Fluss import linear_model >>> aus Flussimportmetriken >>> aus der Vorverarbeitung von Flussimport >>> model = compose.pipeline (Pipeline ( ... Vorverarbeitung.StandardsCaler (), ... linear_model.logisticRegression ()) ...) >>> metric = metrics.accuracy () >>> für x, y im Datensatz: ... y_pred = modell.Predict_one (x) # Machen Sie eine Vorhersage ... metric.update (y, y_pred) # Aktualisieren Sie die Metrik ... model.learn_one (x, y) # Machen Sie das Modell Lernen >>> metricAccuracy : 89,28%
Dies ist natürlich nur ein erfundenes Beispiel. Wir begrüßen Sie, um den Einführungsabschnitt der Dokumentation für ein gründlichsteres Tutorial zu überprüfen.
Der Fluss soll mit Python 3.8 und höher arbeiten. Die Installation kann mit pip
durchgeführt werden:
PIP Installieren Sie den Fluss
Es stehen Räder für Linux, MacOS und Windows zur Verfügung. Dies bedeutet, dass Sie höchstwahrscheinlich nicht Fluss aus der Quelle bauen müssen.
Sie können die neueste Entwicklungsversion von GitHub als SO installieren:
PIP Installieren Sie GIT+https: //github.com/online-ml/river ---upgrade PIP Installieren Sie GIT+SSH: //[email protected]/online-ml/river.git ---upgrade # mit SSH
Diese Methode erfordert, dass Cython und Rost auf Ihrem Computer installiert sind.
River bietet Online -Implementierungen der folgenden Algorithmenfamilie:
Lineare Modelle mit einer Vielzahl von Optimierern
Entscheidungsbäume und zufällige Wälder
(Ungefähr) nächste Nachbarn
Anomalieerkennung
Drifterkennung
Empfehlungssysteme
Zeitreihenprognose
Banditen
Faktorisierungsmaschinen
Unausgewogenes Lernen
Clustering
Bagging/Boosting/Stapelung
Aktives Lernen
River bietet auch andere Online -Versorgungsunternehmen:
Merkmale und Auswahl
Online -Statistiken und Metriken
Vorverarbeitung
Integrierte Datensätze
Progressive Modellvalidierung
Modellpipelines
In der API finden Sie einen umfassenden Überblick
Sie sollten sich fragen, ob Sie online maschinelles Lernen benötigen. Die Antwort lautet wahrscheinlich nein. Meistens macht das Batch -Lernen die Arbeit gut. Ein Online -Ansatz könnte in die Rechnung passen, wenn:
Sie möchten ein Modell, das aus neuen Daten lernen kann, ohne vergangene Daten erneut zu werden.
Sie möchten ein Modell, das robust für die Konzeptdrift ist.
Sie möchten Ihr Modell auf eine Weise entwickeln, die näher an dem liegt, was in einem Produktionskontext vorkommt, der normalerweise ereignisbasiert ist.
Einige Spezifitäten des Flusses sind:
Es konzentriert sich auf Klarheit und Benutzererfahrung mehr als auf Leistung.
Es ist sehr schnell, jeweils eine Probe zu verarbeiten. Probieren Sie es aus, Sie werden sehen.
Es spielt gut mit dem Rest von Pythons Ökosystem.
Dokumentation
Paketveröffentlichungen
Awesome-online-Maschinen-Lernen
2022 Präsentation bei Gaia
Online -Clustering: Algorithmen, Bewertung, Metriken, Anwendungen und Benchmarking von KDD'22.
Fühlen Sie sich frei, auf jede mögliche Weise einen Beitrag zu leisten. Wir sind immer offen für neue Ideen und Ansätze.
Öffnen Sie eine Diskussion, wenn Sie eine Frage oder Anfrage haben. Es ist nützlicher, Ihre Frage in der Öffentlichkeit zu stellen, anstatt uns eine private E -Mail zu senden. Es wird auch ermutigt, eine Diskussion vor dem Beitrag zu eröffnen, damit jeder ausgerichtet ist und unnötige Arbeiten vermieden werden.
Sie fühlen sich herzlich ein Problem, ein Problem zu eröffnen, wenn Sie der Meinung sind, dass Sie einen Fehler oder ein Leistungsproblem entdeckt haben.
Unsere Roadmap ist öffentlich. Fühlen Sie sich frei, an allem zu arbeiten, was Ihre Aufmerksamkeit auf sich zieht, oder Vorschläge machen.
Bitte überprüfen Sie die Beitragsrichtlinien, wenn Sie Änderungen an die Codebasis bringen möchten.
Wenn River für Sie nützlich war und Sie ihn in einer wissenschaftlichen Veröffentlichung zitieren möchten, lesen Sie bitte das bei JMLR veröffentlichte Papier:
@Article {Montiel2021River, Titel = {Fluss: Maschinelles Lernen für das Streaming von Daten in Python}, Autor = {Montiel, Jacob und Halford, Max und Mastelini, Saullo Martiello und Bolmier, Geoffrey und Sourty, Raphael und Vaysse, Robin und Zouitine, Adouitine, Aduitine, Adouitine, Aduitine, Adouitine, Aduitine, Aduitine, Adouitine, Aduitine, Aduitine, Aduitine, Adouitine, Aduitine, Aduitine, Aduitine, Adouitine, Aduitine, Aduitine, Aduitine, Aduitine, Aduitine, Adouitine, Adode und Gomes, Hitor Murilo und Read, Jesse und Abdessalem, Talel und andere}, Jahr = {2021}}}
River ist kostenlos und Open-Source-Software lizenziert unter der 3-Klausel-BSD-Lizenz.