データを準備する

機械学習のためのデータ準備と特徴量エンジニアリングのコースでは、一般的なデータの準備について説明しますが、このコースではクラスタリングに固有の準備について説明します。

クラスタリングでは、2 つのサンプル間のすべての特徴データを数値に結合して、2 つのサンプル間の類似度を計算します。特徴データを組み合わせるには、データのスケールが同じである必要があります。このセクションでは、分位値の正規化、変換、作成について説明し、分位値がデータ分布の変換にデフォルトで最適な理由について説明します。デフォルトの選択肢を指定することで、データの分布を検査することなくデータを変換できます。

データの正規化

複数の特徴のデータを正規化して、同じスケールに変換できます。特に、最も一般的なデータ分散であるガウス分布の処理には、正規化が適しています。分位点に比べて、正規化すると、計算に必要なデータが大幅に少なくなります。次のように Z スコアを計算して、データを正規化します。

\[x'=(x-\mu)/\sigma\\ \begin{align*} \text{where:}\quad \mu &= \text{mean}\\ \sigma &= \text{standard deviation}\\ \end{align*} \]

正規化がある場合とない場合の例の類似性を見てみましょう。図 1 では、赤が黄色よりも青色に類似していることがわかります。 ただし、X 軸と Y 軸の対象物のスケールが同じではありません。したがって、観測された類似性はスケーリングされていないデータのアーティファクトである可能性があります。Z スコアを使用して正規化すると、すべての特徴のスケールが同じになります。実際には、赤は黄色に類似しています。したがって、データを正規化した後、類似度をより正確に計算できます。

正規化前後の特徴データを比較する 2 つのグラフ
図 1: 正規化前後の特徴データの比較。

要約すると、次のいずれかに該当する場合、正規化を適用します。

  • データのガウス分布
  • データセットに、分位値を作成するのに十分なデータがありません。

Log Transform を使用する

データセットは、ローエンドでデータをクランプするべき乗法分布に準拠することもあります。図 2 では、赤が黄色よりも黄色に近くなっています。

データの大部分がローエンドにある棒グラフ
図 2: 配電法の分布。

ログ変換を使用してべき乗の分散を処理します。図 3 では、ログ変換によって分布が滑らかになり、赤は黄色よりも青色に近くなっています。

正規(ガウス)分布を示すグラフ
図 3: 正規(ガウス)分布。

分位の使用

正規化とログの変換は、特定のデータ分布に対応しています。データがガウス分布またはべき乗法則の分布に適合しない場合はどうなりますか?あらゆるデータ分散に適用される一般的なアプローチはありますか。

この分布を前処理してみましょう。

前処理前のデータ分布を示すグラフ
図 4: 前処理前の分類不能な分布。

直感的に、2 つの例の間にサンプルが数個しかなければ、その 2 つの例は値に関係なく類似しています。逆に、2 つのサンプル間に多数のサンプルがある場合は、類似性が低くなります。したがって、2 つの例間の類似性は、それらの例の数が増えるにつれて減少します。

正規化は線形変換であるため、データの正規化は単純にデータの分布を再現します。下の図 5 に示すように、ログ変換を適用しても、類似性の仕組みに関する直感は反映されません。

ログ変換後のデータ分布を示すグラフ
図 5: ログ変換後の分布。

代わりに、データをいくつかの間隔に分割し、各間隔に一定数のサンプルを含めます。これらの間隔境界は、分位と呼ばれます。

次の手順を行って、データを分位値に変換します。

  1. 間隔の数を決定します。
  2. 各間隔のサンプル数が等しくなるように間隔を定義します。
  3. 各例を、該当する間隔のインデックスに置き換えます。
  4. インデックス値を [0,1] にスケーリングして、他の特徴データと同じ範囲に指定します。
分位点に変換した後のデータを示すグラフ。この線は 20 区間を表します。]
図 6: 分位点に変換した後の分布。

データを分位値に変換すると、2 つのサンプル間の類似性は、2 つのサンプル間のサンプル数に反比例します。数学的には「x」がデータセットの例となります。

  • \(sim(A,B) \approx 1 − | \text{prob}[x > A] − \text{prob}[x > B] |\)
  • \(sim(A,B) \approx 1 − | \text{quantile}(A) − \text{quantile}(B) |\)

分位は、データを変換するデフォルトの最適な選択肢です。ただし、基盤となるデータ分布の信頼できる指標である分位値を作成するには、多くのデータが必要です。経験則上、 \(n\) 分位点を作成するには、少なくとも \(10n\) 例が必要です。十分なデータがない場合は、正規化を使用します。

理解度をチェック

以下の質問については、分位値を作成するのに十分なデータがあることを前提としています。

問題 1

3 つのデータ分布を示すプロット
このデータ分布をどのように処理しますか。
分位点を作成する。
正解です。分布は標準のデータ分散と一致しないため、分位値の作成にフォールバックする必要があります。
正規化
通常、次の場合はデータを正規化します。
  • データ分布はガウス分布です。
  • データの内容を理解する。これにより、データを非線形に変換すべきでないことがわかります。そのため、分位値を回避し、代わりに正規化を選択します。
上記のいずれにも当てはまりません。対称的ではないため、データ分布はガウス分布にはなりません。また、これらの値が実際の環境で何を表すかについては、分析情報がありません。
ログ変換。
これは完全な電力法則の分布ではないため、最適な選択肢ではありません。

問題 2

3 つのデータ分布を示すプロット
このデータ分布をどのように処理しますか。
正規化
正解です。これはガウス分布です。
分位点を作成する。
不正解です。これはガウス分布であるため、推奨される変換は正規化です。
ログ変換。
不正解です。対数法則分布にのみログ変換を適用します。

欠損データ

データセットに特定の特徴に対する欠損値を含むサンプルがあり、このような例がほとんど発生しない場合は、これらの例を削除できます。このような例が頻繁に発生する場合は、この機能を完全に削除するか、機械学習モデルを使用して他の例から欠落している値を予測するかを選択できます。たとえば、既存の特徴データでトレーニングした回帰モデルを使用して、欠損している数値データを推測できます。