1

画像から特徴を抽出した後に単純な分類器をトレーニングすることを含む、コンピューター ビジョン クラスのタスクを準備しています。ここでは機械学習がメインのトピックではないので、学生に学習アルゴリズムをゼロから実装してほしくありません。そのため、いくつかの参照実装を推奨する必要があります。決定木分類器はそれに適していると思います。

問題は、クラスで使用できる言語の種類が非常に多いことです: C++、C#、Delphi などです。また、学生には、ライブラリのリンクなどの技術的な問題に多くの時間を費やしてほしくありません。WEKA は Java に最適です。すべてのラッパーで OpenCV を使用することもできますが、単純で便利なものが欲しいのですが、かなり大きくて扱いにくいものです。

では、決定木を学習するための簡単な C++/C#/Delphi ライブラリをご存知ですか?

4

3 に答える 3

2

Alglibでの「決定フォレスト」の実装を見たことがありますか?アカデミックな使用は無料です。このWebページは、C ++ / C#および(多分)Delphiのサポートを主張しています。これは決定木の実装ではありませんが、ランダムフォレストは、多くの問題で単一の決定木よりも優れた分類子になる傾向があり、トレーニングにそれほど時間はかかりません。私の推測では、決定木アルゴリズムには非常に多くの種類があるため、複数の言語にわたって一貫した決定木実装を見つけるのは難しいでしょう。

Alglibライブラリが必要なものでない場合は、ウィキペディアの記事にリストされている他の多くのオープンソースランダムフォレストライブラリがあります。Cavaet:Alglibの実装は、従来のランダムフォレストではないと主張しています。

于 2010-10-07T19:40:35.127 に答える
2

私はそのようなライブラリを知っていますが、最近使用したのはそのうちの 1 つだけです。その 2 つはWafflesTilburg-Based Memory Learner (TiMBL) です。どちらも無料でオープンソースです (それぞれ lgpl と GNU gpl)。さらに、どちらも安定した成熟したライブラリです。Waffles は 1 人の開発者によって作成され、現在維持されていますが、TiMBL は学術的なプロジェクト (言語学の分野に向けられたもの) であると私は信じています。

これら 2 つのうち、ワッフルのデシジョン ツリー モジュールのみを使用しました (クラス GDecisionTree で、こちらのドキュメントを参照してください) 、解空間を視覚化するなど。ライブラリの作成者 (Mike Gashler) は一連のデモ アプリも含めましたが、これらのアプリの 1 つが決定木であったかどうかは覚えていません。

Waffles Library のいくつかのクラス (ディシジョン ツリー クラスを含む) を使用しましたが、間違いなくお勧めできます。決定木クラスを使用したことがないため、Tilburg-Based Memory Learner についてこれ以上言うことはできません。

于 2010-10-05T06:35:01.307 に答える
0

プログラミング言語は問題ありません。各言語のデシジョン ツリーの実装を見つけるのは非常に困難です。すべてのバージョンが同じ実装であることを保証することはほぼ不可能です。

決定木はブラックボックス方式なので。トレーニング データとテスト データを標準ファイル (たとえば、Weka の arff 形式、opencv にも独自の形式があります) に書き込み、コマンド ラインを使用してツリーの学習者とテスターを呼び出すことができます。このようにして、すべての生徒が同じ決定木を持ちます。そうでなければ、生徒 A は良い木学習器を使用し、生徒 B は悪い木学習器を使用し、結果が異なる場合、決定木の違いによるものなのか、CV 部分 (特徴処理など) によるものなのかわかりません。この状況では、ツリー学習器の詳細/実装品質に注意を払わなければならない状況に陥ります。

于 2010-10-07T10:59:49.487 に答える