2

特定のカテゴリ (Cancer など) のトレーニング データセット (テキスト) があります。このクラスの SVM 分類器を weka でトレーニングしたいと考えています。しかし、フォルダー 'cancer' を作成し、それらすべてのトレーニング ファイルをそのフォルダーに配置してこれを実行しようとすると、コードを実行すると次のエラーが発生します: weka.classifiers.functions.SMO: 単項クラスを処理できません!

私がやりたいことは、分類子が「がん」に関連するドキュメントを見つけた場合、クラス名を正しく言い、がん以外のドキュメントを入力すると、「不明」のようなものになるはずです。

この動作を取得するにはどうすればよいですか?

4

1 に答える 1

7

Weka の SMO アルゴリズムは、2 つのクラス間のバイナリ分類のみを行います。Sequential Minimal Optimization は SVM を解くための特定のアルゴリズムであり、Weka ではこのアルゴリズムの基本的な実装です。がんの例とそうでない例がある場合、それはバイナリであり、おそらくそれらに正しくラベルを付けていません。

ただし、すべて癌の例であるトレーニング データを使用していて、将来の例がパターンに適合するかどうかを教えてほしい場合は、1 クラス SVM、別名外れ値検出を実行しようとしています。

Weka の LibSVM は1 クラスの svm を処理できます。Weka SMO 実装とは異なり、LibSVMは Weka にインターフェースされたスタンドアロン プログラムであり、SVM のさまざまなバリエーションが組み込まれています。Wekalist のこの投稿では、Weka で LibSVM を使用する方法について説明しています。

于 2012-05-01T12:21:38.950 に答える