2016-09-22 7 views
-1


関数kmeansクラスタ入力データの最初の列を無視

INPUTデータ
(キー、データポイント)

A、1,2,0,1,2,1、 2,1
B、2,2,3,1,1,1,1,0
C、3,1,2,3,4,5,0,1
D、1,2,0 、1,2,5,0,1
....

私は上記の形式の入力データを持っています。最初の列を無視して、上記のデータのKmeans clusertingを実行し、それぞれのレコードのどのセンターに属しているかを識別したいと思います。私は(キー)とコードの下に使用してクラスタ中心を見つけることができる最初のCOLを捨てたが、私は以下の形式で出力を期待してい
(キー、cluster_centre)
A、0
B、2
C 、1
D、0
...

コード:

data = sc.textFile("/home/user/inputfile.txt") 
parsedData = data.map(lambda line: array([long(x.strip()) for x in line.split(',')])) 
model = KMeans.train(parsedData, 3, maxIterations=10, runs=10, initializationMode="random") 
centers = model.clusterCenters 
for center in centers: print(center) 
+2

問題は何ですか?分かりません。 – gsamaras

+1

配列サブセット '[1:]'を使用して最初の列を削除しますか? –

答えて

0

filtered_cols = parsed_data.map(ラムダX:X [1])
モデル= KMeans.trainセンターのセンターについて(filtered_cols、3、maxIterations = 10、走る= 10、initializationMode = "ランダム")
センタ=のmodel.clusterCenters
:プリント(中央)

関連する問題