1

2 つのクラス間でいくつかの値を分類する必要があります。トレーニング セットとして使用できる約 30 の値があり、各値には 10 の異なる次元があります。私は(Pythonで)libSVMを使用していますが、うまく機能しているようです。

libSVM によって計算されたモデルにも解釈を与えようとしています。これは、分類プロセスにおいて、いくつかの次元が他の次元よりも「重要」であると考えているためです。

たとえば、次の例を考えてみましょう。

y, x = [1,1,1,-1,-1,-1],[[1,-1],[1,0],[1,1],[-1,-1],[-1,0],[-1,1]]
prob  = svm_problem(y, x)
param = svm_parameter()
param.kernel_type = LINEAR
param.C = 10
m = svm_train(prob, param)
svm_save_model('model_file', m)

x リストの要素の 2 番目の次元が、このデータ セットを分類するのに役に立たないことは明らかです。

私の質問は:

libSVM によって生成されたモデルを分析して、この種の状況を検出する体系的な方法はありますか?

4

1 に答える 1

0

少し遅れましたが:

機能が重要かどうかを確認するのはユーザーの責任です。そのため、アプリケーションの要件を満たす機能を手動で選択する必要があります。SVM は、入力した機能で最良の結果を得ようとします。選択がより明確になるという理由だけで、特定のデータを無視するのはあまり意味がありません (ただし、より間違っている可能性があります)。

どの機能が優れていて、どの機能が優れていないかを知ることができるのはあなただけです。手/脳でそれらを見つける必要があります。

于 2012-04-08T17:16:56.670 に答える