2017-08-25 18 views
0

私はSVM分類にscikitlearnを使用しています。Svm予測のデフォルト値Scikitlearn

指定されたテスト項目がトレーニングセット項目のいずれとも一致しない場合、つまり距離が非常に大きい場合にデフォルト値を返す分類器が必要です。それは可能ですか?

については

のは、私のトレーニング・セットが

X= [[0.5,0.5,2],[4, 4,16],[16, 16,64]] 

であると私はトレーニングに

clf = svm.SVC() 
clf.fit(X, y) 
を実行し

y=[0,1,2] 

にラベルを付けましょうその後、私は予測

clf.predict([-100,-100,-200]) 

は、今、私たちは[-100,-100,-200]が離れすぎてトレーニングのいずれかからであるテスト項目を見ることができるように、この場合には予​​測はこのアイテム[16, 16,64]ある[2]をもたらすだろう、そこにある実行とにかくそれが何かを返すようにする(トレーニングセットからではない)?

+0

広すぎて非公式です。しかし、あなたはおそらくskirarnでも利用可能なアウトライアー検出/ワンクラスのSVMを求めます。 – sascha

+0

はい、実際には、項目がトレーニングセット項目のいずれかに一致するかどうかを判断する必要があります。値については気にしません。たとえば、一致する場合は1、一致しない場合は-1 。 –

答えて

0

大きな値のラベルを作成してトレーニングセットに追加できると思います。

X= [[0.5,0.5,2],[4, 4,16],[16, 16,64],[-100,-100,200]] 
Y=[0,1,2,100] 

としてください。

SVMは教師あり学習であるため、 'OUTPUT'を指定する必要があります。 'OUTPUT'について確信が持てない場合は、監視されていないクラスタリング(kmeansなど)をいくつか行い、可能な「出力」がどれほど多いか大まかに考えてください。

+0

異常のラベルを追加することは可能な極値を知っている場合にのみ可能です。 [50,50,100]は、トレーニングセットのどの項目からも離れすぎているため、一致していないと分類する必要があります。私はk-meansを調べます。ご回答有難うございます:) –

関連する問題