機械学習編

基礎的な機械学習ロジックの理解を問います

k-meansクラスタリング (中心更新) レベル1

k-meansクラスタリングアルゴリズムの1回の反復を実行します。2次元の点集合とクラスタの初期中心が以下のように与えられています。距離指標にはユークリッド距離を使用します。\begin{array}{|c|c|} \hline \text{点集合} & \text{座標} \\ \hline P1 & (1, 1) \\ \hline P2 & (4, 4) \\ \hline P3 & (6, 2) \\ \hline P4 & (7, 5) \\ \hline P5 & (8, 3) \\ \hline P6 & (9, 6) \\ \hline \end{array}\begin{array}{|c|c|} \hline \text{初期クラスタ中心} & \text{座標} \\ \hline C1 & (2, 3) \\ \hline C2 & (7, 7) \\ \hline \end{array}ステップ1として、各点をユークリッド距離で最も近い初期クラスタ中心に割り当てた結果、クラスタ1には点P1, P2, P3が、クラスタ2には点P4, P5, P6が割り当てられました。(割り当てステップの計算は省略)ステップ2として、クラスタ1に割り当てられた点を用いて、新しいクラスタ1の中心のx座標を計算しなさい。(小数点以下3桁まで求めてください)

解説
解答と解説を表示
<h4>k-meansクラスタリングとは?</h4> <p>k-meansは、与えられたデータセットを事前定義された数 \(k\) 個のクラスタ(グループ)に分割するための、代表的な<strong>教師なし学習</strong>アルゴリズムです。目的は、各クラスタ内のデータ点からそのクラスタ中心までの距離の二乗和(クラスタ内平方和)を最小化することです。データの中に潜む構造を発見するのに役立ちます。</p> <h4>k-means アルゴリズムの反復ステップ</h4> <p>k-meansは以下の2つのステップを交互に繰り返し、クラスタ中心がほとんど変化しなくなるまで続けます。</p> <ol> <li><strong>割り当てステップ (Assignment Step):</strong> 各データ点を、現在の \(k\) 個のクラスタ中心のうち、最も距離が近い中心に割り当てます。距離指標には通常、<strong>ユークリッド距離</strong>が用いられます。</li> <li><strong>中心更新ステップ (Update Step):</strong> 各クラスタについて、そのクラスタに割り当てられた全てのデータ点の<strong>重心(各次元の座標値の平均)</strong>を計算し、それを新しいクラスタ中心とします。</li> </ol> <h4>計算ステップ</h4> <p>この問題では、反復の途中段階を考えます。</p> <p><strong>前提:</strong> 割り当てステップ (ステップ1) が完了し、クラスタへの点の割り当てが以下のようになっているとします。</p> <ul> <li>クラスタ1 (C1) に割り当てられた点: P1(1, 1), P2(4, 4), P3(6, 2)</li> <li>クラスタ2 (C2) に割り当てられた点: P4(7, 5), P5(8, 3), P6(9, 6)</li> </ul> <p><strong>実行:</strong> 中心更新ステップ (ステップ2) を行い、クラスタ1の新しい中心 \(C1'\)を計算します。</p> <p>クラスタ1の新しい中心は、P1, P2, P3 の座標の平均値(重心)です。</p> <p><strong>新しいクラスタ1の中心 \(C1'\) の x座標:</strong></p> <div class="formula"> $C1'_x = \frac{\text{クラスタ1の点のx座標の合計}}{\text{クラスタ1の点の数}} = \frac{1 + 4 + 6}{3} = \frac{11}{3} \approx 3.6666... $ </div> <p>小数点以下3桁まで求めると、新しいクラスタ1の中心のx座標は <strong>3.667</strong> です。</p> <p><strong>(参考) 新しいクラスタ1の中心 \\(C1'\\) の y座標:</strong></p> <div class="formula"> $C1'_y = \frac{1 + 4 + 2}{3} = \frac{7}{3} \approx 2.333$ </div> <p>したがって、新しいクラスタ1の中心は \(C1' \approx (3.667, 2.333)\) となります。この後、再び割り当てステップが行われます。</p> <div class="key-point"> <div class="key-point-title">k-means の重要ポイント</div> <ul> <li><strong>用途:</strong> 顧客セグメンテーション、画像圧縮、異常検知の前処理など。</li> <li><strong>シンプルで高速:</strong> 実装が容易で大規模データにも適用しやすい。</li> <li><strong>初期値依存性:</strong> 最初のクラスタ中心の選び方で結果が変わる。k-means++ など改良手法がある。</li> <li><strong>\(k\) の事前決定:</strong> クラスタ数 \(k\) を事前に指定する必要がある。エルボー法やシルエット係数で推定する。</li> <li><strong>形状の仮定:</strong> 球状でサイズが同程度のクラスタを仮定。複雑な形状や密度の異なるクラスタは苦手。</li> <li><strong>外れ値の影響:</strong> 外れ値に弱い。</li> <li><strong>距離指標:</strong> ユークリッド距離が一般的だが、データの種類によっては他の距離(例: コサイン類似度)が適切な場合もある。</li> </ul> </div>
問題 1/1
カテゴリ一覧に戻る