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 en los datos de transmisión. El río es el resultado de una fusión entre Creme y Scikit-Multiflow.
Como ejemplo rápido, capacitaremos una regresión logística para clasificar el conjunto de datos de phishing del sitio web. Aquí hay un vistazo a la primera observación en el conjunto de datos.
>>> de PPRint Import PPrint >>> de River Import DataSets >>> DataSet = DataSets.phishing () >>> Para x, y en DataSet: ... Pprint (x) ... imprimir (y) ... Break {'Age_of_Domain': 1, 'Anchor_from_other_omlain': 0.0, 'vacía_server_form_handler': 0.0, 'https': 0.0, 'ip_in_url': 1, 'is_popular': 0.5, 'long_url': 1.0, 'pop_window' : 0.0, 'request_from_other_domain': 0.0} Verdadero
Ahora ejecutemos el modelo en el conjunto de datos de forma transmisión. Intereleamos secuencialmente las predicciones y las actualizaciones del modelo. Mientras tanto, actualizamos una métrica de rendimiento para ver qué tan bien está funcionando el modelo.
>>> Desde River Imponing COMPOSE >>> de River Import lineal_model >>> de River Import Metrics >>> del preprocesamiento de importación de río >>> modelo = compose.pipeline ( ... preprocesamiento.sandardscaler (), ... lineal_model.LogisticRegression () ...) >>> Metric = Metrics.accuracy () >>> para x, y en el conjunto de datos: ... y_pred = model.predict_one (x) # Haz una predicción ... métrica : 89.28%
Por supuesto, este es solo un ejemplo artificial. Le damos la bienvenida para consultar la sección de introducción de la documentación para obtener un tutorial más exhaustivo.
River tiene la intención de trabajar con Python 3.8 y más . La instalación se puede hacer con pip
:
PIP Instale River
Hay ruedas disponibles para Linux, MacOS y Windows. Esto significa que probablemente no tendrá que construir río desde la fuente.
Puede instalar la última versión de desarrollo de GitHub como así:
PIP install git+https: //github.com/online-ml/river-upgrade PIP install git+ssh: //[email protected]/online-ml/river.git-upgrade # usando ssh
Este método requiere tener instalados Cython y Rust en su máquina.
River proporciona implementaciones en línea de la siguiente familia de algoritmos:
Modelos lineales, con una amplia gama de optimizadores
Árboles de decisión y bosques aleatorios
(Aproximado) vecinos más cercanos
Detección de anomalías
Detección de deriva
Sistemas de recomendación
Pronóstico de series de tiempo
Bandidos
Máquinas de factorización
Aprendizaje desequilibrado
Agrupación
Bolsas/impulso/apilamiento
Aprendizaje activo
River también ofrece otros servicios públicos 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 del modelo progresivo
Tuberías
Consulte la API para obtener una descripción completa
Debe preguntarse si necesita aprendizaje automático en línea. La respuesta es probable no. La mayoría de las veces el aprendizaje por lotes hace el trabajo bien. Un enfoque en línea podría adaptarse a la factura si:
Desea un modelo que pueda aprender de nuevos datos sin tener que revisar los datos pasados.
Desea un modelo que sea robusto para el concepto de deriva.
Desea desarrollar su modelo de una manera más cercana a lo que ocurre en un contexto de producción, que generalmente se basa en eventos.
Algunas especificidades del río son que:
Se centra en la claridad y la experiencia del usuario, más que el rendimiento.
Es muy rápido para procesar una muestra a la vez. Pruébalo, verás.
Juega bien con el resto del ecosistema de Python.
Documentación
Lanzamientos de paquetes
Impresionante aprendizaje
Presentación 2022 en Gaia
Agrupación en línea: algoritmos, evaluación, métricas, aplicaciones y evaluación comparativa de KDD'22.
Siéntase libre de contribuir de cualquier manera que desee, siempre estamos abiertos a nuevas ideas y enfoques.
Abra una discusión si tiene alguna pregunta o consulta alguna. Es más útil hacer su pregunta en público en lugar de enviarnos un correo electrónico privado. También se alienta a abrir una discusión antes de contribuir, de modo que todos estén alineados y se evite el trabajo innecesario.
Siéntase bienvenido a abrir un problema si cree que ha visto un error o un problema de rendimiento.
Nuestra hoja de ruta es pública. Siéntase libre de trabajar en cualquier cosa que le llame la atención o hacer sugerencias.
Consulte las pautas de contribución si desea traer modificaciones a la base del código.
Si River le ha sido útil, y le gustaría citarlo en una publicación científica, consulte el artículo publicado en JMLR:
@article {Montiel2021River, title = {River: aprendizaje automático para transmisión de datos en Python}, autor = {Montiel, Jacob y Halford, Max y Mastelini, Saulo Martiello y Bolmier, Geoffrey y Surty, Raphael y Vaysse, Robin y Zouitine, Adil. y Gomes, Heitor Murilo y Read, Jesse y Abdessalem, Talel y otros}, año = {2021}}
River es un software gratuito y de código abierto con licencia bajo la licencia BSD de 3 cláusulas.