2017-03-18 7 views
0

特徴p1、p2、p3からなるデータセットにsvmを訓練したいと考えています。 p1はベクトル、p2とp3は訓練したい整数です。たとえば、p1 = [1,2,3]、p2 = 4、p3 = 5 X = [p1、p2、p3]ですが、p1自体がベクトルなので、X = [[1、2、3]、4 、5]とYは出力という名前のラベル
であるが、Xは、このフォームで複数のタイプの機能でsvmを学習する方法

clf.fit(X、Y) を入力を取ることができないことは、下記のフォームのエラーを与える:Xは、このフォーム 配列で取ることができないという意味します= np.array(array、dtype = dtype、order = order、copy = copy) ValueError:シーケンスで配列要素を設定します。

+0

はp1の長さが固定されていますか? – slonopotam

+0

はいp1の長さは固定です –

答えて

0

あなたは基本的に2つのオプションがあります。

  1. 、1,2- [[通常の形式にデータを変換し、p1は常に3要素である場合は、あなたの場合には、典型的なSVMのカーネルを実行し、ちょうどので、表現を平らにします3]、4,5]は[1,2,3,4,5]になり、あなたは良いことです。

  2. 2つのカーネルの合計がまだカーネルであるため、各部分を別々に扱う独自のカーネル関数を実装します。たとえば、K(x、y)= K([p1、p2、p3] [q1、q2、q3]):= K1(p1、q1)+ K2([p2、p3]、[q2、q3])。 K1とK2の両方が普通のベクトルで動作するので、あなたはそれらを任意の方法で定義し、その和をあなたの "共同"カーネル関数として使うことができます。このアプローチはより複雑ですが、複雑なデータを扱う方法をどのように定義するかは自由です。

関連する問題