---
# System prepended metadata

title: スキル定義委員会-087
tags: [' グルーピング', スキル定義委員会, ' 階層クラスター分析', ' 分析評価', ' Ward法', ' データ加工']

---

---
tags: スキル定義委員会, データ加工, グルーピング, 分析評価, 階層クラスター分析, Ward法
---

# スキル定義委員会-087

## DE-87 データ加工 - サンプリング処理 ⭐️ 🔥必須🔥

### Q.数十万レコードのデータに対して、ランダムまたは一定間隔にデータを抽出できる

```python=
import numpy as np
import pandas as pd

# 300,0000件のランダムなデータの作成
data = np.random.random_sample(size=(3*(10**5), 4))
data = pd.DataFrame(data, columns=[f"col_{i}" for i in range(0, 4)])

'''
	col_0      	col_1    	col_2	    col_3
0	0.880273	0.451668	0.943405	0.235324
1	0.707692	0.840756	0.319924	0.353864
...

'''

# 全体の1/10のデータをランダムに取得
interval = 10
n = int(len(data)/10)
sample = data.sample(n=n)

'''
    	    col_0    	col_1    	col_2    	col_3
8963503    	0.701092	0.394401	0.098325	0.046186
2676507	    0.869535	0.948305	0.403965	0.546694
11417500	0.366660	0.531176	0.991868	0.922549
...

laptime: 0.0044s
'''

# 一定の間隔でデータを取得
# 10件ずつ取得する
sample = data[::interval]

'''
	col_0    	col_1	    col_2    	col_3
0	0.702801	0.873923	0.675515	0.710270
10	0.071756	0.757185	0.486944	0.218650
20	0.884857	0.858907	0.353545	0.597101
...

laptime: 0.062ms
'''
```
------------------------------------------------------------------------

## DS-87 グルーピング - グルーピング ⭐️⭐️

#### Q.階層クラスター分析における代表的なクラスター間距離（Ward法、群平均法、最長一致法など）の概念を理解し、目的に合致した最適な手法で分析できる

### Ward法

Ward法は，クラスタリングへのボトムアップ・アプローチであり，個々のオブザベーションを別々のクラスタとして開始し，停止基準が満たされるまで最も近いクラスタを反復的にマージするような手順で行われます。

プロセスの各ステップにおいて，Ward法は，新しく形成されたクラスタとその元の構成クラスタとの間の2乗距離(ユークリッド距離)の合計の増加を最小にすることを目指します。分析される変数のスケールに敏感であるため、分析前に変数を標準化することが推奨されます。

1. **凝縮(Agglomerative)**
    Ward法は凝集型階層クラスタリングアルゴリズムで、個々のオブザベーションを別々のクラスタとして開始し、それらをより大きなクラスタに反復的に統合することを意味します。
1. **Linkage Criterion**
    マージされたクラスタ間の距離の分散を最小化することに基づくリンク基準を使用します。この基準は，"incremental sum of squared errors" (ISSE) とも呼ばれ，クラスタ内のオブザベーション間の2乗ユークリッド距離の合計を減少させることを目的としています。
1. **Hierarchical Representation**
    Ward法は、クラスタリング解をデンドログラムの形で階層的に表現し、統合の順序と結果のクラスタ間の類似性を示します。
1. **Distance Matrix**
    Ward法は、データに対して距離行列を計算する必要があり、これはオブザベーションの各ペア間の非類似度を測定します。この行列は、クラスタが統合されるにつれて、アルゴリズムの各ステップで更新されます。

#### Ward法の目的は

1. 得られたクラスタ間の距離の分散の総和を最小にする
1. クラスタリングソリューションの階層的表現を生成する
1. 類似したデータ点間を、互いへの距離に基づいてクラスタにグループ化する

データの構造を調べ、パターンと関係を発見し、類似した観測値のグループを特定するのに有効なツールです。

### 群平均法(The Group Mean Method)

群平均法は、平均値に基づいて類似したクラスタを統合するという概念に基づく、階層型クラスタリングアルゴリズムです。群平均法は連結法の一種であり、2つのクラスタ間の距離をどのように計算するかを決定します。

主な目的は、各クラスタの変数の平均を求め、これらの平均を使ってクラスタ間の距離を計算することである。この方法は，各クラスタの変数の平均とクラスタ内の各オブザベーションの実際の値との間の2乗差を最小化しようとするものである．

#### 目的

1. **分散の最小化**
    群平均法は，各オブザベーションのそのクラスタの変数の平均からの2乗偏差の合計を最小化することを目的とします。
1. **クラスタ間の距離**
    2つのクラスタ間の距離は，それらの平均ベクトル間のユークリッド距離として計算されます．
1. **クラスターが球形であることの仮定**
    群平均法は、クラスタが球形であり、各クラスタの平均がクラスタ全体を代表するものであると仮定します。
1. **外れ値に対する感度**
    群平均法は外れ値に敏感で、1つの外れ値がクラスタの平均に大きな影響を与えることがあります。
1. **ロバストでない**
    群平均法は外れ値の存在に対してロバストでなく、外れ値の存在によって結果が大きく左右されることがあります。
    
- 最もコンパクトなクラスタ、すなわちクラスタ内の二乗和が小さいクラスタを見つけること
- デンドログラムを観察し、最適なカットオフ・ポイントを見つけることによって、最適なクラスタ数を決定する
- 類似のオブザベーションを同じクラスタにグループ化することにより、データ中の意味のある構造を見つける
- 個々のオブザベーションからは明らかにならないデータ中のパターンや傾向を識別する
- オブジェクトとオブジェクトのグループ間の類似性を階層的に反映するツリーを作成する
- ツリーの異なるレベルを調べることにより、異なるレベルのクラスタ構造の調査を可能にする
- ツリーが構築されるにつれて、マージされたクラスタ間の類似度の変化を観察することによって、最適なクラスタ数を見つけること

#### 特徴

この方法は、クラスタ間の階層的な関係を示すデンドログラムを作成する
1. 各クラスタの平均をクラスタの代表として用いる
    **:crystal_ball:距離メトリック**
    群平均法は、ユークリッド距離メトリックを使用して、2つのクラスタ間の類似性を計算します。
1. 2つのクラスタ間の距離は、2つのクラスタの平均の間のユークリッド距離に基づいて決定する
    **:maple_leaf:マージ基準(Merge criterion)**
    2つのクラスタ間の類似度は、2つのクラスタ内のオブジェクトの全ペア間の平均距離として計算されます。平均距離が最小となる2つのクラスタは、1つの新しいクラスタにマージされます
1. ボトムアップアプローチであり、各データポイントを個々のクラスタとして開始し、互いに最も近いクラスタを順次統合していきます。
    **:palm_tree:結果ツリー(Resulting tree)**
    群平均法によって生成される結果木は、形成されたクラスタを階層的に表現したものです。ツリーの各ノードはクラスタを表し、ノード間の枝はマージされた2つのクラスタ間の類似度を表します。


全体として、群平均法は、特に球状のクラスタと分散の最小化という仮定が満たされる場合、階層的なクラスタ分析に有用な手法です。しかし、その限界と外れ値に対する潜在的な感度を知っておくことが重要です。

### 最長一致法(完全連鎖法)

階層型クラスタ分析で用いられる連鎖法の一種です。これは，既存の2つのクラスタを，そのオブジェクト間の最大類似度に基づいて1つの新しいクラスタに統合することにより，クラスタを作成することを目的としています。

#### 特徴
1. **Distance metric**
    最長一致法は、ユークリッド距離などの任意の距離指標を用いて、クラスタ内のオブジェクト間の類似度を計算する方法です。
1. **Merge criterion**
    最長一致法は、ユークリッド距離などの任意の距離指標を用いて、クラスタ内のオブジェクト間の類似度を計算する方法である。
1. **Resulting tree**
    最長一致法で生成される木は，形成されたクラスタを階層的に表現したものである．木の各ノードはクラスタを表し，ノード間の枝は，結合された2つのクラスタ間の類似度を表す．

#### 目的

1. オブジェクトとオブジェクトのグループ間の類似性を階層的に反映したツリーを作成すること
1. ツリーの異なるレベルを調べることにより、異なるレベルのクラスタ構造を調べることができるようにすること
1. ツリーを構築する際に、マージされたクラスタ間の類似度の変化を観察することで、最適なクラスタ数を見つけること
1. オブジェクトとオブジェクトのグループ間の類似性を階層的に反映するツリーを作成する
1. ツリーの異なるレベルを調べることで、異なるレベルのクラスタ構造を調べることができるようにする
1. ツリーを構築する際に、マージされたクラスタ間の類似度の変化を観察することで、最適なクラスタ数を見つけること

全体として，最長一致法は，データ内に意味のあるパターンや関係を発見することができるため，<span class="att0">外れ値が多いデータセットや、クラスタ内のオブジェクト間に明確な差異があるデータセットを扱う場合</span>に，探索的なデータ解析に有用なツールであると言えます。
特に，サイズや形状が大きく異なるクラスタを含むデータセットを扱う場合に有効です。また、結合されたクラスタ間の差を最大化することを目的としているため，境界が明確に定義されたクラスタを識別するのに有効です。

------------------------------------------------------------------------

## BZ-87 分析評価 - 評価 ⭐️⭐️ 🔥必須🔥


### Q.分析結果が当初の目的を満たしていない場合に、問題を正しく理解し、目的達成に向けて必要な分析手順を追加・変更できる

階層型クラスター分析の結果が当初の目的を満たさない場合、いくつかの点に留意することが重要です。

1. **Validity of the method**
    まず考慮すべきは、選択した手法が手元の問題やデータに適しているかどうかです。リンケージ手法によって長所と短所が異なるため、望ましい結果を得るためには、別の手法を試したり、複数の手法を組み合わせて使用したりする必要があるかもしれません。
1. **Quality of the data**
    データの質は分析結果に大きく影響します。とくに、異常値・外れ値を除外し、データの品質を向上させるために、データのクリーニング、正規化、変換が必要な場合があります。
1. **Number of clusters**
1. **Visual inspection**
1. **Validate the methodology**
    分析に使用した方法（連鎖法、距離メトリック、その他使用したパラメータなど）を検証することが重要です。選択した手法とパラメータが、データや扱う問題に対して適切であることを確認する。
1. **Re-evaluate the objectives**
    当初の目的が今も適切か、あるいは修正が必要かを判断するために、再評価する必要があるかもしれません。
1. **Consider alternative methods**
    分析結果が満足のいくものでない場合、データを分析するための別の方法または技法を検討する必要がある場合があります。例えば、階層型クラスター分析ではなく、k-meansやDBSCANなどの別のタイプのクラスタリング手法がより適切な場合がある。
1. **Interpret the results carefully**
    分析結果が当初の目的を満たさなかったとしても、慎重に解釈することが重要である。その結果は、今後の分析や意思決定に活用できる貴重な知見や情報を提供する可能性があります。

階層型クラスター分析の結果が当初の目的を満たさない場合、方法、データ、結果を慎重に検討します。矛盾の原因を突き止め、必要に応じて調整を行い、望ましい結果を得るためにさまざまなクラスタ数を試し、結果を改善することが重要です。

初期分析実施後の分析手順の追加・変更には、いくつかの理由があります。

1. **To improve accuracy**
    初期の分析に限界があった場合や、分析終了後に限界が判明した場合、分析手順を追加・変更することで結果の精度を向上させることができます。
1. **To address limitations**
    手順の追加や変更は、データの質、方法論、目的における制限など、最初の分析で明らかになった制限に対処するのに役立ちます。
1. **To address new research questions**
    最初の分析を行った後に新しい研究課題が生まれることがありますが、分析手順を追加または変更することで、そのような新しい課題に対処し、データに対するより深い洞察を得ることができます。
1. **To address new data**
    最初の分析を行った後に新しいデータが入手できる場合があり、手順を追加または変更することで、この新しいデータを分析に取り入れることができ、より包括的な結果を得ることができます。
1. **To address new technologies or techniques**
    技術の進歩や新しい技術の開発により、分析結果の向上が可能になる場合があり、手順の追加や変更により、これらの進歩を活用することができます。

全体として、最初の分析後に分析手順を追加または変更することのポイントは、結果を改善し、限界に対処し、データに対するより深い洞察を提供することである。このような変更には客観的かつ体系的に取り組み、変更後も結果が有効で信頼できるものであることを確認することが重要である。

------------------------------------------------------------------------

# Quote
- [スキル定義委員会 from データサイエンティスト協会](https://twitter.com/jdss_skill)

<style>
    .att0 {color: #eb4034;}
    .att1 {color: #3465eb;}
    .att2 {color: #69c976;}
</style>

<!-- <span class="att0"></span> -->