%global _empty_manifest_terminate_build 0 Name: python-river Version: 0.15.0 Release: 1 Summary: Online machine learning in Python License: BSD-3 URL: https://github.com/online-ml/river Source0: https://mirrors.nju.edu.cn/pypi/web/packages/1f/f1/5da6e6e625e789767bccc005058079ceb6a276c9ac22e767e3eb61e8ac08/river-0.15.0.tar.gz Requires: python3-numpy Requires: python3-scipy Requires: python3-pandas Requires: python3-dataclasses Requires: python3-numpy Requires: python3-scipy Requires: python3-pandas Requires: python3-scikit-learn Requires: python3-scipy Requires: python3-torch Requires: python3-vowpalwabbit Requires: python3-dominate Requires: python3-slugify Requires: python3-watermark Requires: python3-river-torch Requires: python3-numpy Requires: python3-scipy Requires: python3-pandas Requires: python3-scikit-learn Requires: python3-sqlalchemy Requires: python3-vaex Requires: python3-deep-river Requires: python3-numpy Requires: python3-scipy Requires: python3-pandas Requires: python3-black Requires: python3-graphviz Requires: python3-gym Requires: python3-isort Requires: python3-matplotlib Requires: python3-mypy Requires: python3-pre-commit Requires: python3-pytest Requires: python3-pyupgrade Requires: python3-ruff Requires: python3-scikit-learn Requires: python3-sqlalchemy Requires: python3-sympy Requires: python3-numpy Requires: python3-scipy Requires: python3-pandas Requires: python3-dominate Requires: python3-flask Requires: python3-ipykernel Requires: python3-jupyter-client Requires: python3-mike Requires: python3-mkdocs Requires: python3-mkdocs-awesome-pages-plugin Requires: python3-mkdocs-charts-plugin Requires: python3-mkdocs-material Requires: python3-nbconvert Requires: python3-slugify Requires: python3-spacy Requires: python3-watermark Requires: python3-river-extra Requires: python3-river-torch %description
River is a Python library for online machine learning. It aims to be the most user-friendly library for doing machine learning on streaming data. River is the result of a merger between creme and scikit-multiflow.
## ⚡️ Quickstart As a quick example, we'll train a logistic regression to classify the [website phishing dataset](http://archive.ics.uci.edu/ml/datasets/Website+Phishing). Here's a look at the first observation in the dataset. ```python >>> 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 ``` Now let's run the model on the dataset in a streaming fashion. We sequentially interleave predictions and model updates. Meanwhile, we update a performance metric to see how well the model is doing. ```python >>> 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 = metric.update(y, y_pred) # update the metric ... model = model.learn_one(x, y) # make the model learn >>> metric Accuracy: 89.20% ``` Of course, this is just a contrived example. We welcome you to check the [introduction](https://riverml.xyz/dev/introduction/installation/) section of the documentation for a more thorough tutorial. ## 🛠 Installation River is intended to work with **Python 3.8 and above**. Installation can be done with `pip`: ```sh pip install river ``` There are [wheels available](https://pypi.org/project/river/#files) for Linux, MacOS, and Windows, which means that you most probably won't have to build River from source. You can install the latest development version from GitHub as so: ```sh pip install git+https://github.com/online-ml/river --upgrade ``` Or, through SSH: ```sh pip install git+ssh://git@github.com/online-ml/river.git --upgrade ``` ## 🔮 Features - Linear models with a wide array of optimizers - Nearest neighbors, decision trees, naïve Bayes - Anomaly detection - Drift detection - Recommender systems - Time series forecasting - Imbalanced learning - Clustering - Feature extraction and selection - Online statistics and metrics - Built-in datasets - Progressive model validation - Model pipelines as a first-class citizen - Check out [the API](https://riverml.xyz/latest/api/overview/) for a comprehensive overview ## 🤔 Should I be using River? You should ask yourself if you need online machine learning. The answer is likely no. Most of the time batch learning does the job just fine. An online approach might fit the bill if: - You want a model that can learn from new data without having to revisit past data. - You want a model which is robust to [concept drift](https://www.wikiwand.com/en/Concept_drift). - You want to develop your model in a way that is closer to what occurs in a production context, which is usually event-based. Some specificities of River are that: - It focuses on clarity and user experience, more so than performance. - It's very fast at processing one sample at a time. Try it, you'll see. - It plays nicely with the rest of Python's ecosystem. ## 🔗 Useful links - [Documentation](https://riverml.xyz) - [Package releases](https://pypi.org/project/river/#history) - [awesome-online-machine-learning](https://github.com/online-ml/awesome-online-machine-learning) - [2022 presentation at GAIA](https://www.youtube.com/watch?v=nzFTmJnIakk&list=PLIU25-FciwNaz5PqWPiHmPCMOFYoEsJ8c&index=5) - [Online Clustering: Algorithms, Evaluation, Metrics, Applications and Benchmarking](https://dl.acm.org/doi/10.1145/3534678.3542600) from [KDD'22](https://kdd.org/kdd2022/). ## 👐 Contributing Feel free to contribute in any way you like, we're always open to new ideas and approaches. - [Open a discussion](https://github.com/online-ml/river/discussions/new) if you have any question or enquiry whatsoever. It's more useful to ask your question in public rather than sending us a private email. It's also encouraged to open a discussion before contributing, so that everyone is aligned and unnecessary work is avoided. - Feel welcome to [open an issue](https://github.com/online-ml/river/issues/new/choose) if you think you've spotted a bug or a performance issue. - Our [roadmap](https://github.com/orgs/online-ml/projects/3?query=is%3Aopen+sort%3Aupdated-desc) is public. Feel free to work on anything that catches your eye, or to make suggestions. Please check out the [contribution guidelines](https://github.com/online-ml/river/blob/main/CONTRIBUTING.md) if you want to bring modifications to the code base. ## 🤝 Affiliations
River is a Python library for online machine learning. It aims to be the most user-friendly library for doing machine learning on streaming data. River is the result of a merger between creme and scikit-multiflow.
## ⚡️ Quickstart As a quick example, we'll train a logistic regression to classify the [website phishing dataset](http://archive.ics.uci.edu/ml/datasets/Website+Phishing). Here's a look at the first observation in the dataset. ```python >>> 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 ``` Now let's run the model on the dataset in a streaming fashion. We sequentially interleave predictions and model updates. Meanwhile, we update a performance metric to see how well the model is doing. ```python >>> 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 = metric.update(y, y_pred) # update the metric ... model = model.learn_one(x, y) # make the model learn >>> metric Accuracy: 89.20% ``` Of course, this is just a contrived example. We welcome you to check the [introduction](https://riverml.xyz/dev/introduction/installation/) section of the documentation for a more thorough tutorial. ## 🛠 Installation River is intended to work with **Python 3.8 and above**. Installation can be done with `pip`: ```sh pip install river ``` There are [wheels available](https://pypi.org/project/river/#files) for Linux, MacOS, and Windows, which means that you most probably won't have to build River from source. You can install the latest development version from GitHub as so: ```sh pip install git+https://github.com/online-ml/river --upgrade ``` Or, through SSH: ```sh pip install git+ssh://git@github.com/online-ml/river.git --upgrade ``` ## 🔮 Features - Linear models with a wide array of optimizers - Nearest neighbors, decision trees, naïve Bayes - Anomaly detection - Drift detection - Recommender systems - Time series forecasting - Imbalanced learning - Clustering - Feature extraction and selection - Online statistics and metrics - Built-in datasets - Progressive model validation - Model pipelines as a first-class citizen - Check out [the API](https://riverml.xyz/latest/api/overview/) for a comprehensive overview ## 🤔 Should I be using River? You should ask yourself if you need online machine learning. The answer is likely no. Most of the time batch learning does the job just fine. An online approach might fit the bill if: - You want a model that can learn from new data without having to revisit past data. - You want a model which is robust to [concept drift](https://www.wikiwand.com/en/Concept_drift). - You want to develop your model in a way that is closer to what occurs in a production context, which is usually event-based. Some specificities of River are that: - It focuses on clarity and user experience, more so than performance. - It's very fast at processing one sample at a time. Try it, you'll see. - It plays nicely with the rest of Python's ecosystem. ## 🔗 Useful links - [Documentation](https://riverml.xyz) - [Package releases](https://pypi.org/project/river/#history) - [awesome-online-machine-learning](https://github.com/online-ml/awesome-online-machine-learning) - [2022 presentation at GAIA](https://www.youtube.com/watch?v=nzFTmJnIakk&list=PLIU25-FciwNaz5PqWPiHmPCMOFYoEsJ8c&index=5) - [Online Clustering: Algorithms, Evaluation, Metrics, Applications and Benchmarking](https://dl.acm.org/doi/10.1145/3534678.3542600) from [KDD'22](https://kdd.org/kdd2022/). ## 👐 Contributing Feel free to contribute in any way you like, we're always open to new ideas and approaches. - [Open a discussion](https://github.com/online-ml/river/discussions/new) if you have any question or enquiry whatsoever. It's more useful to ask your question in public rather than sending us a private email. It's also encouraged to open a discussion before contributing, so that everyone is aligned and unnecessary work is avoided. - Feel welcome to [open an issue](https://github.com/online-ml/river/issues/new/choose) if you think you've spotted a bug or a performance issue. - Our [roadmap](https://github.com/orgs/online-ml/projects/3?query=is%3Aopen+sort%3Aupdated-desc) is public. Feel free to work on anything that catches your eye, or to make suggestions. Please check out the [contribution guidelines](https://github.com/online-ml/river/blob/main/CONTRIBUTING.md) if you want to bring modifications to the code base. ## 🤝 Affiliations
River is a Python library for online machine learning. It aims to be the most user-friendly library for doing machine learning on streaming data. River is the result of a merger between creme and scikit-multiflow.
## ⚡️ Quickstart As a quick example, we'll train a logistic regression to classify the [website phishing dataset](http://archive.ics.uci.edu/ml/datasets/Website+Phishing). Here's a look at the first observation in the dataset. ```python >>> 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 ``` Now let's run the model on the dataset in a streaming fashion. We sequentially interleave predictions and model updates. Meanwhile, we update a performance metric to see how well the model is doing. ```python >>> 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 = metric.update(y, y_pred) # update the metric ... model = model.learn_one(x, y) # make the model learn >>> metric Accuracy: 89.20% ``` Of course, this is just a contrived example. We welcome you to check the [introduction](https://riverml.xyz/dev/introduction/installation/) section of the documentation for a more thorough tutorial. ## 🛠 Installation River is intended to work with **Python 3.8 and above**. Installation can be done with `pip`: ```sh pip install river ``` There are [wheels available](https://pypi.org/project/river/#files) for Linux, MacOS, and Windows, which means that you most probably won't have to build River from source. You can install the latest development version from GitHub as so: ```sh pip install git+https://github.com/online-ml/river --upgrade ``` Or, through SSH: ```sh pip install git+ssh://git@github.com/online-ml/river.git --upgrade ``` ## 🔮 Features - Linear models with a wide array of optimizers - Nearest neighbors, decision trees, naïve Bayes - Anomaly detection - Drift detection - Recommender systems - Time series forecasting - Imbalanced learning - Clustering - Feature extraction and selection - Online statistics and metrics - Built-in datasets - Progressive model validation - Model pipelines as a first-class citizen - Check out [the API](https://riverml.xyz/latest/api/overview/) for a comprehensive overview ## 🤔 Should I be using River? You should ask yourself if you need online machine learning. The answer is likely no. Most of the time batch learning does the job just fine. An online approach might fit the bill if: - You want a model that can learn from new data without having to revisit past data. - You want a model which is robust to [concept drift](https://www.wikiwand.com/en/Concept_drift). - You want to develop your model in a way that is closer to what occurs in a production context, which is usually event-based. Some specificities of River are that: - It focuses on clarity and user experience, more so than performance. - It's very fast at processing one sample at a time. Try it, you'll see. - It plays nicely with the rest of Python's ecosystem. ## 🔗 Useful links - [Documentation](https://riverml.xyz) - [Package releases](https://pypi.org/project/river/#history) - [awesome-online-machine-learning](https://github.com/online-ml/awesome-online-machine-learning) - [2022 presentation at GAIA](https://www.youtube.com/watch?v=nzFTmJnIakk&list=PLIU25-FciwNaz5PqWPiHmPCMOFYoEsJ8c&index=5) - [Online Clustering: Algorithms, Evaluation, Metrics, Applications and Benchmarking](https://dl.acm.org/doi/10.1145/3534678.3542600) from [KDD'22](https://kdd.org/kdd2022/). ## 👐 Contributing Feel free to contribute in any way you like, we're always open to new ideas and approaches. - [Open a discussion](https://github.com/online-ml/river/discussions/new) if you have any question or enquiry whatsoever. It's more useful to ask your question in public rather than sending us a private email. It's also encouraged to open a discussion before contributing, so that everyone is aligned and unnecessary work is avoided. - Feel welcome to [open an issue](https://github.com/online-ml/river/issues/new/choose) if you think you've spotted a bug or a performance issue. - Our [roadmap](https://github.com/orgs/online-ml/projects/3?query=is%3Aopen+sort%3Aupdated-desc) is public. Feel free to work on anything that catches your eye, or to make suggestions. Please check out the [contribution guidelines](https://github.com/online-ml/river/blob/main/CONTRIBUTING.md) if you want to bring modifications to the code base. ## 🤝 Affiliations