探索的データ分析 (EDA) を実行する - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

探索的データ分析 (EDA) を実行する

Data Wrangler には、数回のクリックで視覚化とデータ分析を生成するのに役立つ分析が組み込まれています。独自のコードを使用してカスタム分析を作成することもできます。

データフレームに分析を追加するには、データフローでステップを選択し、[Add analysis] (分析を追加) を選択します。作成した分析にアクセスするには、分析を含むステップを選択し、分析を選択します。

すべての分析は、データセットの 20,000 行を使用して生成されます。

次の分析をデータフレームに追加できます。

  • ヒストグラムや散布図などのデータビジュアライゼーション。

  • エントリ数、最小値と最大値 (数値データの場合)、最も頻度の高いカテゴリ (カテゴリ別データの場合) など、データセットの簡単な要約。

  • 各特徴の重要度スコアを生成するために使用できるデータセットの簡単なモデル。

  • 1 つ以上の特徴がターゲットの特徴と強い相関性があるかどうかを判断するために使用できるターゲットの漏洩レポート。

  • 独自のコードを使用したカスタムビジュアライゼーション。

これらのオプションの詳細については、次のセクションを参照してください。

データおよびデータ品質に関するインサイトを取得する

データ品質とインサイトレポートを使用して、Data Wrangler にインポートしたデータを分析します。データセットをインポートした後にレポートを作成することをお勧めします。このレポートはデータのクリーニングと処理に役立ちます。欠損値の数や外れ値の数などの情報が提供されます。ターゲット漏洩や不均衡など、データに問題がある場合は、インサイトレポートでそれらの問題に注意を向けることができます。

以下の手順を使用して、データ品質とインサイトレポートを作成します。Data Wrangler フローにデータセットをインポート済みであることを前提としています。

データ品質とインサイトレポートを作成するには
  1. Data Wrangler フロー内のノードの横にある [+] を選択します。

  2. [データインサイトを取得する] を選択します。

  3. [分析名] に、インサイトレポートの名前を指定します。

  4. (オプション) [ターゲット列] に、ターゲット列を指定します。

  5. [問題のタイプ] に、[回帰] または [分類] を指定します。

  6. [データサイズ] に、次のいずれかを指定します。

    • 20 K – インポートしたデータセットの最初の 20,000 行を使用してレポートを作成します。

    • [データセット全体] — インポートしたデータセット全体を使用してレポートを作成します。

    注記

    データセット全体で Data Quality and Insights レポートを作成すると、Amazon SageMaker 処理ジョブが使用されます。 SageMaker 処理ジョブは、すべてのデータのインサイトを取得するために必要な追加のコンピューティングリソースをプロビジョニングします。ジョブ SageMaker の処理の詳細については、「」を参照してください処理ジョブを使用してデータ変換ワークロードを実行する

  7. [Create] (作成) を選択します。

以下のトピックはレポートの各セクションを示しています。

レポートはダウンロードすることも、オンラインで表示することもできます。レポートをダウンロードするには、画面右上にあるダウンロードボタンを選択します。

[概要]

インサイトレポートには、欠損値、無効な値、特徴型、外れ値の数などの一般的な情報を含むデータの簡単な概要が表示されます。また、データに問題がある可能性を示す、重要度の高い警告を含めることもできます。警告を調査することをお勧めします。

ターゲット列

Data Quality and Insights レポートを作成すると、Data Wrangler はターゲット列を選択するオプションを提供します。ターゲット列とは、予測しようとしている列のことです。ターゲット列を選択すると、Data Wrangler はターゲット列分析を自動的に作成します。また、予測能力の順に特徴をランク付けします。ターゲット列を選択するときは、解決しようとしているのが回帰問題なのか分類問題なのかを指定する必要があります。

分類の場合、Data Wrangler は最も一般的なクラスの表とヒストグラムを表示します。クラスはカテゴリです。また、ターゲット値が欠落しているか無効である観測値または行も表示されます。

回帰の場合、Data Wrangler はターゲット列のすべての値のヒストグラムを表示します。また、ターゲット値が欠落している、無効である、または外れ値になっている観測値または行も表示されます。

クイックモデル

クイックモデルでは、データを使ってトレーニングしたモデルの想定される予測品質を推定できます。

Data Wrangler はデータをトレーニングフォールドと検証フォールドに分割します。サンプルの 80% をトレーニングに、値の 20% を検証に使用します。分類の場合、サンプルは層化分割されます。層化分割では、各データパーティションのラベルの比率は同じです。分類問題では、トレーニングフォールドと分類フォールドのラベルの比率を同じにすることが重要です。Data Wrangler は、デフォルトのハイパーパラメータを使用して XGBoost モデルをトレーニングします。検証データに早期停止を適用し、特徴の前処理は最小限に抑えます。

分類モデルの場合、Data Wrangler はモデルの要約と混同行列の両方を返します。

分類モデルの概要が返す情報の詳細については、「」を参照してください定義

混同行列には、次の情報が表示されます。

  • 予測されたラベルが実際のラベルと一致する回数。

  • 予測されたラベルが実際のラベルと一致しない回数。

実際のラベルは、データ内の実際の観測値を表します。例えば、モデルを使用して不正取引を検出する場合、実際のラベルは実際に不正または不正でない取引を表します。予測されたラベルは、モデルがデータに割り当てるラベルを表します。

混同行列を使用すると、モデルが条件の有無をどの程度正確に予測できるかを確認できます。不正取引を予測する場合は、混同行列を使用してモデルの感度と特異性の両方を把握できます。感度とは、モデルが不正取引を検出する能力を指します。特異性とは、不正ではない取引を不正な取引として検出することを回避するモデルの能力を指します。

特徴の概要

ターゲット列を指定すると、Data Wrangler は特徴を予測能力の順に並べます。予測能力は、データを 80% のトレーニング分割と 20% の検証分割に分割した後に測定されます。Data Wrangler は、各特徴のモデルをトレーニングフォールドで別々にあてはめます。最小限の特徴の前処理を適用し、検証データの予測パフォーマンスを測定します。

スコアは [0,1] の範囲に正規化されます。予測スコアが高いほど、その列がターゲットを単独で予測するのに有用であることを示します。スコアが低いほど、列がターゲット列を予測できないことを示します。

単独で予測できない列を他の列と組み合わせて使用することで予測可能になることはまれです。予測スコアを使用して、データセット内の特徴が予測可能かどうかを確信をもって判断できます。

通常、スコアが低い場合は、特徴が冗長であることを示します。スコア 1 は完璧な予測能力を示し、多くの場合はターゲット漏洩を意味します。ターゲット漏洩は通常、予測時に使用できない列がデータセットに含まれている場合に発生します。例えば、ターゲット列と重複している場合があります。

サンプル

Data Wrangler は、サンプルが異常かどうか、またはデータセットに重複があるかどうかに関する情報を提供します。

Data Wrangler は、アイソレーションフォレストアルゴリズムを使用して異常サンプルを検出します。アイソレーションフォレストは、データセットの各サンプル (行) に異常スコアを関連付けます。異常スコアが低い場合は、サンプルに異常があることを示します。スコアが高いほど、サンプルに異常がないことを示します。通常、異常スコアが負のサンプルは異常と見なされ、異常スコアが正のサンプルは異常ではないと見なされます。

異常の可能性があるサンプルを調べる場合は、異常な値に注意することをお勧めします。例えば、データの収集と処理におけるエラーによって異常な値になる場合があります。以下は、Data Wrangler によるアイソレーションフォレストアルゴリズムの実装による最も異常なサンプルの例です。異常サンプルを調べる際には、ドメイン知識とビジネスロジックを使用することをお勧めします。

Data Wrangler は重複行を検出し、データ内の重複行の比率を計算します。データソースによっては、有効な重複データが含まれている場合があります。他のデータソースには重複があり、データ収集に問題がある可能性があります。問題のあるデータ収集によって発生した重複サンプルは、データを独立したトレーニングフォールドと検証フォールドに分割することに依存する機械学習プロセスに支障をきたす可能性があります。

サンプルが重複すると影響を受ける可能性があるインサイトレポートの要素は次のとおりです。

  • クイックモデル

  • 予測力の推定

  • ハイパーパラメータの自動調整

[行を管理][重複データの削除] トランスフォームを使用して、データセットから重複サンプルを削除できます。Data Wrangler は、重複が最も多い行を表示します。

定義

データインサイトレポートで使用される技術用語の定義は次のとおりです。

Feature types

各特徴型の定義は次のとおりです。

  • 数値 — 数値は浮動小数点数でも、年齢や収入などの整数でもかまいません。機械学習モデルは、数値が順序付けられ、その上で距離が定義されていることを前提としています。例えば、3 は 10 よりも 4 に近く、3 < 4 < 10 です。

  • カテゴリ別 – 列エントリは一意の値のセットに属します。通常、列内のエントリの数よりもはるかに小さくなります。例えば、長さ 100 の列には一意の値 DogCatMouse が含まれる場合があります。値は、数値、テキスト、または両方の組み合わせです。HorseHouse8Love3.1 はすべて有効な値で、同じカテゴリ列にあります。機械学習モデルでは、すべての値が数値であっても、数値特徴とは対照的に、カテゴリ別特徴の値の順序や距離を想定していません。

  • バイナリ — バイナリ特徴は、一意の値における集合の高基数が 2 である特殊なカテゴリ別特徴型です。

  • テキスト — テキスト列には、数値以外の一意の値が多数含まれています。極端なケースでは、列のすべての要素が一意です。極端なケースでは、2 つとして同じエントリはありません。

  • Datetime — datetime 列には日付または時刻に関する情報が含まれます。日付と時刻の両方に関する情報を含めることができます。

Feature statistics

各特徴統計の定義は次のとおりです。

  • 予測能力 — 予測能力は、その列がターゲットの予測にどの程度役立つかを測定します。

  • 外れ値 (数値列) — Data Wrangler は、外れ値に対して堅牢な中央値とロバスト標準偏差 (RSTD) という 2 つの統計を使用して外れ値を検出します。RSTD は、特徴値を [5 パーセンタイル、95 パーセンタイル] の範囲にクリップし、クリップされたベクトルの標準偏差を計算することによって算出されます。中央値 + 5 * RSTD より大きい値、または中央値 - 5 * RSTD より小さい値はすべて外れ値と見なされます。

  • スキュー (数値列) — スキューは分布の対称性を測定し、分布の 3 番目のモーメントを標準偏差の 3 乗で割った値として定義されます。正規分布やその他の対称分布の歪みはゼロです。正の値は、分布の右裾が左裾よりも長いことを意味します。負の値は、分布の左裾が右裾よりも長いことを意味します。経験則として、スキューの絶対値が 3 より大きい場合、分布は歪んでいると見なされます。

  • 尖度 (数値列) — ピアソンの尖度は、分布の裾の重さを測定します。分布の 4 番目のモーメントを 2 番目のモーメントの 2 乗で割ったものとして定義されます。正規分布の尖度は 3 です。尖度値が 3 より小さいということは、分布が平均の周りに集中していて、裾が正規分布の裾よりも軽いことを意味します。尖度値が 3 より大きい場合は、裾が重いか、外れ値が大きいことを意味します。

  • 欠損値 — NULL のようなオブジェクト、空の文字列、空白のみで構成された文字列は欠落しているとみなされます。

  • 数値特徴または回帰ターゲットの有効な値 — 有限浮動小数点数にキャストできる値はすべて有効です。欠損値は無効です。

  • カテゴリ、バイナリ、テキスト特徴、または分類ターゲットの有効な値 — 欠落していない値はすべて有効です。

  • Datetime 特徴 — datetime オブジェクトにキャストできる値はすべて有効です。欠損値は無効です。

  • 無効な値 — 欠落しているか、正しくキャストできない値。例えば、数値列では、文字列 "six" や null 値をキャストすることはできません。

Quick model metrics for regression

クイックモデルメトリクスの定義は次のとおりです。

  • R2 または決定係数 — R2 は、モデルによって予測されるターゲットの変動の割合です。R2 は [-infty, 1] の範囲内にあります。1 はターゲットを完全に予測するモデルのスコア、0 はターゲットの平均を常に予測するトリビアルモデルのスコアです。

  • MSE または平均二乗誤差 — MSE は [0, infty] の範囲にあります。0 は、ターゲットを完全に予測するモデルのスコアです。

  • MAE または平均絶対誤差 — MAE は [0, infty] の範囲にあります。0 はターゲットを完全に予測するモデルのスコアです。

  • RMSE または二乗平均平方根誤差 — RMSE は [0, infty] の範囲にあります。0 はターゲットを完全に予測するモデルのスコアです。

  • 最大誤差 — データセット全体の誤差の最大絶対値。最大誤差は [0, infty] の範囲です。0 はターゲットを完全に予測するモデルのスコアです。

  • 絶対誤差の中央値 — 絶対誤差の中央値は [0, infty] の範囲です。0 は、ターゲットを完全に予測するモデルのスコアです。

Quick model metrics for classification

クイックモデルメトリクスの定義は次のとおりです。

  • 精度 — 精度は、正確に予測されたサンプルの比率です。精度は [0, 1] の範囲です。0 はすべてのサンプルを誤って予測したモデルのスコア、1 は完全なモデルのスコアです。

  • バランス精度 — バランス精度とは、データのバランスが取れるようにクラスの重みを調整したときに正確に予測されるサンプルの比率です。頻度に関係なく、すべてのクラスに同じ重要度が与えられます。バランス精度は [0, 1] の範囲です。0 はすべてのサンプルが間違っていると予測したモデルのスコアです。1 は完全なモデルのスコアです。

  • AUC (二項分類) — 受信者操作特性曲線の下面積です。AUC は [0, 1] の範囲にあり、ランダムモデルでは 0.5、完全なモデルでは 1 のスコアが返されます。

  • AUC (OVR) — 多クラス分類では、受信者操作特性曲線の下面積を、ラベルごとに 1 と残りのラベルで個別に計算したものです。Data Wrangler はエリアの平均をレポートします。AUC は [0, 1] の範囲にあり、ランダムモデルでは 0.5 のスコアが返され、完全モデルでは 1 のスコアが返されます。

  • 精度 — 精度は特定のクラスに対して定義されます。精度は、モデルがそのクラスとして分類したすべてのインスタンスのうち、真陽性の割合です。精度は [0, 1] の範囲です。1 は、そのクラスで偽陽性がなかったモデルのスコアです。二項分類では、Data Wrangler は陽性クラスの精度をレポートします。

  • リコール — リコールは特定のクラスに対して定義されます。リコールは、関連するクラスインスタンスが、正常に取得された割合です。リコールは [0, 1] の範囲です。1 はクラスのすべてのインスタンスを正しく分類したモデルのスコアです。二項分類の場合、Data Wrangler は陽性クラスのリコールをレポートします。

  • F1 — F1 は特定のクラスに対して定義されます。正確性とリコールを組み合わせた手法です。F1 は [0, 1] の範囲です。1 は完全なモデルのスコアです。二項分類では、Data Wrangler は正の値を持つクラスの F1 をレポートします。

Textual patterns

パターンは、文字列のテキスト形式を読みやすい形式で記述します。テキストパターンの例を以下に示します。

  • {digits:4-7}」は、長さが 4 から 7 までの一連の数字を表します。

  • {alnum:5}」は、長さがちょうど 5 の英数字文字列を表します。

Data Wrangler は、データから空でない文字列のサンプルを調べてパターンを推測します。よく使われるパターンの多くを記述できます。パーセンテージで表される信頼度は、どの程度のデータがパターンに一致すると推定されるかを示します。テキストパターンを使用すると、データのどの行を修正または削除する必要があるかがわかります。

Data Wrangler が認識できるパターンを次に示します。

パターン テキスト形式

{alnum}

英数字の文字列

{any}

任意の単語文字列

{digits}

一連の数字

{lower}

小文字の単語

{mixed}

大文字と小文字が混在する単語

{name}

大文字で始まる単語

{upper}

大文字の単語

{whitespace}

ホワイトスペース文字

単語文字は、どの言語の単語にも使用できるアンダースコアまたは文字です。例えば、文字列 'Hello_word''écoute'の両方が単語文字で構成されます。「H」と「é」はどちらも単語文字の例です。

バイアスレポート

SageMaker Canvas は Data Wrangler でバイアスレポートを提供し、データ内の潜在的なバイアスを明らかにするのに役立ちます。バイアスレポートは、ターゲット列 (ラベル) とバイアス (ファセット変数) が含まれている可能性があると思われる列との関係を分析します。例えば、顧客のコンバージョンを予測しようとする場合、ファセット変数は顧客の年齢である可能性があります。バイアスレポートは、データが特定の年齢グループにバイアスされているかどうかを判断するのに役立ちます。

Canvas でバイアスレポートを生成するには、次の手順を実行します。

  1. Data Wrangler のデータフローで、フロー内のノードの横にあるその他のオプションアイコン ( ) を選択します。

  2. コンテキストメニューから、データインサイトの取得 を選択します。

  3. 分析の作成サイドパネルが開きます。分析タイプのドロップダウンメニューで、バイアスレポート を選択します。

  4. 分析名フィールドに、バイアスレポートの名前を入力します。

  5. モデルが予測する列の選択 (ターゲット) ドロップダウンメニューで、ターゲット列を選択します。

  6. 予測列が値またはしきい値か? では、ターゲット列にカテゴリ値がある場合は、数値がある場合はしきい値を選択します。

  7. 予測値 (または前のステップで選択した内容に応じて予測しきい値 ) には、正の結果に対応するターゲット列の値を入力します。例えば、顧客コンバージョンを予測する場合、 の値は顧客がコンバージョンされたyesことを示す である可能性があります。

  8. バイアスを分析する列を選択ドロップダウンメニューで、ファセット変数とも呼ばれるバイアスが含まれていると思われる列を選択します。

  9. 列が値またはしきい値か? では、ファセット変数にカテゴリ値がある場合は Value、数値がある場合は Threshold を選択します。

  10. Column value (s) でバイアス (または前のステップで選択した内容に応じてバイアスを分析する列のしきい値) を分析するには、潜在的なバイアスを分析する値を入力します。例えば、特定の年齢の顧客に対するバイアスをチェックする場合は、その年齢範囲の先頭をしきい値として使用します。

  11. 「バイアスメトリクスの選択」で、バイアスレポートに含めるバイアスメトリクスを選択します。各メトリクスの詳細については、情報アイコンにカーソルを合わせてください。

  12. (オプション) 追加メトリクスを分析する場合は、「はい」を選択して、より多くのバイアスメトリクスを表示して含めます。

  13. バイアスレポートを作成する準備ができたら、 を追加 を選択します。

レポートが生成されると、選択したバイアスメトリクスの概要が表示されます。バイアスレポートは、データフローの分析タブからいつでも表示できます。

Histogram

ヒストグラムを使用して、特定の特徴の特徴値の数を確認します。[Color by] (色分け) オプションを使用して特徴間の関係を確認できます。

[Facet by] (ファセット別) 機能を使用して別の列の値ごとに、1 列のヒストグラムを作成できます。

散布図

[Scatter Plot] (散布図) 機能を使用して特徴間の関係を確認します。散布図を作成するには、[X axis] (X 軸) と [Y axis] (Y 軸) でプロットする特徴を選択します。これらの列は両方とも数値型列でなければなりません。

散布図は追加の列で色分けできます。

さらに、特徴別に散布図をファセット化することもできます。

テーブルの概要

[Table Summary] (テーブルの概要) 分析を使用してデータをすばやく要約します。

ログデータや浮動小数点データなどの数値データを含む列の場合、テーブルの概要は各列のエントリ数 (count)、最小値 (min)、最大 (max)、平均値、標準偏差 (stddev) を報告します。

文字列、ブール値、日付/時刻データなどの数値以外のデータを含む列の場合、テーブルの概要はエントリ数 (count)、最小頻度値 (min)、最大頻度値 (max) をレポートします。

クイックモデル

[Quick Model] (クイックモデル) ビジュアライゼーションを使用して、データをすばやく評価し、各特徴の重要度スコアを生成します。特徴の重要度スコアは、特徴がターゲットラベルの予測にどの程度有用であるかを示します。特徴の重要度スコアは 0 と 1 の間にあり、数値が大きいほど、その特徴がデータセット全体に対してより重要であることを示します。クイックモデルチャートの上部にはモデルスコアが表示されます。分類問題は F1 スコアを示しています。回帰問題には平均二乗誤差 (MSE) スコアがあります。

クイックモデルチャートを作成する場合は、評価するデータセットと、特徴の重要度を比較するターゲットラベルを選択します。Data Wrangler は次を行います。

  • 選択したデータセット内のターゲットラベルと各特徴に対するデータ型を推論します。

  • 問題のタイプを決定します。Data Wrangler は、ラベル列内の個別の値の数に基づいて、その問題のタイプが回帰または分類のどちらであるかを判断します。Data Wrangler は、カテゴリ別しきい値を 100 に設定します。ラベル列に 100 を超える個別の値がある場合、Data Wrangler はそれを回帰問題として分類します。それ以外の場合、分類問題として分類されます。

  • トレーニング用に特徴とラベルデータを前処理します。使用されるアルゴリズムでは、ベクトルタイプに対するエンコーディング機能と double 型に対するエンコーディングラベルが必要です。

  • 70% のデータでランダムフォレストアルゴリズムをトレーニングします。Spark の RandomForestRegressor は、回帰の問題に対してモデルをトレーニングするために使用されます。RandomForest分類子は、分類の問題に対してモデルをトレーニングするために使用されます。

  • 残りの 30% のデータでランダムフォレストモデルを評価します。Data Wrangler は F1 スコアを使用して分類モデルを評価し、MSE スコアを使用して回帰モデルを評価します。

  • Gini 重要度メソッドを使用して、各特徴の重要度を計算します。

ターゲット漏洩

ターゲット漏洩は、機械学習のトレーニングデータセットにターゲットラベルと強い相関性があっても、実際のデータでは利用できないデータがある場合に発生します。例えば、モデルで予測する列のプロキシとして使われる列がデータセット内に存在するとします。

[Target Leakage] (ターゲット漏洩) 分析を使用する場合、次を指定します。

  • Target (ターゲット): ML モデルで予測を行う対象の特徴です。

  • Problem type (問題のタイプ): 作業している ML 問題のタイプです。問題のタイプは [classification] (分類) または [regression] (回帰) のいずれかになります。

  • (オプション) Max features (最大特徴数): ビジュアライゼーション内に存在する特徴の最大数であり、ターゲット漏洩のリスクによってランク付けして特徴を表示しています。

分類の場合、ターゲット漏洩分析は、受信者動作特性の下にある領域、または各列の AUC-ROC 曲線を [最大特徴数] まで使用します。回帰の場合、決定の係数、または R2 メトリクスを使用します。

AUC-ROC 曲線は、最大約 1000 行のサンプルで、交差検証を使用して列ごとに個別に計算される予測メトリクスを提供します。スコア 1 は完璧な予測能力を示し、多くの場合はターゲット漏洩を示します。0.5 以下のスコアは、列の情報が、ターゲットの予測に有用な情報を単独で提供できなかったことを示します。列から単独で情報が得られないものの、他の特徴と併用するとターゲットの予測に役立つことがあり、低いスコアは特徴が冗長であることを示す場合があります。

多重共線性

多重共線性とは、2 つ以上の予測変数が互いに関連している状況です。予測変数は、ターゲット変数を予測するために使用するデータセット内の特徴量です。多重共線性がある場合、予測変数はターゲット変数を予測するだけでなく、相互の予測にもなります。

データ内の多重共線性の尺度として、[分散膨張係数 (VIF)][主成分分析 (PCA)]、または [Lasso 特徴量選択] を使用できます。詳細については、以下を参照してください。

Variance Inflation Factor (VIF)

分散膨張係数 (VIF) は、変数ペア間の共線性の尺度です。Data Wrangler は、変数が互いにどの程度密接に関連しているかを示す尺度として VIF スコアを返します。VIF スコアは、1 以上の正数です。

スコアが 1 の場合、その変数は他の変数と相関していないことを意味します。スコアが 1 より大きい場合、相関が高いことを示します。

理論的には、VIF スコアの値が無限大になることもあります。Data Wrangler はハイスコアを 50 に抑えます。VIF スコアが 50 より大きい場合、Data Wrangler はスコアを 50 に設定します。

次のガイドラインを使用して、VIF スコアを解釈できます。

  • VIF スコアが 5 以下の場合は、変数が他の変数と中程度の相関関係にあることを示します。

  • VIF スコアが 5 以上であれば、変数が他の変数と高い相関関係にあることを示します。

Principle Component Analysis (PCA)

主成分分析 (PCA) は、特徴空間のさまざまな方向に沿ったデータの分散を測定します。特徴空間は、データセット内のターゲット変数を予測するために使用するすべての予測変数で構成されます。

例えば、タイタニック号が氷山に衝突した後に誰が生き残ったかを予測する場合、特徴空間には乗客の年齢、性別、支払った運賃を含めることができます。

PCA は、特徴空間から分散の順序付きリストを生成します。これらの分散は、特異値とも呼ばれます。分散リストの値は 0 以上です。これらの値を使用して、データにどの程度の多重共線性があるかを判断できます。

数値がほぼ一様であれば、データに多重共線性があることはほとんどありません。値間のばらつきが大きい場合、多重共線性が発生しているケースが多くなります。PCA を実行する前に、Data Wrangler は各特徴量の平均値が 0、標準偏差が 1 になるように正規化します。

注記

このような場合の PCA は、特異値分解 (SVD) と呼ばれることもあります。

Lasso feature selection

Lasso の特徴量選択では、L1 正則化手法を使用して、データセット内で最も予測性の高い特徴量のみを含めます。

分類と回帰の両方で、正則化手法は特徴量ごとに係数を生成します。係数の絶対値が特徴量の重要度スコアになります。重要度スコアが高いほど、ターゲット変数の予測精度が高いことを示します。一般的な特徴量選択方法は、Lasso 係数がゼロ以外の特徴量をすべて使用することです。

時系列データの異常を検出する

異常検出ビジュアライゼーションを使用して、時系列データの外れ値を確認できます。異常と判断される基準を理解するには、時系列が予測項と誤差項に分解されることを理解しておく必要があります。時系列の季節性と傾向を予測項として処理します。残差を誤差項として処理します。

誤差項では、残差が異常と見なされるしきい値を、平均値から離れる偏差の標準の数として指定します。例えば、しきい値を 3 標準偏差として指定できます。平均値から 3 標準偏差を超える残差は異常値です。

次の手順に従って [Anomaly detection] (異常検出) 分析を実行できます。

  1. Data Wrangler のデータフローを開きます。

  2. データフローの [Data types] (データ型) で [+] を選択し、[Add analysis] (分析を追加) を選択します。

  3. [Analysis type] (分析タイプ) で、[Time Series] (時系列) を選択します。

  4. [Visualization] (ビジュアライゼーション) で、[Anomaly detection] (異常検出) を選択します。

  5. [Anomaly threshold] (異常しきい値) で、値が異常と見なされるしきい値を選択します。

  6. [Preview] (プレビュー) を選択して、分析のプレビューを生成します。

  7. [Add] (追加) を選択して、Data Wrangler データフローに変換を追加します。

時系列データの季節的な傾向分解

季節的な傾向分解ビジュアライゼーションを使用して、時系列データに季節性があるかどうかを判断できます。STL (LOESS を使用した季節的な傾向分解) メソッド使用して分解を実行します。時系列を季節性、傾向、残差コンポーネントに分解します。この傾向は、時系列の長期的な進行を反映しています。季節性は、ある期間内に再発する信号です。時系列から傾向と季節性を削除すると、残差が得られます。

次の手順に従って [Seasonal-Trend decomposition] (季節性傾向分解) 分析を実行できます。

  1. Data Wrangler のデータフローを開きます。

  2. データフローの [Data types] (データ型) で [+] を選択し、[Add analysis] (分析を追加) を選択します。

  3. [Analysis type] (分析タイプ) で、[Time Series] (時系列) を選択します。

  4. [Visualization] (ビジュアライゼーション) で、[Seasonal-Trend decomposition] (季節性傾向分解) を選択します。

  5. [Anomaly threshold] (異常しきい値) で、値が異常と見なされるしきい値を選択します。

  6. [Preview] (プレビュー) を選択して、分析のプレビューを生成します。

  7. [Add] (追加) を選択して、Data Wrangler データフローに変換を追加します。

カスタムビジュアライゼーションを作成する

Data Wrangler フローに分析を追加して、カスタムの可視化を作成できます。適用したすべての変換を含むデータセットは Pandas DataFrameとして使用できます。Data Wrangler は df 変数を使用してデータフレームを格納します。データフレームにアクセスするには、変数を呼び出します。

出力変数 chart を指定して、Altair 出力チャートを保存する必要があります。例えば、次のコードブロックを使用して、Titanic データセットを使用してカスタムヒストグラムを作成できます。

import altair as alt df = df.iloc[:30] df = df.rename(columns={"Age": "value"}) df = df.assign(count=df.groupby('value').value.transform('count')) df = df[["value", "count"]] base = alt.Chart(df) bar = base.mark_bar().encode(x=alt.X('value', bin=True, axis=None), y=alt.Y('count')) rule = base.mark_rule(color='red').encode( x='mean(value):Q', size=alt.value(5)) chart = bar + rule
カスタムビジュアライゼーションを作成するには、次の手順を実行します。
  1. 可視化したい変換を含むノードの横にある [+] を選択します。

  2. [分析を追加] を選択します。

  3. [分析タイプ] には、[カスタム可視化] を選択します。

  4. [分析名] には名前を指定します。

  5. コードボックスにコードを入力します。

  6. [Preview] (プレビュー) を選択して、ビジュアライゼーションをプレビューします。

  7. [保存] を選択して可視化を追加します。

Python で Altair 可視化パッケージの使用方法がわからない場合は、カスタムコードスニペットを使用して始めることができます。

Data Wrangler には、検索可能な可視化スニペットのコレクションがあります。可視化スニペットを使用するには、[サンプルスニペットを検索] を選択し、検索バーにクエリを指定します。

次の例では、[ビン分割された散布図] のコードスニペットを使用しています。2 次元のヒストグラムをプロットします。

スニペットには、コードに加える必要のある変更を理解するのに役立つコメントが付いています。通常、コードにはデータセットの列名を指定する必要があります。

import altair as alt # Specify the number of top rows for plotting rows_number = 1000 df = df.head(rows_number) # You can also choose bottom rows or randomly sampled rows # df = df.tail(rows_number) # df = df.sample(rows_number) chart = ( alt.Chart(df) .mark_circle() .encode( # Specify the column names for binning and number of bins for X and Y axis x=alt.X("col1:Q", bin=alt.Bin(maxbins=20)), y=alt.Y("col2:Q", bin=alt.Bin(maxbins=20)), size="count()", ) ) # :Q specifies that label column has quantitative type. # For more details on Altair typing refer to # https://altair-viz.github.io/user_guide/encoding.html#encoding-data-types