ベクトル値をK-Meansアルゴリズム機能に適合させる方法は?
-
16-10-2019 - |
質問
クイズの回答から$ k $ -means関数を使用してグループ化したいユーザーオブジェクトのセットがあります。各クイズの質問には、文字の値を含む事前定義された答えがありました "あいうえお". 。ユーザーが答えた場合 質問1 手紙付き 「B」, 、この回答をVector $(0、1、0、0)$に入れました。私が使用する$ k $ -means関数は、入力ベクトル(この場合は[ユーザー] [質問])として2次元数の数字を取得します。質問に対するユーザーの回答を表す数値値の代わりに、ベクトル入力があります。 $ k $ -means関数を使用できるように、ベクトル値を数値に変換するにはどうすればよいですか?
解決
あなたはそこに95%です、あなたはたった1つのハングアップを持っています...
あなたがしているベクトル化は、代わりにバイナリゼーションまたは ワンホットエンコーディング. 。あなたが今やらなければならない唯一のことは、これらすべてのベクトルを分解し、それらを個々の機能と考えることです。
したがって、質問1つのベクトルを$(0,0,1,0)$と考え、質問2ベクトルを$(0,1,0,0)$として考える代わりに、それらを個々の機能と考えることができます。
したがって、この:
- q1, q2
- (a,b,c,d), (a,b,c,d)
user1 (0,0,1,0), (0,1,0,0)
user2 (1,0,0,0), (0,0,0,1)
これになります:
- q1a,q1b,q1c,q1d,q2a,q2b,q2c,q2d
user1 0 0 1 0 0 1 0 0
user2 1 0 0 0 0 0 0 1
また、これらのバイナリ機能のそれぞれを、8次元空間にあるデータの直交次元と考えることができます。
お役に立てれば!
他のヒント
2次元配列はベクトルのリストです。
{{userid1,1a,1b,1c,1d,2a,2b,2c,2d,...,na,nb,nc,nd}
{userid2,1a,1b,1c,1d,2a,2b,2c,2d,...,na,nb,nc,nd},
...,
{useridk,1a,1b,1c,1d,2a,2b,2c,2d,...,na,nb,nc,nd}}
テストに適した入力になります n
質問と k
出場者、ここで 1a
応答を表します a
質問1について。
所属していません datascience.stackexchange