

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

# Amazon SageMaker Studio Classic ノートブックのインタラクティブなデータ準備ウィジェットを使用してデータインサイトを取得する
<a name="data-wrangler-interactively-prepare-data-notebook"></a>

Data Wrangler データ準備ウィジェットを使用すると、データを操作し、視覚化し、実用的なインサイトを探索して、データ品質の問題の修正を行うことができます。

データ準備ウィジェットには、Amazon SageMaker Studio Classic ノートブックからアクセスできます。このウィジェットは各列について、その分布をよりよく理解するのに役立つ視覚化を作成します。列にデータ品質の問題がある場合、ヘッダーに警告が表示されます。

データ品質の問題を確認するには、警告が表示されている列ヘッダーを選択します。インサイトと視覚化から得た情報を使用して、ウィジェットの組み込みの変換を適用し、問題の解決に役立てることができます。

例えば、一意の値が 1 つしかない列があることをウィジェットが検出し、警告を表示する場合があります。警告には、データセットから列を削除するオプションが表示されます。

## ウィジェット実行の開始方法
<a name="data-wrangler-interactively-prepare-data-notebook-getting-started"></a>

ノートブックの実行を開始するために、次の情報を参照してください。

Amazon SageMaker Studio Classic でノートブックを開きます。ノートブックを開く方法については、「[Amazon SageMaker Studio Classic ノートブックを作成する、または開く](notebooks-create-open.md)」を参照してください。

**重要**  
ウィジェットを実行するために、ノートブックは次のいずれかのイメージを使用する必要があります。  
Python 3 (データサイエンス) と Python 3.7
Python 3 (データサイエンス 2.0) と Python 3.8
Python 3 (データサイエンス 3.0) と Python 3.10
SparkAnalytics 1.0
SparkAnalytics 2.0
イメージの詳細については、「[Studio Classic ノートブックで使用できる Amazon SageMaker イメージ](notebooks-available-images.md)」を参照してください。

次のコードを使用して、データ準備ウィジェットと pandas をインポートします。ウィジェットは pandas データフレームを使用してデータを分析します。

```
import pandas as pd
import sagemaker_datawrangler
```

次のコード例は、`df` というデータフレームにファイルをロードします。

```
df = pd.read_csv("example-dataset.csv")
```

データセットは、pandas データフレームオブジェクトとしてロードできる任意の形式で使用できます。pandas 形式の詳細については、「[IO tools (text, CSV, HDF5, …)](https://pandas.pydata.org/pandas-docs/stable/user_guide/io.html)」を参照してください。

次のセルは `df` 変数を実行してウィジェットを開始します。

```
df
```

データフレームの上部には、次のオプションがあります。
+ **pandas テーブルを表示する** – インタラクティブな視覚化と pandas テーブルを切り替えます。
+ **データセットのすべての行を使用してインサイトを計算します。データセット全体を使用すると、インサイトの生成にかかる時間が長くなる可能性があります。**– オプションを選択しない場合、Data Wrangler はデータセットの最初の 10,000 行のインサイトを計算します。

データフレームには、データセットの最初の 1,000 行が表示されます。各列ヘッダーには、列の特徴を示す積み上げ棒グラフがあります。有効な値、無効な値、欠損値の割合が表示されます。積み上げ棒グラフのさまざまな部分にカーソルを合わせると、計算された割合が表示されます。

各列のヘッダーには視覚化があります。列で使用できる視覚化の種類を以下に示します。
+ カテゴリ – 棒グラフ
+ 数値 – ヒストグラム
+ 日時 – 棒グラフ
+ テキスト – 棒グラフ

視覚化ごとに、データ準備ウィジェットは外れ値をオレンジ色で強調表示します。

列を選択すると、サイドパネルが開きます。サイドパネルには **[インサイト]** タブが表示されます。このペインには、以下のタイプの値の数が表示されます。
+ 無効な値 – タイプが列タイプと一致しない値。
+ 欠損値 – `NaN` や `None` などの欠損している値。
+ 有効値 – 欠損でも無効でもない値。

数値列の場合、**[インサイト]** タブには以下の統計サマリーが表示されます。
+ 最小値 – 最小値。
+ 最大値 – 最大値。
+ 平均 – 値の平均。
+ モード – 最も頻繁に出現する値。
+ 標準偏差 – 値の標準偏差。

カテゴリ列の場合、**[インサイト]** タブには以下の統計サマリーが表示されます。
+ 個別値 – 列内の個別値の数。
+ 上位 – 最も頻繁に表示される値。

ヘッダーに警告アイコンが表示されている列には、データ品質の問題があります。列を選択すると **[データ品質]** タブが開き、問題の解決に役立つ変換を検索できます。警告には、次のいずれかの重要度レベルがあります。
+ 低 – 分析には影響しないかもしれないが、修正すると役立つ可能性がある問題。
+ 中 – 分析に影響する可能性は高いが、修正するほど重要ではないと思われる問題。
+ 高 – 修正を強く推奨する重大な問題。

**注記**  
ウィジェットは列をソートして、データフレームの上部にデータ品質の問題がある値を表示します。また、問題の原因となっている値も強調表示されます。強調表示の色は重要度レベルに対応しています。

**[推奨される変換]** では、データ品質の問題を解決する変換を選択できます。このウィジェットでは、問題を解決できる複数の変換を行うことができます。問題に最も適した変換を推奨します。変換の上にカーソルを移動すると、詳細を表示できます。

データセットに変換を適用するには、**[適用してコードをエクスポート]** を選択します。変換はデータセットを変更し、変更された値で視覚化を更新します。変換のコードはノートブックの次のセルに表示されます。データセットに追加の変換を適用すると、ウィジェットは変換をセルに追加します。ウィジェットが生成するコードを使用して、次のことを実行できます。
+ ニーズに合わせてカスタマイズします。
+ 独自のワークフローで使用します。

ノートブックのすべてのセルを再実行することで、行ったすべての変換を再現できます。

ウィジェットは、ターゲット列に関するインサイトと警告を提供できます。ターゲット列は予測しようとしている列です。次の手順を使用して、ターゲット列のインサイトを取得します。

ターゲット列のインサイトを取得するために、次の手順を実行します。

1. ターゲット列として使用している列を選択します。

1. **[ターゲット列として選択]** を選択します。

1. 問題タイプを選択します。ウィジェットのインサイトと警告は、問題タイプに合わせて調整されます。問題タイプには以下のものがあります。
   + **[分類]** – ターゲット列にはカテゴリデータが含まれます。
   + **[回帰]** – ターゲット列には数値データが含まれます。

1. **[Run]** (実行) を選択します。

1. (オプション) **[ターゲット列のインサイト]** で、推奨されている変換のいずれかを選択します。

## ウィジェットのインサイトと変換のリファレンス
<a name="data-wrangler-notebook-dataprep-assistant-reference"></a>

特徴量列 (ターゲット列ではない列) については、データセットの問題について警告する次のインサイトを取得できます。
+ **[欠損値]** – 列に `None`、`NaN` (数値ではない) や `NaT` (タイムスタンプではない) などの欠損値があります。多くの機械学習アルゴリズムは、入力データの欠損値をサポートしていません。したがって、欠損データを埋めるか、欠損データがある行を削除することは、データ準備の重要なステップです。欠損値の警告が表示された場合は、次のいずれかの変換を使用して、問題を修正できます。
  + **[欠損を削除]** – 欠損値のある行を削除します。欠損データがある行の割合が少なく、欠損値を入力するのが適切でない場合は、行を削除することをお勧めします。
  + **[新しい値に置換]** – テキストの欠損値を `Other` に置き換えます。出力コード内の `Other` を別の値に変更できます。数値の欠損値を 0 に置き換えます。
  + **[平均で置換]** – 欠損値を列の平均に置き換えます。
  + **[中央値に置換]** – 欠損値を列の中央値に置き換えます。
  + **[列を削除]** – 欠損値のある列をデータセットから削除します。欠損データがある行の割合が高い場合は、列全体を削除することをお勧めします。
+ **[偽装された欠損値]** – 列に偽装された欠損値があります。偽装された欠損値とは、欠損値として明示的にエンコードされていない値のことです。例えば、欠損値を示すのに `NaN` を使用する代わりに、値を `Placeholder` にすることができます。次のいずれかの変換を使用して、欠損値を処理できます。
  + **[欠損を削除]** – 欠損値のある行を削除します。
  + **[新しい値に置換]** – テキスト上の欠損値を `Other` に置き換えます。出力コード内の `Other` を別の値に変更できます。数値の欠損値を 0 に置き換えます。
+ **[定数列]** – この列には値が 1 つしかありません。そのため、予測能力はありません。データセットから列を削除するには、**[列を削除]** 変換を使用することを強くお勧めします。
+ **[ID 列]** – この列には繰り返し値はありません。列の値はすべて一意です。ID でもデータベースキーでもかまいません。追加情報がない場合、この列には予測能力がありません。データセットから列を削除するには、**[列を削除]** 変換を使用することを強くお勧めします。
+ **[高基数]** – この列では一意の値の割合が高くなっています。高基数の場合、カテゴリ列の予測能力が制限されます。分析における列の重要性を調べ、**[列を削除]** 変換を使用して削除することを検討してください。

ターゲット列については、データセットの問題について警告する次のようなインサイトが得られます。警告とともに表示された推奨変換を使用して問題を修正できます。
+ **[ターゲットのデータ型が混在している (回帰)]** – ターゲット列に数値以外の値がいくつかある。データ入力エラーがある可能性があります。変換できない値を含む行は削除することをお勧めします。
+ **[頻出ラベル]** – ターゲット列の特定の値は、回帰分析で通常よりも頻繁に出現します。データの収集または処理にエラーがある可能性があります。頻繁に表示されるカテゴリは、その値がデフォルト値として使用されているか、欠損値のプレースホルダーであるかのいずれかを示している可能性があります。欠損値を `Other` に置き換えるには、**[新しい値に置換]** 変換を使用することをお勧めします。
+ **[クラスあたりのインスタンス数が少なすぎる]** – ターゲット列にはめったに表示されないカテゴリがあります。カテゴリの中には、ターゲット列の行数が足りないために使用できないものがあります。次のいずれかの変換を行うことができます。
  + **[まれなターゲットを削除]** – 観測値が 10 件未満の一意の値を削除します。例えば、列に `cat` が 9 回出現する場合は値が削除されます。
  + **[まれなターゲットを置換]** – データセットにほとんど出現しないカテゴリを `Other` 値に置き換えます。
+ **[クラスが不均衡すぎる (マルチクラス分類)]** – データセットには、他のカテゴリよりもはるかに頻繁に出現するカテゴリがあります。クラスの不均衡は予測精度に影響する可能性があります。可能な限り正確な予測を行うには、現在出現頻度が低いカテゴリの行でデータセットを更新することをお勧めします。
+ **[クラス数が多い/クラスが多すぎる]** – ターゲット列には多数のクラスがあります。クラスが多いと、トレーニング時間が長くなったり、予測の質が低下したりする可能性があります。次のいずれかの手順を実行することをお勧めします。
  + 一部のカテゴリを独自のカテゴリにグループ化する。例えば、6 つのカテゴリが密接に関連している場合は、1 つのカテゴリを使用することをお勧めします。
  + 複数のカテゴリに対応する ML アルゴリズムを使用する。