Riverは、オンライン機械学習用のPythonライブラリです。ストリーミングデータで機械学習を行うための最もユーザーフレンドリーなライブラリになることを目指しています。川は、クリームとScikit-Multiflowの合併の結果です。
簡単な例として、ロジスティック回帰をトレーニングして、ウェブサイトフィッシングデータセットを分類します。データセットの最初の観察結果をご覧ください。
>>> PPRINTインポートからpprint >>> river river Import Datasets >>> dataset = dataset.phishing()>>> x、y in dataset: ... pprint(x) ...印刷(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
次に、データセットでモデルをストリーミング方法で実行しましょう。予測とモデルの更新を順番にインターリーブします。一方、パフォーマンスメトリックを更新して、モデルがどれだけうまく機能しているかを確認します。
>>>川から輸入>>>川から輸入linear_model >>> ... preprocessing.standardscaler()、 ... linear_model.logisticRegression() ...)>>> metric = metrics.accuracy()>>> x、y in dataset: ... y_pred = model.predict_one(x)#prediction ... metric.update(y、y_pred)#metric ... model.learn_one(x、y)#modelを習得する>>> metricaccuracyを更新する:89.28%
もちろん、これは不自然な例に過ぎません。より徹底的なチュートリアルについては、ドキュメントの紹介セクションを確認してください。
Riverは、Python 3.8以上で協力することを目的としています。インストールはpip
で行うことができます:
ピップインストール川
Linux、MacOS、およびWindowsで利用できるホイールがあります。これは、おそらくソースから川を建設する必要がないことを意味します。
GitHubから最新の開発バージョンを次のようにインストールできます。
PIPインストールgit+https://github.com/online-ml/river-アップグレード pipインストールgit+ssh://[email protected]/online-ml/river.git-upgrade#を使用して
この方法では、マシンにCythonとRustを設置する必要があります。
Riverは、以下のアルゴリズムファミリのオンライン実装を提供します。
幅広いオプティマイザーを備えた線形モデル
決定木とランダムな森林
(おおよそ)最近隣人
異常検出
ドリフト検出
推奨システム
時系列予測
盗賊
因数分解マシン
不均衡な学習
クラスタリング
袋詰め/ブースト/スタッキング
積極的な学習
リバーは他のオンラインユーティリティも提供します:
機能の抽出と選択
オンライン統計とメトリック
前処理
内蔵データセット
プログレッシブモデルの検証
モデルパイプライン
包括的な概要については、APIをご覧ください
オンラインの機械学習が必要かどうかを自問する必要があります。答えはおそらくノーです。ほとんどの場合、バッチ学習は仕事をうまく行います。オンラインアプローチは、次の場合に法案に適合する場合があります。
過去のデータを再訪することなく、新しいデータから学習できるモデルが必要です。
概念ドリフトに堅牢なモデルが必要です。
通常、イベントベースの生産コンテキストで発生するものに近い方法でモデルを開発したいと考えています。
川のいくつかの特異性は次のとおりです。
パフォーマンスよりも、明快さとユーザーエクスペリエンスに焦点を当てています。
一度に1つのサンプルを処理するのは非常に速いです。試してみてください。
Pythonのエコシステムの残りの部分でうまく機能します。
ドキュメント
パッケージリリース
Awesome-online-Machine-Learning
2022ガイアでのプレゼンテーション
オンラインクラスタリング:KDD'22からのアルゴリズム、評価、メトリック、アプリケーション、ベンチマーク。
どんな方法でも自由に貢献してください。私たちは常に新しいアイデアやアプローチを受け入れています。
質問や問い合わせがあれば、ディスカッションを開きます。プライベートメールを送信するよりも、公の場で質問する方が便利です。また、貢献する前にディスカッションを開くことも奨励されているため、全員が調整され、不必要な作業が回避されます。
バグやパフォーマンスの問題を見つけたと思われる場合は、問題を開くことを歓迎します。
私たちのロードマップは公開されています。あなたの目を引くものには自由に取り組んだり、提案をしたりしてください。
コードベースに変更を加えたい場合は、貢献ガイドラインを確認してください。
Riverがあなたにとって有用であり、科学的な出版物でそれを引用したい場合は、JMLRで公開された論文を参照してください。
@article {montiel2021river、title = {river:pythonのストリーミングデータのための機械学習}、著者= {モンティエル、ジェイコブとハルド、マックスとマステリーニ、サウロマルティエッロとボルミエ、ジェフリーとサワリー、ラファエルとベイズ、ロビンとゾウイチン、アディリチンそして、ゴメス、ハイター・ムリロとリード、ジェシーとアブデッサレム、タレルなど}、year = {2021}}
Riverは、3節BSDライセンスの下でライセンスされている無料でオープンソースソフトウェアです。