Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
river — Streaming-Machine-Learning-Bibliothek für inkrementelles Lernen auf Datenströmen, die Online-Schätzer, Drift- und Anomalieerkennung, Pipelines, Metriken und integrierte Datensätze für Python bereitstellt. | Kitploit
Tools/GitHubGitHub/online-ml/river
Dienstprogramme & FrameworksMaschinelles LernenAnomalieerkennung
GitHubonline-ml/river

river

Streaming-Machine-Learning-Bibliothek für inkrementelles Lernen auf Datenströmen, die Online-Schätzer, Drift- und Anomalieerkennung, Pipelines, Metriken und integrierte Datensätze für Python bereitstellt.

Repository anzeigenWebseite
5.9k657vor 2 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

river_logo

code-quality documentation pypi pepy mypy bsd_3_license discord


River ist eine Python-Bibliothek für Online-Machine-Learning. Sie möchte die benutzerfreundlichste Bibliothek für maschinelles Lernen auf Streaming-Daten sein. River ist das Ergebnis eines Zusammenschlusses von creme und scikit-multiflow.

⚡️ Schnellstart

Als kurzes Beispiel trainieren wir eine logistische Regression, um den Website-Phishing-Datensatz zu klassifizieren. Hier ein Blick auf die erste Beobachtung im Datensatz.

root@kitploit:~
>>> from pprint import pprint
>>> from river import datasets

>>> dataset = datasets.Phishing()

>>> for x, y in dataset:
...     pprint(x)
...     print(y)
...     break
{'age_of_domain': 1,
 'anchor_from_other_domain': 0.0,
 'empty_server_form_handler': 0.0,
 'https': 0.0,
 'ip_in_url': 1,
 'is_popular': 0.5,
 'long_url': 1.0,
 'popup_window': 0.0,
 'request_from_other_domain': 0.0}
True

Nun lassen wir das Modell auf dem Datensatz in einer Streaming-Weise laufen. Wir wechseln sequenziell zwischen Vorhersagen und Modell-Updates ab. Währenddessen aktualisieren wir eine Leistungsmetrik, um zu sehen, wie gut das Modell abschneidet.

root@kitploit:~
>>> from river import compose
>>> from river import linear_model
>>> from river import metrics
>>> from river import preprocessing

>>> model = compose.Pipeline(
...     preprocessing.StandardScaler(),
...     linear_model.LogisticRegression()
... )

>>> metric = metrics.Accuracy()

>>> for x, y in dataset:
...     y_pred = model.predict_one(x)      # make a prediction
...     metric.update(y, y_pred)           # update the metric
...     model.learn_one(x, y)              # make the model learn

>>> metric
Accuracy: 89.28%

Natürlich ist das nur ein konstruiertes Beispiel. Wir laden Sie ein, den Abschnitt Einführung in der Dokumentation für ein ausführlicheres Tutorial anzusehen.

🛠 Installation

River ist für Python 3.11 und höher ausgelegt. Die Installation kann mit pip erfolgen:

root@kitploit:~
pip install river

Es sind Wheels verfügbar für Linux, MacOS und Windows. Das bedeutet, dass Sie River höchstwahrscheinlich nicht aus dem Quellcode erstellen müssen.

Das zentrale Online-Interface von River (learn_one / predict_one) hat keine pandas-Abhängigkeit. Das Mini-Batch-Interface (learn_many, predict_many, predict_proba_many, transform_many) basiert auf pandas und ist optional:

root@kitploit:~
pip install "river[pandas]"

Sie können die neueste Entwicklungsversion wie folgt von GitHub installieren:

root@kitploit:~
pip install git+https://github.com/online-ml/river --upgrade
pip install git+ssh://[email protected]/online-ml/river.git --upgrade  # using SSH

Diese Methode erfordert, dass Cython und Rust auf Ihrem Rechner installiert sind.

🔮 Funktionen

River bietet Online-Implementierungen der folgenden Algorithmenfamilien:

  • Lineare Modelle, mit einer breiten Palette an Optimierern
  • Entscheidungsbäume und Random Forests
  • (Approximative) nächste Nachbarn
  • Anomalieerkennung
  • Drifterkennung
  • Empfehlungssysteme
  • Zeitreihenvorhersage
  • Bandits
  • Faktorisierungsmaschinen
  • Lernen mit unbalancierten Daten
  • Clustering
  • Bagging/Boosting/Stacking
  • Aktives Lernen

River bietet außerdem weitere Online-Werkzeuge:

  • Merkmalsextraktion und -auswahl
  • Online-Statistiken und -Metriken
  • Vorverarbeitung
  • Integrierte Datensätze
  • Progressive Modellvalidierung
  • Modell-Pipelines

Eine umfassende Übersicht finden Sie in der API.

🤔 Sollte ich River verwenden?

Sie sollten sich fragen, ob Sie Online-Machine-Learning benötigen. Die Antwort ist wahrscheinlich nein. In den meisten Fällen erledigt Batch-Lernen die Aufgabe völlig ausreichend. Ein Online-Ansatz könnte passend sein, wenn:

  • Sie ein Modell möchten, das aus neuen Daten lernen kann, ohne frühere Daten erneut durchzugehen.
  • Sie ein Modell möchten, das gegenüber Concept Drift robust ist.
  • Sie Ihr Modell auf eine Weise entwickeln möchten, die näher an der Produktionspraxis liegt, die normalerweise ereignisbasiert ist.

Einige Besonderheiten von River sind:

  • Es legt mehr Wert auf Klarheit und Benutzerfreundlichkeit als auf Leistung.
  • Es ist sehr schnell bei der Verarbeitung einer Stichprobe nach der anderen. Probieren Sie es aus, Sie werden sehen.
  • Es lässt sich gut in das restliche Python-Ökosystem integrieren.

🔗 Nützliche Links

  • Dokumentation
  • Paket-Releases
  • awesome-online-machine-learning
  • Präsentation 2022 bei GAIA
  • Online Clustering: Algorithms, Evaluation, Metrics, Applications and Benchmarking von der KDD'22.

👐 Mitwirken

Sie können auf jede beliebige Weise mitwirken; wir sind immer offen für neue Ideen und Ansätze.

  • Eröffnen Sie eine Diskussion, wenn Sie irgendeine Frage oder Anfrage haben. Es ist nützlicher, Ihre Frage öffentlich zu stellen, als uns eine private E-Mail zu schicken. Es wird auch ermutigt, vor dem Mitwirken eine Diskussion zu eröffnen, damit alle auf dem gleichen Stand sind und unnötige Arbeit vermieden wird.
  • Sie sind herzlich eingeladen, ein Issue zu eröffnen, wenn Sie glauben, einen Fehler oder ein Leistungsproblem entdeckt zu haben.
  • Unsere Roadmap ist öffentlich. Sie können gerne an allem arbeiten, was Ihnen ins Auge fällt, oder Vorschläge machen.

Bitte lesen Sie die Beitragsrichtlinien, wenn Sie Änderungen an der Codebasis vornehmen möchten.

🤝 Zugehörigkeiten

affiliations

💬 Zitation

Wenn River für Sie nützlich war und Sie es in einer wissenschaftlichen Veröffentlichung zitieren möchten, verweisen Sie bitte auf das bei JMLR veröffentlichte Paper:

root@kitploit:~
@article{montiel2021river,
  title={River: machine learning for streaming data in Python},
  author={Montiel, Jacob and Halford, Max and Mastelini, Saulo Martiello
          and Bolmier, Geoffrey and Sourty, Raphael and Vaysse, Robin and Zouitine, Adil
          and Gomes, Heitor Murilo and Read, Jesse and Abdessalem, Talel and others},
  year={2021}
}

📝 Lizenz

River ist freie und Open-Source-Software, lizenziert unter der 3-Klausel-BSD-Lizenz.

Tool herunterladen