Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
river — Bibliothèque d'apprentissage automatique en flux pour l'apprentissage incrémental sur des flux de données, fournissant des estimateurs en ligne, la détection de dérive et d'anomalies, des pipelines, des métriques et des jeux de données intégrés pour Python. | Kitploit
Outils/GitHubGitHub/online-ml/river
Utilitaires et FrameworksApprentissage AutomatiqueDétection d'Anomalies
GitHubonline-ml/river

river

Bibliothèque d'apprentissage automatique en flux pour l'apprentissage incrémental sur des flux de données, fournissant des estimateurs en ligne, la détection de dérive et d'anomalies, des pipelines, des métriques et des jeux de données intégrés pour Python.

Voir le dépôtSite web
5.9k657il y a 1 jourVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

river_logo

code-quality documentation pypi pepy mypy bsd_3_license discord


River est une bibliothèque Python pour l'apprentissage automatique en ligne. Elle a pour objectif d'être la bibliothèque la plus conviviale pour faire de l'apprentissage automatique sur des données en flux continu. River est le résultat d'une fusion entre creme et scikit-multiflow.

⚡️ Démarrage rapide

À titre d'exemple rapide, nous allons entraîner une régression logistique pour classer le jeu de données sur le phishing de sites web. Voici un aperçu de la première observation du jeu de données.

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

Exécutons maintenant le modèle sur le jeu de données de manière continue. Nous alternons séquentiellement les prédictions et les mises à jour du modèle. Pendant ce temps, nous mettons à jour une métrique de performance afin de voir comment le modèle se comporte.

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%

Bien sûr, ce n'est qu'un exemple artificiel. Nous vous invitons à consulter la section introduction de la documentation pour un tutoriel plus complet.

🛠 Installation

River est conçu pour fonctionner avec Python 3.11 et versions ultérieures. L'installation peut se faire avec pip :

root@kitploit:~
pip install river

Des wheels sont disponibles pour Linux, MacOS et Windows. Cela signifie que vous n'aurez très probablement pas à compiler River à partir des sources.

L'interface en ligne de base de River (learn_one / predict_one) ne dépend pas de pandas. L'interface par mini-lots (learn_many, predict_many, predict_proba_many, transform_many) est basée sur pandas et est optionnelle :

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

Vous pouvez installer la dernière version de développement depuis GitHub comme suit :

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

Cette méthode nécessite d'avoir Cython et Rust installés sur votre machine.

🔮 Fonctionnalités

River fournit des implémentations en ligne des familles d'algorithmes suivantes :

  • Modèles linéaires, avec un large éventail d'optimiseurs
  • Arbres de décision et forêts aléatoires
  • Plus proches voisins (approximatifs)
  • Détection d'anomalies
  • Détection de dérive (drift)
  • Systèmes de recommandation
  • Prévision de séries temporelles
  • Bandits
  • Machines de factorisation
  • Apprentissage déséquilibré
  • Clustering
  • Bagging/boosting/stacking
  • Apprentissage actif

River fournit également d'autres utilitaires en ligne :

  • Extraction et sélection de caractéristiques
  • Statistiques et métriques en ligne
  • Prétraitement
  • Jeux de données intégrés
  • Validation progressive de modèles
  • Pipelines de modèles

Consultez l'API pour une vue d'ensemble complète

🤔 Devrais-je utiliser River ?

Vous devriez vous demander si vous avez besoin d'apprentissage automatique en ligne. La réponse est probablement non. La plupart du temps, l'apprentissage par lots fait très bien l'affaire. Une approche en ligne pourrait convenir si :

  • Vous voulez un modèle capable d'apprendre à partir de nouvelles données sans avoir à revoir les données passées.
  • Vous voulez un modèle robuste à la dérive conceptuelle.
  • Vous souhaitez développer votre modèle d'une manière plus proche de ce qui se passe en contexte de production, qui est généralement basé sur des événements.

Parmi les spécificités de River :

  • Elle met l'accent sur la clarté et l'expérience utilisateur, plus que sur la performance.
  • Elle est très rapide pour traiter un échantillon à la fois. Essayez, vous verrez.
  • Elle s'intègre bien avec le reste de l'écosystème Python.

🔗 Liens utiles

  • Documentation
  • Versions publiées du paquet
  • awesome-online-machine-learning
  • Présentation 2022 à GAIA
  • Clustering en ligne : algorithmes, évaluation, métriques, applications et comparaison de KDD'22.

👐 Contribuer

N'hésitez pas à contribuer de la manière que vous souhaitez, nous sommes toujours ouverts aux nouvelles idées et approches.

  • Ouvrez une discussion si vous avez la moindre question. Il est plus utile de poser votre question en public plutôt que de nous envoyer un e-mail privé. Il est également recommandé d'ouvrir une discussion avant de contribuer, afin que tout le monde soit aligné et que les travaux inutiles soient évités.
  • N'hésitez pas à ouvrir une issue si vous pensez avoir repéré un bug ou un problème de performance.
  • Notre feuille de route est publique. N'hésitez pas à travailler sur tout ce qui vous attire, ou à faire des suggestions.

Merci de consulter les directives de contribution si vous souhaitez apporter des modifications au code.

🤝 Affiliations

affiliations

💬 Citation

Si River vous a été utile et que vous souhaitez la citer dans une publication scientifique, veuillez vous référer à l'article publié dans JMLR :

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}
}

📝 Licence

River est un logiciel libre et open source sous licence BSD à 3 clauses.

Télécharger l’outil