2017-04-07 14 views
0

私は機械学習の初心者です。私は、R(h2oパッケージ)のautoencoderを使ってクラスタリングを行っています。今のところ、私は以下のコードやった:私のデータについてはautoencoderを使ってクラスターのラベルを取得する方法

`mydata = h2o.importFile(path = mfile) 

NN_model = h2o.deeplearning(
    x = 2:9, 
    training_frame = mydata, 
    hidden = c(2), 
    epochs = 100, 
    activation = "Tanh", 
    autoencoder = TRUE 
) 

train_supervised_features = h2o.deepfeatures(NN_model, mydata, layer=1)` 

を、あまりにも多くの列がありませんが、行のロット(あなたは、コードにのみ8変数今を見ることができるように)。

次に、上記で取得した「train_supervised_features」に2つのノードをプロットします。そして私はこのようなプロットを得ました 私のデータの8つのクラスタがあることは明らかです(右?)

私の質問は、オートエンコーダの結果からどのようにラベルを抽出できますか?

答えて

0

オートエンコーダは "クラスタ"について何も知らないので、h2o.kmeansを呼び出す必要があります( )を使用して、クラスターの割り当てを取得します。次に、h2o.predict(model、2Ddata)を使用して、そのk-meansモデルを使用してデータセットにスコアを付けると、各行にクラスターラベルが表示されます。

+0

ありがとうArno!しかし、私はオートエンコーダーは何をしているのだろうか?上記の最初の図のように、オートエンコーダの隠れ層(2ノード)から得たものであれば、実際にデータには明白なクラスタがあります(最初の図に示すように、6-8クラスタを示します)。 –

+0

はい、クラスタリングが優れた次元削減を達成するのに役立つようでした。ただし、クラスタの割り当てはあなたの頭にのみ存在します。オートエンコーダーAFAIKからクラスターIDを取得する自動方法はありません。また、クラスタリングアルゴリズムを実行する必要があります。 –

+0

AEを適用し、2Dフィーチャを取得した後(最初のプロットのように)、2Dフィーチャにクラスタリング手法(k-meansなど)を適用してクラスタ/ラベルを取得し、元のデータ?ありがとう! –

関連する問題