Sobre o projeto
River é uma biblioteca Python de código aberto dedicada ao aprendizado de máquina online, ou seja, aprender a partir de fluxos de dados uma observação por vez. Ela é apresentada como o resultado da fusão dos projetos creme e scikit-multiflow, e seu objetivo declarado é ser uma biblioteca amigável para aprendizado de máquina em dados de streaming.
A interface central é incremental: os modelos expõem learn_one e predict_one, permitindo que previsões e atualizações sejam intercaladas conforme cada amostra chega, sem revisitar dados passados. Um exemplo de início rápido treina uma regressão logística no conjunto de dados Phishing integrado, usando um pipeline de StandardScaler seguido por LogisticRegression, enquanto uma métrica de Acurácia é atualizada junto com o modelo.
A instalação é feita via pip (pip install river), com wheels publicados para Linux, macOS e Windows. O projeto tem como alvo Python 3.11 ou superior. A interface online central não depende de pandas; uma interface de mini-lote (learn_many, predict_many, predict_proba_many, transform_many) é construída sobre pandas e é opcional, ativada pelo extra river[pandas]. Uma versão de desenvolvimento pode ser instalada a partir do GitHub, exigindo Cython e Rust.
As famílias de algoritmos cobertas incluem modelos lineares com uma variedade de otimizadores, árvores de decisão e florestas aleatórias, vizinhos mais próximos aproximados, detecção de anomalias, detecção de deriva, sistemas de recomendação, previsão de séries temporais, bandits, máquinas de fatoração, aprendizado desbalanceado, agrupamento, bagging/boosting/stacking e aprendizado ativo. Utilitários online adicionais incluem extração e seleção de características, estatísticas e métricas online, pré-processamento, conjuntos de dados integrados, validação progressiva de modelos e pipelines de modelos.
O README enquadra explicitamente quando o aprendizado online é apropriado: quando um modelo deve aprender com novos dados sem revisitar o passado, quando a robustez à deriva conceitual importa, ou quando o desenvolvimento deve se assemelhar a ambientes de produção baseados em eventos. Também observa que o River enfatiza clareza e experiência do usuário sobre desempenho, é rápido ao processar uma amostra por vez e integra-se ao restante do ecossistema Python.
A documentação está hospedada em riverml.xyz, com links para lançamentos de pacotes, uma lista awesome-online-machine-learning, uma apresentação GAIA de 2022 e um artigo KDD'22 sobre agrupamento online. O projeto é licenciado sob BSD 3-cláusulas, tem um roteiro público e recebe discussões, problemas e contribuições. Um artigo JMLR está disponível para citação.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.