River é uma biblioteca Python para aprendizado de máquina on -line. Ele pretende ser a biblioteca mais fácil de usar para fazer aprendizado de máquina nos dados de streaming. O rio é o resultado de uma fusão entre creme e scikit-multiflow.
Como exemplo rápido, treinaremos uma regressão logística para classificar o conjunto de dados de phishing do site. Aqui está uma olhada na primeira observação no conjunto de dados.
>>> De Pprint Import pprint >>> dos conjuntos de dados de importação de rios >>> DataSet = DataSets.phishing () >>> para x, y no conjunto de dados: ... pprint (x) ... impressão (y) ... Break {'Age_Of_Domain': 1, 'Anchor_from_other_Domain': 0.0, 'email_server_form_handler': 0.0, 'https': 0.0, 'ip_in_url': 1, 'is_popular': 0.5, 'long_url': 1.0, 'POPUE_WIND' : 0.0, 'request_from_other_domain': 0.0} true
Agora vamos executar o modelo no conjunto de dados de maneira a streaming. Interprecamos sequencialmente as previsões e as atualizações de modelos. Enquanto isso, atualizamos uma métrica de desempenho para ver como o modelo está indo.
>>> da importação de rios compor >>> De importação de rios linear_model >>> de métricas de importação de rios >>> do pré -processamento de importação do rio >>> modelo = compuse.pipline ( ... pré -processamento.standardsCaler (), ... linear_model.logisticRegression () ...) >>> métrica = métricas.accuracy () >>> para x, y no conjunto de dados: ... y_pred = model.predict_one (x) # faça uma previsão ... metric.update (y, y_pred) # atualize a métrica ... model.learn_one (x, y) # faça o modelo aprender >>> : 89,28%
Claro, este é apenas um exemplo artificial. Congratulamo -nos com você em verificar a seção de introdução da documentação para um tutorial mais completo.
O rio pretende trabalhar com o Python 3.8 e acima . A instalação pode ser feita com pip
:
Pip Install River
Existem rodas disponíveis para Linux, MacOS e Windows. Isso significa que você provavelmente não terá que construir o rio a partir da fonte.
Você pode instalar a versão mais recente de desenvolvimento do GitHub como assim:
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 requer que o Cython e a ferrugem instalados em sua máquina.
River fornece implementações on -line da seguinte família de algoritmos:
Modelos lineares, com uma ampla variedade de otimizadores
Árvores de decisão e florestas aleatórias
(Aproximadamente) vizinhos mais próximos
Detecção de anomalia
Detecção de deriva
Sistemas de recomendação
Previsão de séries temporais
Bandidos
Máquinas de fatorização
Aprendizado desequilibrado
Clustering
Ensacamento/reforço/empilhamento
Aprendizado ativo
River também fornece outros utilitários on -line:
Extração e seleção de recursos
Estatísticas e métricas online
Pré -processamento
Conjuntos de dados embutidos
Validação do modelo progressivo
Model Pipelines
Confira a API para obter uma visão geral abrangente
Você deve se perguntar se precisa de aprendizado de máquina on -line. A resposta provavelmente não. Na maioria das vezes, a aprendizagem em lote faz o trabalho muito bem. Uma abordagem online pode se encaixar na conta se:
Você deseja um modelo que possa aprender com novos dados sem precisar revisitar dados anteriores.
Você quer um modelo que seja robusto para a deriva do conceito.
Você deseja desenvolver seu modelo de uma maneira mais próxima do que ocorre em um contexto de produção, que geralmente é baseado em eventos.
Algumas especificidades do rio são aquilo:
Ele se concentra na clareza e experiência do usuário, mais do que desempenho.
É muito rápido em processar uma amostra de cada vez. Experimente, você verá.
Ele toca muito bem com o restante do ecossistema de Python.
Documentação
Lançamentos de pacotes
Awesome-online-Machine-Learning
2022 Apresentação em Gaia
Cluster online: algoritmos, avaliação, métricas, aplicativos e benchmarking do KDD'22.
Sinta -se à vontade para contribuir da maneira que desejar, estamos sempre abertos a novas idéias e abordagens.
Abra uma discussão se tiver alguma dúvida ou consulta. É mais útil fazer sua pergunta em público, em vez de nos enviar um e -mail privado. Também é incentivado a abrir uma discussão antes de contribuir, para que todos estejam alinhados e o trabalho desnecessário seja evitado.
Sinta -se bem -vindo a abrir um problema se achar que viu um bug ou um problema de desempenho.
Nosso roteiro é público. Sinta -se à vontade para trabalhar em qualquer coisa que chama sua atenção ou fazer sugestões.
Confira as diretrizes de contribuição se você deseja trazer modificações para a base de código.
Se River tiver sido útil para você e você gostaria de citar em uma publicação científica, consulte o artigo publicado no JMLR:
@Article {Montiel2021River, title = {River: Machine Learning for Streaming Data in Python}, Autor = {Montiel, Jacob e Halford, Max e Mastelini, Saulo Martiello e Bolmier, Geoffrey e Sourty, Raphael e Vays, robin e Zouitine, e Gomes, Heitor Murilo e leu, Jesse e Abdessalem, Talel e outros}, ano = {2021}}
O River é um software gratuito e de código aberto licenciado sob a licença BSD de 3 cláusulas.