統計ER

R, EZR, SPSS, KH Coder を使ったデータ分析方法を紹介するブログ。ニッチな内容が多め

自己組織化マップを KH Coder で書く方法

自己組織化マップは、ニューラルネットワークアルゴリズムのひとつである。

KH Coderで自己組織化マップを描くにはどうやったらよいか?

>>もう統計で悩むのを終わりにしませんか?


↑1万人以上の医療従事者が購読中

自己組織化マップの前にニューラルネットワークとは何か?

自己組織化マップはニューラルネットワークの一つである。

では、ニューラルネットワークとは何か?

ニューラルネットワークとは、ヒトの脳の神経回路を、まねたモデルのことである。

神経細胞ニューロン)は、細胞体から長い突起(軸索 じくさく)を伸ばしていて、次の神経細胞に信号を伝達している。

神経細胞は、入ってくる信号を処理して、次の細胞に出力する働きを持っている。

神経細胞回路の入力、信号処理(修飾)、出力の活動に似ているので、ニューラルネットワークと呼ばれる。

自己組織化マップとは何か?どうやって描かせているか?

自己組織化マップの原理

まず出力層と呼ばれるマップの「原型」を用意する。

マップはノードと呼ばれる六角形のマス目で構成されていて、最初はランダムな「特徴」のマス目になっている。

KH Coderでは、デフォルト設定で一辺が20個のノードで構成されている。

実際のデータは入力層の入力(「抽出語」に当たる)と呼ばれ、入力の「特徴」と出力層の「特徴」を比較して、一番近いノードを選ぶ。

選ばれた一番近いノードとその近傍のノードの「特徴」を更新する。

全部の入力について繰り返し、その1回分を何度も繰り返すことで、だんだん似た者同士が集まってくる。

そして、最終的な出力層(これが完成形のマップ)を作り上げる。

何か外的な規準(「教師」)がなくても、似た者同士が集まってきて、最適な図が「勝手に」できてくるので、「自己組織化」マップと呼ばれる。

「教師なし」のニューラルネットワークアルゴリズムに分類される理由だ。

>>もう統計で悩むのを終わりにしませんか?


↑1万人以上の医療従事者が購読中

自己組織化マップをKH Coderで描くには?

メニューバーから「ツール」→「抽出語」→「自己組織化マップ」を選択するとオプション設定ウィンドが開く。

開いたウィンドの右下のOKをクリックすれば作成を開始する(が、とても時間がかかるので、覚悟してクリックする。詳しくは後述)。

自己組織化マップ作成のための抽出語間の距離

抽出語同士の近さ・遠さの距離は、何を使っているか?

KH Coderでは、ユークリッド距離を使っている。出現頻度の絶対値に影響を受けないように、標準化して、発現パターンの距離にしてある。

ユークリッド距離とは?

toukeier.hatenablog.com

標準化ユークリッド距離とは?- 多次元尺度構成法

ノードのクラスター化の結果を色分け・境界線で分けることで解釈しやすく

出来上がりの自己組織化マップを掲示する。

六角形のマス目一つ一つがノードである。

ノードの座標をWard法で分類して、隣接するノードをクラスター化している。

同じクラスターは同じ色で塗り分け、クラスター間は境界線を引いているため、わかりやすくなっている。

Ward法とは?

toukeier.hatenablog.com

ノードの色分けはカラフル以外に3つある

ノードの色分けのデフォルトはカラフルに塗りわけられるものだが、ほかに3つある。

一つは「グレースケール」。

モノトーンになる。

色を使えない出版物の場合などはこのほうが良いかもしれない。

二つ目は「度数」。

複数の語がプロットされたノードは濃い色に塗られる。

三つ目は「U-Matrix」。

隣接ノードとのユークリッド距離を計算し、遠いときに濃い青色で塗る。

濃い青色の「線」が形成されていれば、その線を境に語の出現パターンが異なっていると見る。

クラスターの結果と突き合わせてみると、同じ傾向が見て取れる。

自己組織化マップを完成させるには時間がかかる

自己組織化マップを描かせるには、とにかく時間がかかることを覚悟したほうがいい。

PCのCPUがどのくらいの力を持っているかにもよるが、60個の抽出語で、文書(Tweet数)が約1000の場合、1時間はゆうにかかった。

PCは、ThinkPad X220 Core i5-2430M 2.4GHz、RAMは4GB、OSはWindows 10 Homeだ。

自己組織化マップのオプションはデフォルトのままを使った。

学習回数を見ると1000とAutoと見える。

学習回数の最初の1000回は、大まかな順位付けを行う段階である。

次のAutoは、ノード数の500倍で、一辺が20個の場合ノードが400個なので、200,000回の学習回数で、微調整を行う収束段階となっている。

「20万回の学習」と言われれば、よほど時間がかかるだろうと想像できる。

抽出語の取捨選択

出現頻度は高くても意味がない語は、「最大出現数」で調節して取捨選択する。

解析に使う抽出語の調整 - 多次元尺度構成法

KH Coderで自己組織化マップを描く【無料でテキストマイニング】【動画】

KH Coderで自己組織化マップを描く方法を解説した動画。

よければどうぞ。

youtu.be

まとめ

KH Coderで自己組織化マップによるテキストマイニングを実施してみた。

自己組織化マップは、まるで子供がいろいろな物事を自分で経験・理解して、学習の結果、似た者同士をきれいに分類して記憶するような過程をもって、自動的に描き上げられた図のことである。

語と語の関連を探索する一つの方法として、興味深い方法と言える。

ただし、時間がかかることは覚悟しなければならない。

マップの作成を開始したら、スマホでネットサーフィンやSNSでもしながら、気長に待とう。

参考サイト

Rと自己組織化マップ

https://www1.doshisha.ac.jp/~mjin/R/Chap_30/30.htmlwww1.doshisha.ac.jp

子供でもわかる「自己組織化マップ」

gaya.jp

おすすめ書籍

KH Coder オフィシャルブック II