

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

# 探索的データ分析 (EDA) を実行する
<a name="canvas-analyses"></a>

Data Wrangler には、数回のクリックでビジュアライゼーションとデータ分析を生成できる分析機能が組み込まれています。独自のコードを使用してカスタム分析を作成することもできます。

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

分析は、データセットの最大 200,000 行のサンプルを使用して生成されます。サンプルサイズは設定できます。データフローのサンプルサイズの変更の詳細については、「[データフローのサンプリング設定を編集する](canvas-data-flow-edit-sampling.md)」を参照してください。

**注記**  
分析は、1,000 列以下のデータに向けて最適化されています。それより多い列を含むデータの分析を生成すると、多少のレイテンシーが発生する場合があります。

次の分析をデータフレームに追加できます。
+ ヒストグラムや散布図などのデータビジュアライゼーション。
+ エントリ数、最小値と最大値 (数値データの場合)、最も頻度の高いカテゴリ (カテゴリ別データの場合) など、データセットの簡単な要約。
+ 各特徴の重要度スコアを生成するために使用できるデータセットの簡単なモデル。
+ 1 つ以上の特徴がターゲットの特徴と強い相関性があるかどうかを判断するために使用できるターゲットの漏洩レポート。
+ 独自のコードを使用したカスタムビジュアライゼーション。

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

## データとデータ品質に関するインサイトを取得する
<a name="canvas-data-insights"></a>

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

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

**データ品質とインサイトレポートを作成するには**

1. Data Wrangler フロー内のノードの横にある省略記号アイコンを選択します。

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

1. **[分析タイプ]** には、**[データ品質とインサイトレポート]** を選択します。

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

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

1. **[ターゲット列]** に、ターゲット列を指定します。

1. **[データサイズ]** に、次のいずれかを指定します。
   + **サンプルデータセット** – データフローからのインタラクティブサンプルを使用します。これには、データセットの行を最大 200,000 行まで含めることができます。サンプルのサイズを編集する方法については、「[データフローのサンプリング設定を編集する](canvas-data-flow-edit-sampling.md)」を参照してください。
   + **フルデータセット** – データソースの完全なフルデータセットを使用してレポートを作成します。
**注記**  
完全なデータセットに関するデータ品質とインサイトレポートを作成するには、Amazon SageMaker Processing ジョブを使用します。SageMaker 処理ジョブは、すべてのデータのインサイトを取得するために必要な追加のコンピューティングリソースをプロビジョンします。SageMaker の処理ジョブの詳細については、「[SageMaker Processing によるデータ変換ワークロード](processing-job.md)」を参照してください。

1. **[作成]** を選択します。

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

**Topics**
+ [概要](#canvas-data-insights-summary)
+ [ターゲット列](#canvas-data-insights-target-column)
+ [クイックモデル](#canvas-data-insights-quick-model)
+ [特徴の概要](#canvas-data-insights-feature-summary)
+ [サンプル](#canvas-data-insights-samples)
+ [定義](#canvas-data-insights-definitions)

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

### 概要
<a name="canvas-data-insights-summary"></a>

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

### ターゲット列
<a name="canvas-data-insights-target-column"></a>

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

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

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

### クイックモデル
<a name="canvas-data-insights-quick-model"></a>

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

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

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

 分類モデルの概要が返す情報の詳細については、「[定義](#canvas-data-insights-definitions)」を参照してください。

混同行列には、次の情報が表示されます。
+ 予測されたラベルが実際のラベルと一致する回数。
+ 予測されたラベルが実際のラベルと一致しない回数。

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

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

### 特徴の概要
<a name="canvas-data-insights-feature-summary"></a>

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

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

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

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

### サンプル
<a name="canvas-data-insights-samples"></a>

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

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

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

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

サンプルが重複すると影響を受ける可能性があるインサイトレポートの要素は次のとおりです。
+ クイックモデル
+ 予測力の推定
+ ハイパーパラメータの自動調整

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

### 定義
<a name="canvas-data-insights-definitions"></a>

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

------
#### [ Feature types ]

各特徴型の定義は次のとおりです。
+ **数値** — 数値は浮動小数点数でも、年齢や収入などの整数でもかまいません。機械学習モデルは、数値が順序付けられ、その上で距離が定義されていることを前提としています。例えば、3 は 10 よりも 4 に近く、3 < 4 < 10 です。
+ **カテゴリ** — 列のエントリは一意の値のセットに属します。通常、この値は列のエントリ数よりもかなり小さくなります。例えば、長さ 100 の列には一意の値 `Dog`、`Cat`、`Mouse` が含まれる場合があります。値は、数値、テキスト、または両方の組み合わせです。`Horse`、`House`、`8`、`Love`、`3.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」と「é」はどちらも単語文字の例です。

------

## バイアスレポート
<a name="canvas-bias-report"></a>

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

Canvas でバイアスレポートを生成するには、以下を実行します。

1. Data Wrangler のデータフローで、フロー内のノードの横にある **[その他のオプション]** アイコン (![Vertical ellipsis icon representing a menu or more options.](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) を選択します。

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

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

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

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

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

1. **[予測値]** (または前のステップでの選択に応じて **[予測しきい値]**) には、肯定的な結果に対応するターゲット列値を入力します。例えば、顧客変換を予測する場合、値は顧客が変換されたことを示す `yes` になります。

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

1. **[列は値またはしきい値のどちらですか?]** では、ファセット変数にカテゴリ値がある場合は **[値]**、数値がある場合は **[しきい値]** を選択します。

1. **[バイアスを分析する列値]** (または前のステップでの選択に応じて **[バイアスを分析する列しきい値]**) には、潜在的なバイアスを分析する値を入力します。例えば、特定の年齢以上の顧客に対するバイアスを確認する場合は、その年齢範囲の先頭をしきい値として使用します。

1. **[バイアスメトリクスを選択]** では、バイアスレポートに含めるバイアスメトリクスを選択します。情報アイコンにカーソルを合わせると、各メトリクスの詳細が表示されます。

1. (オプション) **[追加のメトリクスを分析しますか?]** オプションのプロンプトが表示されたら、**[はい]** を選択してバイアスメトリクスを表示して含めます。

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

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

## ヒストグラム
<a name="canvas-visualize-histogram"></a>

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

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

## 散布図
<a name="canvas-visualize-scatter-plot"></a>

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

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

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

## テーブルの概要
<a name="canvas-table-summary"></a>

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

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

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

## クイックモデル
<a name="canvas-quick-model"></a>

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

クイックモデルチャートを作成する場合は、評価するデータセットと、特徴の重要度を比較するターゲットラベルを選択します。Data Wrangler は次を行います。
+ 選択したデータセット内のターゲットラベルと各特徴に対するデータ型を推論します。
+ 問題のタイプを決定します。Data Wrangler は、ラベル列内の個別の値の数に基づいて、その問題のタイプが回帰または分類のどちらであるかを判断します。Data Wrangler は、カテゴリ別しきい値を 100 に設定します。ラベル列に 100 を超える個別の値がある場合、Data Wrangler はそれを回帰問題として分類します。それ以外の場合、分類問題として分類されます。
+ トレーニング用に特徴とラベルデータを前処理します。使用されるアルゴリズムでは、ベクトルタイプに対するエンコーディング機能と double 型に対するエンコーディングラベルが必要です。
+ 70% のデータでランダムフォレストアルゴリズムをトレーニングします。Spark の [RandomForestRegressor](https://spark.apache.org/docs/latest/ml-classification-regression.html#random-forest-regression) は回帰問題のモデルのトレーニングに使用されます。[RandomForestClassifier](https://spark.apache.org/docs/latest/ml-classification-regression.html#random-forest-classifier) は、分類問題のモデルのトレーニングに使用されます。
+ 残りの 30% のデータでランダムフォレストモデルを評価します。Data Wrangler は F1 スコアを使用して分類モデルを評価し、MSE スコアを使用して回帰モデルを評価します。
+ Gini 重要度メソッドを使用して、各特徴の重要度を計算します。

## ターゲット漏洩
<a name="canvas-analysis-target-leakage"></a>

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

**[ターゲット漏洩]** 分析を使用する場合、次を指定します。
+ **ターゲット**: ML モデルで予測を行う対象の特徴です。
+ **問題のタイプ**: 作業している ML 問題のタイプです。問題のタイプは **[分類]** または **[回帰]** のいずれかになります。
+  (オプション) **最大特徴数**: ビジュアライゼーション内に存在する特徴の最大数であり、ターゲット漏洩のリスクによってランク付けして特徴を表示しています。

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

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

## 多重共線性
<a name="canvas-multicollinearity"></a>

多重共線性とは、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 係数がゼロ以外の特徴量をすべて使用することです。

------

## 時系列データの異常を検出する
<a name="canvas-time-series-anomaly-detection"></a>

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

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

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

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

1. データフローの **[データ型]** で **[\+]** を選択し、**[分析を追加]** を選択します。

1. **[分析タイプ]** で、**[時系列]** を選択します。

1. **[ビジュアライゼーション]** で、**[異常検出]** を選択します。

1. **[異常しきい値]** で、値が異常と見なされるしきい値を選択します。

1. **[プレビュー]** を選択して、分析のプレビューを生成します。

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

## 時系列データにおける季節的な傾向の分解
<a name="canvas-seasonal-trend-decomposition"></a>

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

次の手順に従って **[季節性傾向分解]** 分析を実行できます。

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

1. データフローの **[データ型]** で **[\+]** を選択し、**[分析を追加]** を選択します。

1. **[分析タイプ]** で、**[時系列]** を選択します。

1. **[ビジュアライゼーション]** で、**[季節性傾向分解]** を選択します。

1. **[異常しきい値]** で、値が異常と見なされるしきい値を選択します。

1. **[プレビュー]** を選択して、分析のプレビューを生成します。

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

## カスタムビジュアライゼーションを作成する
<a name="canvas-visualize-custom"></a>

Data Wrangler フローに分析を追加して、カスタムの可視化を作成できます。適用したすべての変換を含むデータセットは、[Pandas DataFrame](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html) として利用できます。Data Wrangler は `df` 変数を使用してデータフレームを格納します。データフレームにアクセスするには、変数を呼び出します。

出力変数 `chart` を指定して、[Altair](https://altair-viz.github.io/) 出力チャートを保存する必要があります。例えば、次のコードブロックを使用して、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. 可視化したい変換を含むノードの横にある **[\+]** を選択します。

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

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

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

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

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

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

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
```