Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
river — Libreria di machine learning in streaming per l'apprendimento incrementale su flussi di dati, con stimatori online, rilevamento di drift e anomalie, pipeline, metriche e dataset integrati per Python. | Kitploit
Strumenti/GitHubGitHub/online-ml/river
Utilità e FrameworkMachine LearningRilevamento di Anomalie
GitHubonline-ml/river

river

Libreria di machine learning in streaming per l'apprendimento incrementale su flussi di dati, con stimatori online, rilevamento di drift e anomalie, pipeline, metriche e dataset integrati per Python.

Vedi RepositorySito web
5.9k6571 giorno faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

river_logo

code-quality documentation pypi pepy mypy bsd_3_license discord


River è una libreria Python per machine learning online. Il suo obiettivo è essere la libreria più user-friendly per fare machine learning su dati in streaming. River è il risultato di una fusione tra creme e scikit-multiflow.

⚡️ Avvio rapido

Come rapido esempio, addestreremo una regressione logistica per classificare il dataset di phishing dei siti web. Ecco uno sguardo alla prima osservazione del dataset.

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

Ora eseguiamo il modello sul dataset in modalità streaming. Intervalliamo in sequenza le predizioni e gli aggiornamenti del modello. Nel frattempo, aggiorniamo una metrica di performance per vedere quanto bene sta andando il modello.

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%

Ovviamente, questo è solo un esempio fittizio. Ti invitiamo a consultare la sezione introduzione della documentazione per un tutorial più approfondito.

🛠 Installazione

River è pensato per funzionare con Python 3.11 e versioni successive. L'installazione può essere effettuata con pip:

root@kitploit:~
pip install river

Sono disponibili wheel per Linux, macOS e Windows. Questo significa che molto probabilmente non dovrai compilare River dal sorgente.

L'interfaccia online principale di River (learn_one / predict_one) non ha dipendenze da pandas. L'interfaccia mini-batch (learn_many, predict_many, predict_proba_many, transform_many) è basata su pandas ed è opzionale:

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

Puoi installare l'ultima versione di sviluppo da GitHub in questo modo:

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

Questo metodo richiede che Cython e Rust siano installati sulla tua macchina.

🔮 Funzionalità

River fornisce implementazioni online delle seguenti famiglie di algoritmi:

  • Modelli lineari, con un'ampia gamma di ottimizzatori
  • Alberi decisionali e random forest
  • Vicini più prossimi (approssimati)
  • Rilevamento di anomalie
  • Rilevamento del drift
  • Sistemi di raccomandazione
  • Previsione di serie temporali
  • Bandits
  • Macchine a fattorizzazione
  • Apprendimento su dati sbilanciati
  • Clustering
  • Bagging/boosting/stacking
  • Apprendimento attivo

River offre anche altre utility online:

  • Estrazione e selezione delle feature
  • Statistiche e metriche online
  • Preprocessing
  • Dataset integrati
  • Validazione progressiva dei modelli
  • Pipeline di modelli

Dai un'occhiata alle API per una panoramica completa

🤔 Dovrei usare River?

Devi chiederti se ti serve il machine learning online. La risposta è probabilmente no. Nella maggior parte dei casi l'apprendimento batch fa perfettamente al caso tuo. Un approccio online potrebbe essere adatto se:

  • Vuoi un modello che possa imparare da nuovi dati senza dover rielaborare i dati passati.
  • Vuoi un modello robusto al concept drift.
  • Vuoi sviluppare il tuo modello in un modo più vicino a ciò che accade in un contesto di produzione, che di solito è basato su eventi.

Alcune specificità di River sono:

  • Punta sulla chiarezza e sull'esperienza utente, più che sulle prestazioni.
  • È molto veloce nell'elaborare un campione alla volta. Provalo, vedrai.
  • Si integra bene con il resto dell'ecosistema Python.

🔗 Link utili

  • Documentazione
  • Rilasci del pacchetto
  • awesome-online-machine-learning
  • Presentazione del 2022 al GAIA
  • Online Clustering: Algorithms, Evaluation, Metrics, Applications and Benchmarking from KDD'22.

👐 Contributi

Sentiti libero di contribuire come preferisci, siamo sempre aperti a nuove idee e approcci.

  • Apri una discussione se hai qualsiasi domanda o richiesta. È più utile porre la tua domanda in pubblico piuttosto che inviarci un'email privata. È inoltre consigliato aprire una discussione prima di contribuire, così tutti sono allineati e si evita lavoro non necessario.
  • Sentiti libero di aprire una issue se pensi di aver individuato un bug o un problema di prestazioni.
  • La nostra roadmap è pubblica. Sentiti libero di lavorare su qualsiasi cosa attiri la tua attenzione, o di fare suggerimenti.

Dai un'occhiata alle linee guida per i contributi se vuoi apportare modifiche al codice.

🤝 Affiliazioni

affiliations

💬 Citazione

Se River ti è stato utile e desideri citarlo in una pubblicazione scientifica, fai riferimento all'articolo pubblicato su 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}
}

📝 Licenza

River è un software libero e open-source distribuito sotto la licenza BSD a 3 clausole.

Scarica lo strumento