smartcorelib/smartcore

A comprehensive library for machine learning and numerical computing. Apply Machine Learning with Rust leveraging first principles.

解決する課題

smartcore は、Rust での本番環境向け機械学習ライブラリのニーズに対応します。強い型付けと適切なデフォルトを備えた古典的な教師あり・教師なしアルゴリズムを提供し、開発者は Rust エコシステムを離れることなく ML モデルを構築およびデプロイできます。このライブラリは人間工学に基づいており、研究や実験に取り組みやすく、本番使用にも実用的です。

仕組み

smartcore は、アルゴリズムを一貫したトレイトを持つ明確なモジュールに整理します。モジュール式線形代数抽象化を使用し、オプションで ndarray をサポートし、移植性のために WASM ファーストの姿勢をデフォルトとします。アルゴリズムには、線形モデル(OLS、Ridge、Lasso、ElasticNet、ロジスティック回帰)、ツリーベースの手法(ランダムフォレスト、Extra Trees)、SVM、KNN、クラスタリング(K-Means、DBSCAN、凝集)、分解(SVD、EVD など)、前処理ユーティリティが含まれます。ユーザーは一貫した API を通じて操作します。たとえば、KNN 分類器を適合させるには、ベクトルから DenseMatrix を作成し、デフォルトパラメータで fit を呼び出します。このライブラリには、データセット生成器、CSV リーダー、Lasso と ElasticNet のメモリ使用量を削減する遅延正規化モードなどのオプション機能が含まれています。README では、オブジェクト安全なトレイトとより少ない構造体を優先するトレイトシステムのリファクタリングが強調されており、ライブラリは Rust 2024 エディション(MSRV 1.85)に移行しました。

対象読者

smartcore は、強い型付けで効率的な言語で古典的な機械学習アルゴリズムを必要とする Rust 開発者を対象としています。安定した API と適切なデフォルトによる本番使用と、Jupyter ノートブックや柔軟な機能による研究や実験の両方に適しています。WASM ファーストのアプローチはブラウザや組み込みデプロイに魅力的であり、オプションの ndarray 統合は配列ファーストのワークフローを好む開発者にアピールします。

ハイライト

  • 広範なカバレッジ:線形モデル、ツリー、アンサンブル、SVM、近傍、クラスタリング、分解、前処理。
  • オプションの ndarray 統合を備えた強力な線形代数トレイト。
  • WASM ファーストのデフォルトとオプトイン機能(serde、datasets)による移植性と最小フットプリント。
  • 実用的なユーティリティ:モデル選択、評価、CSV リーダー、データセット生成器、組み込みデータセット。
  • 最近の追加:XGBoost スタイルの回帰、単一リンケージクラスタリング、Extra Trees、多クラス SVM の改善。
  • パフォーマンス傾向を追跡するためのライブベンチマークチャート(criterion ウォールクロックと iai-callgrind 命令数)が GitHub Pages に公開されています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト