---
tags: スキル定義委員会, データ加工, グルーピング, 分析評価, クラスター分析, ユークリッド距離, マンハッタン距離, マハラノビス距離
---
# スキル定義委員会-088
## DE-88 データ加工 - 集計処理 ⭐️ 🔥必須🔥
### 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)])
# 1〜4のグループとする列を作成
data["group"] = np.random.randint(1, 5, len(data))
'''
col_0 col_1 col_2 col_3 group
0 0.046331 0.584696 0.172439 0.630185 3
1 0.063729 0.232372 0.369043 0.078574 4
2 0.931365 0.126228 0.852814 0.910673 4
3 0.390045 0.026723 0.073754 0.000125 2
...
'''
```
”group”列の値で集計する
```python=
data.groupby("group")
# 平均
data.groupby("group").mean()
'''
col_0 col_1 col_2 col_3
group
1 0.499637 0.499843 0.500376 0.501325
2 0.499744 0.498290 0.499367 0.499145
3 0.500008 0.498164 0.501289 0.498881
4 0.500457 0.499205 0.500709 0.499280
'''
# 最大
data.groupby("group").max()
'''
col_0 col_1 col_2 col_3
group
1 0.999987 0.999995 0.999994 0.999997
2 0.999997 0.999992 0.999983 0.999981
3 0.999996 0.999996 0.999998 0.999991
4 0.999995 0.999973 0.999995 0.999998
'''
```
------------------------------------------------------------------------
## DS-88 グルーピング - グルーピング ⭐️⭐️
### Q.クラスター分析を実行する際、各種距離関数(ユークリッド距離、マンハッタン距離、マハラノビス距離など)を理解し、分析目的に合致した最適な距離計算で分析できる
クラスター分析では、データポイント間の類似性・非類似性の計算方法を決定するため、距離関数の選択が重要である。データの種類や分析の目的によって、適切な距離関数が異なります。ここでは、よく使われる距離関数をいくつか紹介します。
1. **ユークリッド距離(Euclidean distance)**
クラスター分析で最もよく使われる距離関数です。
多次元空間における2点間の直線距離を測定します。
<span class="att0">正規分布を持つ連続的な数値データ</span>に適しています。
1. **マンハッタン距離(Manhattan distance)(シティブロック距離)**
この距離関数は、多次元空間における2点の座標の差の絶対値を測定し、それらを合計したものです。
<span class="att0">順序変数(順序尺度や区間尺度)やカテゴリー変数を持つデータ</span>に適しています。
1. **ミンコフスキー距離(Minkowski distance)**
ユークリッド距離やマンハッタン距離を一般化したもので、各座標差の最終距離への影響度をパワーパラメータで制御することが可能です。
<span class="att0"> 数値データとカテゴリーデータなど、変数の種類が混在するデータ</span>に適しています。
1. **マハラノビス距離(Mahalanobis distance)**
この距離関数は、多次元空間における2点間の距離を計算する際にデータの共分散構造を考慮した多変量距離関数です。
<span class="att0"> 互いに複雑な関係を持つ複数の変数を持つデータ(正規分布していないデータ)</span>に適しています。
1. **コサイン類似度(Cosine similarity)**
2つのベクトル間の角度の余弦を測定する距離関数で、値は-1〜1です。
データポイントが<span class="att0">高次元ベクトルとして表現されるテキストや文書データ(頻度カウントやバイナリ値で表現されるデータ)</span>に適しています。
高次元空間のベクトルとして表現される2つのオブジェクトの類似度を測る尺度です。
1. **Jaccardの類似度(Jaccard similarity)**
この距離関数は、2つのデータセット間の類似性を0から1までの値で測定します。
<span class="att0">データポイントが2値のセットとして表現されるカテゴリデータ</span>に適しています。
クラスター分析に適した距離関数を選択する際には、分析するデータの種類、扱う研究課題、分析で得たい結果などを考慮することが重要である。また、異なる距離関数を用いた分析結果を検証し、その結果を比較することで、最も適切な距離関数が選択されていることを確認することが重要である。
------------------------------------------------------------------------
## BZ-88 分析評価 - 業務へのフィードバック ⭐️⭐️
### Q.分析的検討に基づき、担当業務に対する必要なアクション、改善案を整理して結論を導くことができる
分析・考察に基づき、担当業務に必要なアクションや改善案を整理し、結論を導き出すことが可能です。そのためには、分析結果、分析の目的、分析結果の限界と限界を十分に理解することが必要です。
分析的研究に基づく結論を整理して導き出すことは、十分な情報に基づいた意思決定と必要な行動をとるための重要なステップとなります。このプロセスには、以下のステップが役立ちます。
1. **結果の確認**
まず、分析結果(グラフや表など)を確認します。時間をかけて、結果とその意味を理解します。
1. **パターンと傾向の特定**
結果を説明するために、データのパターンや傾向を探します。これにより、結果に寄与している要因や変数間の関係を特定することができます。
1. **データの質を評価する**
分析に使用したデータの品質を確認します。結果に影響を与えた可能性のある制限やバイアスも確認します。
1. **長所と限界の評価**
データ、方法論、目的における制限を含め、分析研究の長所と制限を評価する。これらの制限が結果にどのような影響を及ぼしたか、また、分析を改善するためにこれらの制限に対処する必要があるかどうかを検討する。
1. **文脈を考慮する**
結果に影響を与えた可能性のある外部要因や仮定を含め、結果が得られた背景を考察する。
1. **長所と短所を把握する**
使用した分析手法の長所と短所(結果に影響を与えた可能性のある制限や偏りを含む)を明らかにする。
1. **結論の導出**
結果、パターン、傾向、データの質、背景、長所と短所のレビューに基づいて、結果が何を意味するのか、どのような行動を取るべきかについて結論を出す。
1. **改善計画の策定**
結論に基づき、弱点や制限に対処し、結果を改善するために必要なアクションとステップをまとめた改善計画を策定する。
結果を批判的に評価し、必要なアクションや改善案を検討することで、責任ある業務において、より良い結果やパフォーマンスの向上につながる、情報に基づいた意思決定が可能になります。利用可能な資源と制約を考慮し、アクションと改善提案を整理するプロセスに客観的かつ体系的にアプローチすることが重要である。
結論として、分析と考察に基づいて行動と改善案を整理できることは、データと分析を用いて意思決定を促進し、ビジネスオペレーションにおいてより良い結果を得るための重要なステップとなります。
結論の導き出しのプロセスには、客観的かつ体系的にアプローチし、その結果が妥当で信頼できるものであることを確認することが重要である。そうすることで、必要なアクションや改善計画が確かな証拠に基づいており、望ましい結果を得るために効果的であることを確認することができるのです。
------------------------------------------------------------------------
# Quote
- [スキル定義委員会 from データサイエンティスト協会](https://twitter.com/jdss_skill)
<style>
.att0 {color: #eb4034;}
.att1 {color: #3465eb;}
.att2 {color: #69c976;}
</style>
<!-- <span class="att0"></span> -->