33

理想的には、次の機能を備えたライブラリを探しています。

  • 多次元データの階層的クラスタリングを実装します (理想的には類似性または距離行列で)
  • サポートベクターマシンを実装
  • C++にあります
  • ある程度文書化されています(これが最も難しいようです)

私は C++ 言語に最も慣れているため、これを C++ にしたいと考えていますが、ライブラリが価値がある場合は、他の言語も使用します。グーグルでいくつか見つけましたが、すべてを試す時間はあまりないので、他の人が経験したことを聞きたいです. お勧めのライブラリの経験がある場合のみ回答してください。

PS: クラスタリングと SVM に別のライブラリを使用することもできます。

4

6 に答える 6

16

私が十分に使用した ML ライブラリはほんのわずかしかないので、それらを推奨することに抵抗はありません。dlib mlは確かにその 1 つです。

Sourceforge のダウンロードはこちら; 最先端のチェックアウト:

hg clone http://hg.code.sf.net/p/dclib/code dclib-code

元のライブラリの作成者であり、現在のメンテナは Davis King です。

ウィッシュリストと関連する dlib 機能:

  • 優れたドキュメント: 比較的少数のユーザー/開発者グループを対象とした無料のオープンソース ライブラリの場合、これはおそらく最高です。通常のドキュメントとは別に、5 年間の開発履歴の間に洗練された、頻繁に更新されるIntro to dlib、(トラフィックの少ない)フォーラムがあります。優れたの大規模なセット(少なくとも 1 つの SVM を含む)。

  • C++ : 私が知る限り、C++ で 100%。

  • サポート ベクター マシンアルゴリズム: はい。実際、SVM モジュールは、このライブラリに対する最新の更新の焦点となっています。

  • 階層的クラスタリングアルゴリズム: そのままではありません。ただし、 k-means クラスタリング用のパッケージ コードがあり ます。明らかに、各手法の結果は大きく異なりますが、類似性メトリックの計算と、その後の再帰的/反復的な分割ステップが両方の中心にあります。つまり、階層的クラスタリングの計算エンジンがすべて揃っています。現存するクラスタリング モジュールを HC に適合させるには、数行以上のコードが必要ですが、ほぼデータ プレゼンテーション レベルで作業していることを考えると、それほど大きな努力ではありません。

dlib ml には、推奨する追加のポイントがいくつかあります。これは成熟したライブラリです (現在はバージョン 17.x です。バージョン 1.x は 2005 年後半にリリースされたと思います) が、レポ ログ (最後の更新 17.27 は 17 2010 年 5 月) と最後のコミット (2010 年 5 月 23 日)。さらに、他の ML 手法もほとんど含まれていません (例: ベイジアン ネットワーク、カーネル メソッドなど)。そして第 3 に、dlib ml には、行列計算と最適化のための優れた「サポート」ライブラリがあります。これらは両方とも、多くの ML 手法の基本的なビルディング ブロックです。

ソースでは、dlib ml がオープン ソース ライセンスであるBSL (Boost?) の下でライセンスされていることに気付きましたが、このタイプのライセンスについて他に何も知りません。

于 2010-05-27T02:27:22.003 に答える
10

一般的な機械学習ライブラリ:

これらの 2 つは Weka に似ています。しかし、彼らは効率を念頭に置いています。

1.サメ(LGPL)

https://github.com/Shark-ML/Shark/

2.ワッフル(LGPL)

http://waffles.sourceforge.net/

SVM およびその他の線形分類器:

1.LibSVM (BSD スタイル)

2.LibLinear (BSD スタイル)

http://www.csie.ntu.edu.tw/~cjlin/libsvm/

それらはすべて C++ です。

于 2010-05-30T15:28:40.343 に答える
10

WEKA ( http://www.cs.waikato.ac.nz/ml/weka/ ) は、C++ を除くほとんどの要件を満たす優れたオープン ソースの機械学習ライブラリです。Java で記述されています。それは非常によく文書化されており、サポートベクターマシンとクラスタリングを実装しており、私はそれで非常に良い経験をしました.

于 2010-05-26T19:04:30.677 に答える
5

わかりました、完全を期すために、私が最後に行ったことを投稿します。現在、クラスタリング部分にscipy-clusterを使用しています。これは、私がこれまでに見つけた中で最も用途の広い実装です。SVM部分にはlibSVM(現在はPythonインターフェースがあります)を使用すると思います。C++ での階層的クラスタリングの適切な実装が実際に見つからなかったため、私は Python を使用します ( C クラスタリング ライブラリはマイクロアレイに特化しており、多次元データをサポートしていません)。

于 2010-05-30T14:53:14.937 に答える
4

C++ ではありませんが、R の使用を検討しています。特に、CRAN の機械学習ビューを見てください。これには、Weka や libsvm を含む上記のライブラリの多くが示されています。

于 2010-06-22T13:40:34.553 に答える
1

いくつかの追加の可能な選択肢:

条件付きランダム フィールド (CRF): http://www.chokkan.org/software/crfsuite/

隠れマルコフ モデル (HMM): http://www.cs.au.dk/~asand/?page_id=152

一般的な ML ライブラリについては、Torch (執筆時点でバージョン 7) を検討してください: https://github.com/andresy/torch

Orange システムは C++ で実装されており、ライブラリとして使用できますが、柔軟なスクリプト作成とビジュアル プログラミングのための Python ラッパーとして機能を公開することに重点を置いています: http://orange.biolab.si/

于 2013-08-01T18:50:46.993 に答える