Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
river — Biblioteca de aprendizaje automático en streaming para aprendizaje incremental sobre flujos de datos, que proporciona estimadores en línea, detección de deriva y anomalías, pipelines, métricas y conjuntos de datos integrados para Python. | Kitploit
Herramientas/GitHubGitHub/online-ml/river
Utilidades y FrameworksAprendizaje AutomáticoDetección de Anomalías
GitHubonline-ml/river

river

Biblioteca de aprendizaje automático en streaming para aprendizaje incremental sobre flujos de datos, que proporciona estimadores en línea, detección de deriva y anomalías, pipelines, métricas y conjuntos de datos integrados para Python.

Ver RepositorioSitio web
5.9k657hace 2 díasRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

river_logo

code-quality documentation pypi pepy mypy bsd_3_license discord


River es una biblioteca de Python para el aprendizaje automático en línea. Su objetivo es ser la biblioteca más fácil de usar para hacer aprendizaje automático con datos en streaming. River es el resultado de la fusión de creme y scikit-multiflow.

⚡️ Inicio rápido

Como ejemplo rápido, entrenaremos una regresión logística para clasificar el conjunto de datos de phishing de sitios web. Aquí tienes una mirada a la primera observación del conjunto de datos.

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

Ahora ejecutemos el modelo sobre el conjunto de datos de forma continua. Intercalamos secuencialmente las predicciones y las actualizaciones del modelo. Mientras tanto, actualizamos una métrica de rendimiento para ver cómo le está yendo al modelo.

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%

Por supuesto, esto es solo un ejemplo sencillo. Te invitamos a revisar la sección de introducción de la documentación para un tutorial más completo.

🛠 Instalación

River está pensado para funcionar con Python 3.11 y superior. La instalación se puede realizar con pip:

root@kitploit:~
pip install river

Hay ruedas (wheels) disponibles para Linux, MacOS y Windows. Esto significa que probablemente no tendrás que compilar River desde el código fuente.

La interfaz en línea principal de River (learn_one / predict_one) no tiene dependencia de pandas. La interfaz de mini-lotes (learn_many, predict_many, predict_proba_many, transform_many) está construida sobre pandas y es opcional:

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

Puedes instalar la última versión de desarrollo desde GitHub de la siguiente manera:

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

Este método requiere tener Cython y Rust instalados en tu máquina.

🔮 Características

River proporciona implementaciones en línea de las siguientes familias de algoritmos:

  • Modelos lineales, con una amplia variedad de optimizadores
  • Árboles de decisión y bosques aleatorios
  • Vecinos más cercanos (aproximados)
  • Detección de anomalías
  • Detección de deriva (drift)
  • Sistemas de recomendación
  • Predicción de series temporales
  • Bandidos (bandits)
  • Máquinas de factorización
  • Aprendizaje desequilibrado
  • Agrupamiento (clustering)
  • Bagging/boosting/stacking
  • Aprendizaje activo

River también proporciona otras utilidades en línea:

  • Extracción y selección de características
  • Estadísticas y métricas en línea
  • Preprocesamiento
  • Conjuntos de datos integrados
  • Validación progresiva de modelos
  • Pipelines de modelos

Consulta la API para obtener una visión general completa.

🤔 ¿Debería estar usando River?

Deberías preguntarte si necesitas aprendizaje automático en línea. Lo más probable es que la respuesta sea no. La mayoría de las veces el aprendizaje por lotes es más que suficiente. Un enfoque en línea puede ser adecuado si:

  • Quieres un modelo que pueda aprender de nuevos datos sin tener que revisitar datos anteriores.
  • Quieres un modelo robusto a la deriva de concepto.
  • Quieres desarrollar tu modelo de una manera más cercana a lo que ocurre en un contexto de producción, que normalmente está basado en eventos.

Algunas particularidades de River son:

  • Se centra en la claridad y la experiencia de usuario, más que en el rendimiento.
  • Es muy rápido procesando una muestra a la vez. Pruébalo y lo verás.
  • Se integra bien con el resto del ecosistema de Python.

🔗 Enlaces útiles

  • Documentación
  • Publicaciones de paquetes
  • awesome-online-machine-learning
  • Presentación de 2022 en GAIA
  • Online Clustering: Algorithms, Evaluation, Metrics, Applications and Benchmarking de KDD'22.

👐 Contribuciones

Siéntete libre de contribuir de la forma que quieras; siempre estamos abiertos a nuevas ideas y enfoques.

  • Abre un debate si tienes cualquier pregunta o consulta. Es más útil hacer tu pregunta en público que enviarnos un correo privado. También recomendamos abrir un debate antes de contribuir, para que todos estén alineados y se evite trabajo innecesario.
  • No dudes en abrir un issue si crees que has encontrado un error o un problema de rendimiento.
  • Nuestra hoja de ruta es pública. Siéntete libre de trabajar en cualquier cosa que te llame la atención o de hacer sugerencias.

Por favor, consulta las pautas de contribución si quieres realizar modificaciones en la base de código.

🤝 Afiliaciones

affiliations

💬 Citación

Si River te ha sido útil y deseas citarlo en una publicación científica, consulta el artículo publicado en 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}
}

📝 Licencia

River es un software libre y de código abierto bajo la licencia BSD de 3 cláusulas.

Descargar herramienta