Slide 1

Slide 1 text

データ科学入門 〜クラスター分析で、複数の属性をもつデータを分類してみよう 広島大学 情報メディア教育研究センター/情報科学部 隅谷孝洋 2023/11/01

Slide 2

Slide 2 text

‣ 広島大学 情報科学部 ‣ 2018年開設

Slide 3

Slide 3 text

1 ೥࣍ 2 ೥࣍ ϓϩάϥϜ঺հ Program جૅཤमϞσϧ ೥࣍ʹͭͷϓϩάϥϜ͔ΒͭΛબ୒ ೥࣍ʹͭͷϓϩάϥϜ͔ΒͭΛબ୒ ೥࣍ʹ̏ͭͷཤमϞσϧ͔ΒͭΛબ୒ ೥࣍ʹ̏ͭͷཤमϞσϧ͔ΒͭΛબ୒ ৘ใՊֶ෦Ͱ͸ɺ ྩ࿨̐೥౓ೖֶੜΑΓɺ ैདྷͷ ڭҭ՝ఔͰ͋ΔϓϩάϥϜίʔε੍ ʢ৘ใՊֶ ϓϩάϥϜ ɿ σʔλαΠΤϯείʔεɺ ΠϯϑΥ ϚςΟ Ϋείʔεʣ ͔Βɺ ϓϩάϥϜ੍ ʢܭࢉػ ՊֶϓϩάϥϜɺ σʔλՊֶϓϩάϥϜɺ ஌ೳՊֶ ϓϩάϥϜʣ ʹ࠶ฤ͠·ͨ͠ɻ ·ͨɺ ̏ཤमϞσϧ ʢجૅཤमϞσϧɺ ༥߹ཤमϞσϧɺ ࣮ફཤ मϞσϧʣ Λ৽ͨʹಋೖ͠·ͨ͠ɻ ೥࣍ʹͦΕͧΕͷϓϩάϥϜʹ෼͔Εɺ ೥࣍ ʹͭͷཤमϞσϧΛબ୒͠·͢ɻ ৽ͨͳཤम ϞσϧͷಋೖʹΑΓɺ ʮ஍ํ૑ੜʯ ʹࢿ͢Δਓࡐ ҭ੒Λߦ͍ɺ ֶੜͷΩϟϦΞࢤ޲ʹԠͨ͡ΧϦ ΩϡϥϜฤ੒Λ࣮ݱ͠·͢ɻ ϓϩάϥϜ ཤमϞσϧ ܭࢉػՊֶ ϓϩάϥϜ ຊϓϩάϥϜͰ͸ɺ ࣾձΛࢧ͑Δ*$5 ʢ৘ใ௨৴ٕज़ʣ ͷ ϋʔυ΢ΣΞ͔Βιϑτ΢ΣΞɺ ωοτϫʔΫʹؔ͢Δجૅ͔ ΒԠ༻·Ͱମܥతʹֶͼ·͢ɻ ͜ΕʹΑΓɺ ͞·͟·ͳ৘ใ ॲཧγεςϜ ɾ ΞϓϦέʔγϣϯΛاըఏҊ ɾ ݚڀ։ൃ ɾ ҡ ࣋ӡ༻Ͱ͖Δٕज़ऀΛཆ੒͠·͢ɻ *$5Λཧղ͠ɺ ։ൃɾӡ༻Ͱ͖ΔೳྗΛशಘ ܭࢉػγεςϜ ௨৴γεςϜ ɾ Πϯλʔωο τ ৘ใωο τ ϫʔΫηΩϡ Ϧς Ο ΞϧΰϦζϜ ɾ ܭࢉཧ࿦ ιϑ τ ΢ΣΞ։ൃख๏ ฒྻ෼ࢄγεςϜ ɾ ߴੑೳܭࢉ Ϗοάσʔλॲཧ ɾ σʔλϕʔε ը૾ॲཧ ɾ ػցֶश Keyword ͜Μͳਓʹ͓͢͢Ί ࢐৽ͳΞϓϦΛࣗ෼Ͱ։ൃ͍ͨ͠ *P5ʹΑͬͯੜ׆Λ΋ͬͱศརʹ͍ͨ͠ ࣾձΠϯϑϥΛࢧ͑ΔγεςϜΛ։ൃ͍ͨ͠ Πϯλʔωοτͷར༻Λշదʹ͍ͨ͠ σʔλαΠΤϯε΍ΠϯϑΥϚςΟ Ϋεɺ "*౳ʹ͓͚Δ෯޿ ͍৘ใՊֶʹؔ࿈͢Δઐ໳ߨٛՊ໨ͷཤमΛ௨ͯ͡ɺ جૅ ͔ΒԠ༻ʹࢸΔ෯޿͍஌ࣝΛֶͼ·͢ɻ ݚڀʹର͢Δܭըੑ ɾ ੵۃੑ ɾ ڠಇੑ ɾ ܧଓੑʹؔ͢ΔೳྗΛ౷ ߹తʹߴΊΔ͜ͱͰɺ ৽ͨͳ՝୊ΛࣗΒൃݟ͠՝୊Λղܾ͢Δೳ ྗΛഓ͍·͢ɻ ࠷ऴֶ೥Ͱ͸ɺ ݸผݚڀ՝୊Λઃఆ͠ɺ ୲౰ڭһ ͷࢦಋͷԼͰɺ ݚڀ ɾ ࣮ݧ ɾ ٞ࿦ΛਐΊɺ ੒ՌΛ·ͱΊͯଔۀ࿦ จͱ͠ ͯൃද͠·͢ɻ Moreabout 03 3 ೥࣍ 4 ೥࣍ ༥߹ཤमϞσϧ ࣮ફཤमϞσϧ σʔλՊֶ ϓϩάϥϜ ຊϓϩάϥϜͰ͸ɺ ίϯϐϡʔλ΍৘ใॲཧٕज़ΛֶΜͩ ্Ͱɺ ϏοάσʔλΛؚΉ͞ ·͟·ͳσʔλͷॲཧ ɾ ෼ੳ ɾ ཧղ Λޮ཰ྑ͘ߦ͏ͨΊͷઐ໳Պ໨Λମܥతʹֶͼ·͢ɻ ͜Ε ʹΑΓɺ ଞ෼໺΁ͷԠ༻ੑ ɾ ༗༻ੑΛे෼ʹཧղ͠ɺ ෼ੳྗ ͷߴ͍ਓࡐΛཆ੒͠·͢ɻ σʔλ෼ੳͷج൫ͱ Ԡ༻ೳྗΛशಘ ਺ཧ౷ܭ ܦࡁ౷ܭ όΠΦ౷ܭ ۚ༥޻ֶ ਓؒҩ޻ֶ ࣾձ৺ཧֶ Ϗοάσʔλ ৘ใ਺ཧֶ ਺ཧ࠷దԽ Keyword ͜Μͳਓʹ͓͢͢Ί σʔλαΠΤϯςΟετͯ͠׆༂͍ͨ͠ ࣏ྍ๏΍ༀͷ༗ޮੑΛධՁ͍ͨ͠ גՁ༧ଌ ɾ ෼ੳΛߦ͍͍ͨ 4/4Λར༻ͨ͠ϚʔέςΟϯάΛߦ͍͍ͨ ஌ೳՊֶ ϓϩάϥϜ ຊϓϩάϥϜͰ͸ɺ ਓ޻஌ೳ΍ػցֶशɺ *P5ͳͲʹؔ͢Δ ઐ໳஌ࣝΛجૅ͔ΒԠ༻·Ͱମܥతʹֶͼ·͢ɻ ͜ΕʹΑ Γɺ ஌ೳՊֶͷ෯޿͍஌ࣝʹج͍ͮͨଟ֯తͳࢹ໺ͱ෼ੳ ख๏Λۦ࢖͠ ͯ՝୊Λղܾ͢ΔೳྗΛ਎ʹ͚ٕͭͨज़ऀ΍ ݚڀऀΛཆ੒͠·͢ɻ "*࣌୅ʹٻΊΒΕΔ ઐ໳తͳೳྗΛशಘ ਓ޻஌ೳ ػցֶश ஌ೳγεςϜ ೝ஌Պֶ ύλʔϯೝࣝ ҩ༻޻ֶ ը૾৘ใॲཧ ֶश޻ֶ 4/4෼ੳ Keyword ͜Μͳਓʹ͓͢͢Ί ਓ޻஌ೳΛຊ֨తʹֶͼ͍ͨ σΟʔϓϥʔχϯάΛ࣮૷͍ͨ͠ ը૾ೝࣝ΍Ի੠ೝࣝͷݪཧΛ஌Γ͍ͨ ೴ͷ࢓૊ΈΛ࠶ݱ͍ͨ͠ ৘ใՊֶٕज़͕͋ΒΏΔֶ໰෼໺΍ྖҬʹ͓͍ͯඞཁͱ ͞Ε ͍ͯΔ͜ͱΛߟྀ͠ɺ ৘ใՊֶͷֶ໰తഎܠΛ࣋ͪͳ͕Βɺ *$5෼໺ʹݶΒͣ͞ · ͟·ͳ෼໺Ͱ׆༂Ͱ͖ ΔೳྗΛ֫ಘ͠ ·͢ ɻ ຊֶͷଞֶ෦Ͱ։ߨ͞Ε͍ͯΔߨٛΛબ୒ඞमՊ໨ͱ͠ ͯཤम ͢Δ͜ͱ͕ՄೳͰ͋Γɺ ෯޿͍஌ࣝɺ ٕೳ͓Αͼ෼ੳྗΛ਎ʹͭ ͚Δ͜ͱ͕Ͱ͖·͢ɻ ࠷ऴֶ೥Ͱ͸ɺ ݸผݚڀ՝୊Λઃఆ͠ɺ ୲ ౰ڭһͷࢦಋͷԼͰɺ ݚڀ ɾ ࣮ݧ ɾ ٞ࿦ΛਐΊɺ ੒ՌΛ·ͱΊͯ ଔۀ࿦จͱ͠ ͯൃද͠·͢ɻ Moreabout اۀ΁ͷ௕ظ೿ݣܦݧΛ௨ͯ͡ɺ େֶͰͷֶͼΛ࠶ߟ͢Δͱ ͱ ΋ʹɺ ࢈ۀքͰٻΊΒΕ͍ͯΔ஌ࣝ΍εΩϧΛֶͼ·͢ɻ ৘ใՊֶ෦ڭһͱຽؒاۀɺ ࣏ࣗମʹΑΓݚڀ։ൃ΍ௐࠪʹର ͢Δ۩ମతͳܭըΛઃఆ͠ɺ ݚڀ ɾ ࣮ݧ ɾ ٞ࿦ΛਐΊͳ͕Βݚڀ໨ ඪΛୡ੒͢Δ͜ͱͰ৽͍͠෇ՃՁ஋ΛੜΉٕज़ͷ֫ಘΛΑΓ͔֬ ͳ΋ͷͱ͠·͢ɻ ଔۀ࿦จͷ୅ΘΓʹɺ ௕ظϑ ΟʔϧυϫʔΫΛཤ म͠ɺ ֶ֎Ͱͷݚڀ։ൃϓϩδΣ Ϋτ΍ௐࠪϑ Ο ʔϧυϫʔΫʹࢀ Ճ͢Δ͜ͱͰɺ ࣮ફతͳ՝୊ղܾʹ׆༻͢ΔೳྗΛ਎ʹ͚ͭ·͢ɻ Moreabout 04

Slide 4

Slide 4 text

` 数理統計学のための確率論の基礎:事象の非独立性の視覚化 音楽的特徴量を用いたBillboardチャートイン予測 ロジスティックモデルとその拡張について Bradley-Terryモデルを用いたプロ野球の勝敗データの解析 我が国の喫煙状況を用いた肺がんマイクロシミュレーション SurvCARTアルゴリズムの概要と既存アルゴリズムとの比較 モランのI統計量のバウンズについて:パスグラフの場合を中心にして 投資環境に応じた最適ポートフォリオ選択 HPVワクチンの接種意図に両面呈示の呈示順序が及ぼす影響:直後効果と抵抗効果からの検討 フードファディズムを引き起こしにくい広告の検討:効果性の認識と企業への信頼の観点から Improvement of Neural Radiance Fields by Using Pixels Neighboring Relations 数の概念の追加学習による勾配加重クラス活性化マッピング (Grad-CAM)の妥当性の向上 グラフの辺の変動に頑健なグラフの識別のためのグラフニューラルネットワークの学習法 画像の変動に対する対象検出手法の頑健性の評価 カテゴリ特化型感情極性辞書を用いたカテゴリ評価値予測の改良 適応的支援を指向した三角ロジック組立演習の解答プロセスの分析 最適数値相関ルールを利用したSHAPの予測モデル解釈の補完 SHAPを用いたMLBの配球分析 属性情報を考慮したサプライチェーンネットワークの埋め込み表現学習 変分拡散モデルによる多変量時系列予測 分散・共分散正則化を用いたニューラルトピックモデルの自己教師あり学習 広島県の主要都市における人口変動分析 Normalizing Flowによる周辺尤度推定 気候と検索件数のデータに基づくガウス過程の説明変数選択を使用したCOVID-19要因推定 集団軌跡モデルとテロデータへの適用 ベーチェット病治療のメタアナリシス:古典的手法とベイズ手法の比較 日本におけるCOVID-19流行前後の生活満足度変化に関する考察 4

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

クラスター分析 6 変数 サンプル サンプル(もしくは変数)同士の距離を用いて, いくつかのクラスター(群)に分類する。

Slide 7

Slide 7 text

データを作ってみましょう 7 https://bit.ly/mihara-enq

Slide 8

Slide 8 text

人数分 変量(40コ)

Slide 9

Slide 9 text

2変数の例 9 身長  体重 身長  体重 身長  体重 このようなグループ分けを 合理的に行うにはどうすべきか

Slide 10

Slide 10 text

二つの手法 10 身長  体重 階層的クラスタリング 非階層的クラスタリング 二点間の距離が近いものをまとめていく まとめるのをやめた時点でクラスタ数が決まる 先にクラスタ数を決める その数に最も収まりが良いように点を分ける

Slide 11

Slide 11 text

階層的クラスタリング 11 A B C D E F 1 2 3 4 5 D E F C A B 1 2 3 4 5 6 デンドログラム (樹形図)

Slide 12

Slide 12 text

階層的クラスタリング/クラスターを併合する方法 ‣ 最短距離法 (single) ‣ 最長距離法 (complete) ‣ 群平均法 (average) ‣ 重心法 (centroid) ‣ メディアン法 (median) ‣ Ward法 (ward.D) 12

Slide 13

Slide 13 text

階層的クラスタリング/クラスターを併合する方法/Ward法 ‣ Ward法が性能が良いと言われており,よ く利用される ✓ L(X)を,クラスタXの重心からの距離の 平方和とした時,以下を最小にするよう なクラスタを併合する 13 d(Ci , Cj ) = L(Ci ∪ Cj ) − {L(Ci ) + L(Cj )}

Slide 14

Slide 14 text

階層的クラスタリング/やってみよう ユークリッド距離+最長距離法 14 A B C D E F X Y A 1 1 B 2 2 C 1 5 D 4 6 E 5 5 F 6 5

Slide 15

Slide 15 text

階層的クラスタリング/やってみよう ユークリッド距離+最長距離法 15 A B C D E F A B C D E F A 0.0 1.4 4.0 5.8 5.7 6.4 B 1.4 0.0 3.2 4.5 4.2 5.0 C 4.0 3.2 0.0 3.2 4.0 5.0 D 5.8 4.5 3.2 0.0 1.4 2.2 E 5.7 4.2 4.0 1.4 0.0 1.0 F 6.4 5.0 5.0 2.2 1.0 0.0

Slide 16

Slide 16 text

Rでやってみる https://bit.ly/mihara-r

Slide 17

Slide 17 text

クラスター分析関係のコマンド (1) ‣ d=dist(data) ✓ 距離行列を計算。dataはmatrixでも dataframe でもどちらでも良い。 ‣ hc=hculst(d,method="手法") ✓ 階層的クラスター分析を実行 ✓ methodには,simple, complete, average, ward.D などが指定できる ‣ cn=cutree(hc,n) ✓ クラスタをn個にした時,サンプルに対応 するクラスタ番号のリストを取得 17

Slide 18

Slide 18 text

クラスター分析のサンプル (1) # 練習問題のデータを作成 sample = matrix(c(1,1, 2,2, 1,5, 4,6, 5,5, 6,5),byrow=T,ncol=2) rownames(sample) = c("A","B","C","D","E","F") colnames(sample) = c("X","Y") plot(sample) 18

Slide 19

Slide 19 text

クラスター分析のサンプル (2) # 距離行列の計算 sample_dist = dist(sample) # クラスタリング実行 sample_hc = hclust ( sample_dist, method="complete") # デンドログラム描画 plot(sample_hc,hang=-1) # 各サンプルに対応するクラスタ番号を取得 sample_cn = cutree(sample_hc,2) # クラスタごとに色分けして散布図を描く plot(sample, pch=16, col=sample_cn) 19 1 2 3 4 5 6 7 8 既定の色番号

Slide 20

Slide 20 text

クラスター分析のサンプル (3) # 非階層的クラスター分析 (k-meansを実施) sample_nhc = kmeans( sample, 2 ) # クラスタごとに色分けして散布図を描く plot(sample, pch=16, col=sample_nhc$cluster) 20