teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

edit

2017/12/14 05:23

投稿

mkgrei
mkgrei

スコア8562

answer CHANGED
@@ -11,4 +11,42 @@
11
11
 
12
12
  > Fuzzy cmeansでプロットした結果、一つの点が複数のクラスに所属するということはなかったのですが...。
13
13
 
14
- `cluster_membership = np.argmax(u, axis=0)`をプロットしているので。
14
+ `cluster_membership = np.argmax(u, axis=0)`をプロットしているので。
15
+
16
+ ---
17
+
18
+ 追記:
19
+
20
+ ソフト・ハードの変換の説明に一部語弊があるかもしれなかったので、追記です。
21
+
22
+ それぞれの嗜好を2次元のベクトルで表現すると、`[国語好き、数学好き]`にて、そうであるのなら1、そうでないのなら0と書けます。
23
+ すると国語が好きだけど、数学が好きでないのなら`[1,0]`となります。
24
+ すると国語が好きでないけど、数学が好きなら`[0,1]`となります。
25
+ すると国語が好きでないし、数学も好きでないのなら`[0,0]`となります。
26
+ すると国語が好きだけど、数学も好きなら`[1,1]`となります。
27
+ この分類は問題設定時でソフトクラスタリングですね。
28
+ 国語好きというクラスと、数学好きというクラスの両方に属することができます。
29
+
30
+ アンケートを取る際に、国語が好きか数学が好きかどちらか一方だけ必ず選んでくださいというと、
31
+ すると国語が好きを選んだのなら`[1,0]`となります。
32
+ すると数学が好きを選んだのなら`[0,1]`となります。
33
+ これがハードクラスタリングですね。
34
+ argmaxを取ると、
35
+ 国語が好きを選んだのなら`0`となります。
36
+ 数学が好きを選んだのなら`1`となります。
37
+
38
+ 上の記述は追記する前の回答と同じことを言っています。
39
+
40
+ ただソフト・ハードの変換に情報を保存するような変換も考えられます。
41
+ それは以下のようなラベルの割当です。
42
+ 国語が好きだけど、数学が好きでないのなら`0`とします。
43
+ 国語が好きでないけど、数学が好きなら`1`とします。
44
+ 国語が好きでないし、数学も好きでないのなら`2`とします。
45
+ 国語が好きだけど、数学も好きなら`3`とします。
46
+
47
+ クラスは増えましたが、排他的になりました。ゆえにハードクラスタリングに変換されたことになります。
48
+
49
+ 2項ソフトクラスタリングという用語を使っている方もいるようです。
50
+ http://msi.co.jp/vmstudio/tips/analyticsexample01_dyadic.pdf
51
+
52
+ つまるところ問題設定と取ってきたデータの処理の仕方の両方に視点を向ける必要があるということだと考えます。