0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS SageMaker】StudioにてData Wranglerでデータ品質インサイトのレポート作成を試してみた

Posted at

背景

AWS SageMaker Studioを触り始めてみたので、まずはData Wranglerを使ってみようと思いました。Data Wranglerは色々な事が出来そうなので、まずはデータ品質インサイトのレポート(Data Quality and Insights Report)の作成を試してみました。

試した事(概要)

Nishikaのコンペの訓練(train)データをインプットとして、Data Wranglerでデータ品質インサイトのレポート(以下、Data Quality and Insights Report)の作成を試してみました。

試した事(詳細)

1. 前準備

1.1. Nishikaからデータを取得して前処理

こちらのサイトから、train.zipをダウンロードします。

zipファイルを解凍すると、trainフォルダ内に多数のcsvファイルが入っていますので、それらcsvファイルを、pandasを使って1つのcsvファイルに纏めて、train.csvとします。

data_df_list = []
for csv_file in glob.glob("./data/Nishika_ApartmentPrice/train/*"):
    df = pd.read_csv(filepath_or_buffer=csv_file,
                     converters={"面積(㎡)": str},
                     encoding="utf-8")
    data_df_list.append(df)
data_df = pd.concat(objs=data_df_list,
                    axis=0,
                    ignore_index=True)
print(data_df.columns)
Index(['ID', '種類', '地域', '市区町村コード', '都道府県名', '市区町村名', '地区名', '最寄駅:名称',
       '最寄駅:距離(分)', '間取り', '面積(㎡)', '土地の形状', '間口', '延床面積(㎡)', '建築年', '建物の構造',
       '用途', '今後の利用目的', '前面道路:方位', '前面道路:種類', '前面道路:幅員(m)', '都市計画', '建ぺい率(%)',
       '容積率(%)', '取引時点', '改装', '取引の事情等', '取引価格(総額)_log'],
      dtype='object')
1.2. S3にtrain.csvをアップロード

S3バケットにフォルダを作成して、先程作成したtrain.csvをアップロードします。

スクショ1.png

1.3. SageMaker StudioからCanvasを起動して、Canvasを開く

こちらの記事に記載したような形で、SageMaker StudioからCanvasを起動して、Canvasを開きます。その後、Data Wranglerのアイコンをクリックします。

スクショ2.png

スクショ3.png

スクショ4.png

スクショ5.png

2. Data Wranglerを操作

2.1. フロー(flow)を作成

Data Wranglerはフロー(flow)の中に行いたい処理を設定していく形になりますので、まずはフローを作成します。画面右上のImport dataのボタンをクリックします。

スクショ6.png

フローに名前を付けます。

スクショ7.png

これで、フローが新規作成されましたので、ここにデータをインポートしたり、行いたい処理を設定します。

スクショ8.png

2.2. S3に保存していたtrain.csvをインポート

まずは、新規作成したフローに、先程S3に保存したtrain.csvをインポートします。
画面中央のImport dataボタンをクリックします。

スクショ9.png

インポートするデータのタイプを聞かれます。今回はcsvファイルなので、Tabularをクリックします。

スクショ10.png

画面が変わります。こちらの画面の、Data Sourceの三角ボタンをクリックします。

スクショ11.png

インポートしたいデータがどこにあるのかを聞かれます。今回はS3にあるので、S3をクリックします。

スクショ12.png

すると、S3バケットを選択する画面になりますので、train.csvを保存したS3バケットからtrain.csvを選択して、Preview dataボタンをクリックします。

スクショ13.png

スクショ14.png

画面が変わります。train.csvの中身のプレビュー画面のような形です。画面の右側でいくつか設定出来るものがあります。データ数が50,000以上の場合は、Maximum sample sizeを変えたりします。

スクショ15.png

さらに、Advancedを展開すると、File EncodingDelimiter等の設定も出てきます。
今回は、Maximum sample size含めて、全て設定はそのままで、画面右下のImport dataボタンをクリックします。

スクショ16.png

train.csvがフローにインポートされました。

スクショ17.png

Data typesという処理が自動で設定されていますので、ダブルクリックして中身を見てみます。

スクショ1.PNG

train.csvのカラム毎のデータ型の設定になります。Data Wrangler側でインポート時にデータ型を自動で判別してくれています。

スクショ2.PNG

スクショ4.PNG

ここで中身を確認して、もし、データ型を変えたい場合は、対象のカラム名のデータ型を変更して、Previewボタンをクリックします。

スクショ5.PNG

スクショ6.PNG

データ型の変更を確認出来たら、Updateボタンをクリックします。

スクショ7.PNG

データ型が変更されました。フロー画面に戻る際は、**Data flow*ボタンをクリックします。

スクショ8.PNG

スクショ1.png

2.3. Data Quality and Insights Reportを作成

フローのData typesの横の縦3点ボタンをクリックして、Get data insightsをクリックします。

スクショ2.png

画面が変わります。画面の右側でいくつか設定する項目があります。

スクショ3.png

今回は下記の設定を行って、Createボタンをクリックしました。
Analysis type
 そのまま
Analysis name
 test_data_quality_and_insights_report
Problem type
 Regressionを選択
 (今回のtrain.csvはアパート価格を予測する回帰問題のため)
Target column
 取引価格(総額)_logを選択
 (目的変数であるアパート価格のカラム名)
Data size
 Full datasetを選択
Instance type
 ml.m5.4xlargeを選択
Number of instances
 1

スクショ4.png

画面が変わって、レポート作成ジョブが走り始めました。

スクショ5.png

約10分程度でレポート作成ジョブは完了して、Data Quality and Insights Reportが表示されました。

スクショ6.png

画面を下にスクロールすると、色々な情報が載っています。

スクショ7.png

Data Quality and Insights Reportは、レポート画面の上のこのマークをクリックする事で、ローカルにダウンロード出来ます。ただし、pdfファイルでなく、pngファイルというのは意外でした(笑)

スクショ8.png

フロー画面に戻る時は、レポート画面の上にあるフロー名をクリックすると、フロー画面に戻ります。

スクショ9.png

フローに、Data Quality And Insights Reportの処理が追加されていました。

スクショ10.png

2.4. 一部のカラムを削除

先程作成したData Quality And Insights Reportを見てみると、カラム名「種類」は、カテゴリカル変数ではあるものの、1つのカテゴリー値のみっぽいので、あまり特徴量としては向いていないとして、このカラムを削除しようと思います。

スクショ1a.png

フロー図で、Data typesの後ろにカラム削除の処理を追加したいので、Data typesの縦3点ボタンをクリックして、Add transformをクリックします。

スクショ2.png

画面が変わります。画面右側のAdd transformボタンをクリックします。

スクショ3.png

すると、どのような処理を追加するか、を選択する画面になります。

スクショ4.png

画面を下の方にスクロールすると、Manage columnsという処理があります。内容的に今回行いたい事と合っていそうなので、クリックします。

スクショ5.png

どのカラムを削除するのか、を設定する画面になりましたので、カラム名「種類」を選択して、Addボタンをクリックします。

スクショ6.png

スクショ7.png

画面が戻ると、3. Drop columnsという処理(Step)が追加されていました。また、データのプレビュー部分を横にスクロールして確認してみたところ、カラム名「種類」は削除されていました。

スクショ8.png

画面右上のData flowボタンをクリックして、フロー図に戻ってみます。

スクショ9.png

フロー図の方にも、Drop columnの処理が追加されている事が確認出来ます。Data Quality And Insights Reportの処理とは自動で別に分岐してくれています。

スクショ10.png

2.5. 再度、Data Quality And Insights Reportを作成

改めて、カラム名「種類」を削除したものでData Quality And Insights Reportを作成してみます。

まずは、Data columnの縦3点ボタンをクリックして、Get data insightsをクリックします。

スクショ11.png

ここの設定は、先程の時と同じで、createボタンをクリックします。(Analysis nameだけ少し変えました。)
Analysis type
 そのまま
Analysis name
 test_data_quality_and_insights_report_2
Problem type
 Regressionを選択
 (今回のtrain.csvはアパート価格を予測する回帰問題のため)
Target column
 取引価格(総額)_logを選択
 (目的変数であるアパート価格のカラム名)
Data size
 Full datasetを選択
Instance type
 ml.m5.4xlargeを選択
Number of instances
 1

スクショ12.png

先程と同様に画面が変わって、レポート作成ジョブが走り始めました。

スクショ13.png

約10分程度で、レポートが作成されました。前回のレポートと比較すると、カラム「種類」は削除されているので、Number of featuresの数や、categoricalの数が1つ減っている事が確認出来ました。

【今回】
スクショ14a.png

【前回】
スクショ15.png

フロー図に戻る時は、画面上部のフロー名をクリックします。

スクショ16.png

フロー図に、Data column処理の後ろにData Quality And Insights Report処理が追加されていました。

スクショ17.png


以上になります。

まとめ

SageMaker StudioのData Wranglerを触りの部分ではありますが、触ってみました。Data Quality And Insights ReportではXGBoostにかけた時の特徴量重要度の記載もあり、特徴量選択の参考にもなるので、便利と思いました。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?