-1

私はクラスタ化するためのカテゴリ変数のセットを持っているので、私はgithub packageから取られたkモードを使用しています。私は、各観測値(ポイント)の距離を、それが属するクラスターの重心に近づけたいと思います。Kモード各点とクラスタの重心間の距離を計算する

kmodes_cao = kmodes.KModes(n_clusters=6, init='Cao', verbose=1) 
kmodes_cao.fit_predict(data) 

# Print cluster centroids of the trained model. 
print('k-modes (Cao) centroids:') 
print(kmodes_cao.cluster_centroids_) 

# Print training statistics 
print('Final training cost: {}'.format(kmodes_cao.cost_)) 
print('Training iterations: {}'.format(kmodes_cao.n_iter_)) 

を変数はカテゴリなので、私はEucledean距離を使用することはできません。

これは私がこれまでに実施したものです。各点のクラスタ重心までの距離を計算する理想的な方法は何ですか?

+0

ルック助けるバイナリ距離 ホップで1 あります'KModes'関数です。車輪を再構築しないでください。 –

+0

私はそれを見渡しましたが、距離の計算方法はわかりませんでした。私は新しいデータマイニングを使用しているので、あなたがガイドしてくださいできますか? –

+0

これはドキュメントの 'cat_dissim'パラメータでさえあります。 –

答えて

0

例あなたは重心がV2 =私は、カウント変数ごとにD

V1 = Aであるとした場合CまたはD を取ることができ、AまたはBとV2を取ることができます2つの変数V1を持っている場合ときViに!= CI(重心I)

インスタンスV1 = AとV2 = Cを有しているならば、重心からの距離が、それはソースコードで

+0

ありがとうございますが、少し不明です。どうしたらいいですか? –

+0

Kmodsは、各変数のモード値(最も代表的なカテゴリ)をカウントします。あなたの学習の終わりに、 あなたのデータセットに2つの変数があると仮定して、 C1 =(V1 = category1、V2 = category2) ... ... C6 =(V1 = categoryX、V2 = categoryY) 新しいインスタンスのクラスタを予測したい場合は、最小距離 を与えるクラスタを返して、インスタンスとクラスタの重心Cの間の距離を数えます。 distance =各変数V 0のための0 \tもしVi!= Ciの値が0であれば、 \t \t距離+ = 1戻り距離 –

関連する問題