4
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?

【30日でAWSをマスターするハンズオン問題集】Day30:SageMaker Canvasでデータサイエンスに入門しよう

4
Last updated at Posted at 2025-12-24

📝 概要

項目 内容
所要時間 約1.5時間
メインサービス AWS SageMaker Canvas
学べること Canvasで予測する方法、データ分析のプロセス
想定費用 約500円(※実行時間により変動します)

⚠️ 注意:以下のリソースを削除し忘れると課金が継続します。

  • エンドポイント
  • ワークスペース

まじで消し忘れで泣きます!!気を付けてください!

🎯 課題内容

タイタニックのデータを使って、予測モデルを構築します。

📊 分析フロー図

CRISP-DM に対応した CANVAS のフローです。

CRISP-DM

CRISP-DMとは

CRISP-DMは、データ分析の標準プロセスです。6つの手順を回すことでビジネス価値を生み出します。

  1. ビジネス理解:目的・KPIを定義
  2. データ理解:データの範囲・品質を把握
  3. データ準備:前処理、特徴量エンジニアリング
  4. モデリング:学習と検証
  5. 評価:指標の確認
  6. 展開:本番運用・改善

🔧 実装機能

事前準備

  1. Kaggleからタイタニックのデータを取得する
  2. Sagemakerのドメインを取得する

実装

  1. どんなデータか理解しよう
  2. データを登録しよう
  3. 性別ごとの生存フラグをみよう
  4. モデルを作って予測してみよう
  5. 評価をみよう(Confusion Matrix / F1)
  6. デプロイして呼び出してみよう

💡 実装のヒント

Kaggleからデータを取得する

Kaggleとは、データサイエンスのコンペティション(競技プログラミング)サイトです。
こちらから、タイタニックのデータを取得します。

  1. Kaggle アカウントを作成します。
  2. タイタニック生存予測 からダウンロードください。
  3. train.csvtest.csv を使用します。

このデータを使用して、データサイエンスの流れを体験してみましょう。

SageMakerでドメインを取得する

CANVASの利用には、SageMakerでドメインの作成が必要です。
シングルユーザー向けの設定から作成してください。

ユーザーは、デフォルトのままでも大丈夫です。

Studioを開くをクリックして、SageMaker Studioに入れたら成功です。

Q1. データを使ってどんな予測をしたいですか?

ビジネス理解では、データを使って予測したいことを決める必要があります。

今回のデータでは、どのような予測をしたいでしょうか?

Kaggleのコンペティションページを確認してみましょう。

※実案件では、顧客とのすり合わせが重要となります。データがあるからなんかできるやろってのはこのフェーズで消えます。

Q2-1. どんなデータがありますか?

ポイントは3つです。

  1. train と test の違いはなんでしょうか?
  2. 予測は、関数:X → Y で行われます。XYは具体的に何でしょうか?
  3. X,Y は変数名です。どんな概念を変数で表現していますか?(=データの意味はなに?)

これらは、Kaggleのコンペティションにあります。確認してみましょう。

※実案件では、顧客から聞き出す必要があります。サボると、顧客の直感と合わない分析になります。

Q2-2. データの分布はどうですか?

データ理解のフェーズでは、データの分布を確認します。
例えば、

  • Survivedは、0と1でどの割合ですか?
  • Survivedごとの、Sex のBar Chartはどうですか?

など、いろいろなグラフを作成してみましょう。

※実案件では、かなりの時間をかけながら、統計量やグラフなどの視点で確認します。

🚀One Pointアドバイス🚀

分布の確認には、さまざまな手法があり、初学者は迷うことが多いです。
1つだけ、極めればいいものを紹介します。

それは、「ヒストグラム」です。

上の2つの例のように、各変数に対して描くものと、変数の値ごとに色分けして描くものがあります。
これさえ極めれば、データの分布はかなりわかるようになります。
ぜひ、いろんな組み合わせでヒストグラムを描いてみてください。

Q3. 欠損データはありますか?

欠損データがあるかどうかを確認しましょう。
欠損データがある場合、どう対処できるか調べてみましょう。

今回は、SageMaker Canvasの自動処理に任せますが、実案件では重要なフェーズです。
他にも、カテゴリデータをどう扱うか、外れ値をどう扱うかなど、データの前処理は重要です。
実務では、前処理に8割の時間を使うと言われています。

Q4. 何のモデルを使いますか?

予測モデルを作成します。
X → Y の関数を学習します。X, Yは何でしょうか?。

「分類」タスクでは、どのようなモデルがあるか調べてみましょう。
今回は、SageMaker Canvasの自動モデリングに任せます。

Q5-1. 予測に役立つ変数はなんですか?

どの変数が予測に役立つか調べてみましょう。
直感に合っているでしょうか?

合ってない場合は、モデルが間違っているか、データが足りていないか、
はたまた、直感が間違っているかもしれません。
いろいろな可能性を考えてみましょう。

Q5-2. F1スコアはどうですか?

予測の評価を行います。
Confusion MatrixやF1スコアを確認してみましょう。

Precision, Recall, Accuracyなどもどのように計算され、どういう意味があるか調べてみましょう。

また、第1種、第2種の過誤についても調べてみましょう。

※実案件では、KPIに合わせて、どの指標を重視するかを決める必要があります。

Q6. 予測結果はどうですか?

作成したモデルに、テストデータを入れて、予測結果を取得してみましょう。

テストデータには答えがないので、予測結果 0, 1を確認するだけになります。

✅ 完成後のチェックポイント

  • [ ]どのようなデータかわかる
  • 性別ごとの生存フラグが見れる
  • Confusion Matrixが見れる
  • 予測結果を取得できる

🧰 使用資材

🔗 リファレンスリンク

🛠️ 解答・構築手順(クリックで開く)

解答と構築手順を見る

✅ ステップ0:事前準備

1. Kaggleのアカウント作成

Kaggleのウェブサイトにアクセスします。
右上にある、Registerをクリックします。

Kaggle Register

Register with Emailの順にクリックします。

Kaggle Register with Email

メールアドレス、パスワード、ユーザー名を入力します。認証ができたら、アカウント作成は完了です。

もちろん、Googleアカウントでも登録できます。

2. タイタニックデータのダウンロード

Kaggleのタイタニックのデータページにアクセスします。

Download Allをクリックして、zipをダウンロードします。
Kaggle Download

ダウンロードした、titanic.zipを解凍すると、train.csvtest.csv が入っています。
submission.csvは、今回は使用しません。

3. SageMaker ドメインの作成

SageMaker Canvasを使用するには、SageMakerドメインの作成が必要です。

Amazon SageMaker AI にアクセスします。

SageMaker Studio

シングルユーザー向けの設定をクリックすると、

SageMaker Single User

ドメインの作成をクリックします。

SageMaker Create Domain

こちらで待ちます。

SageMaker Domain Creating

ドメインが作成できたら、Studioをクリックし、先ほどのuser profileでStudioを開くをクリックします。

SageMaker Studio Launch

すると、別画面でSageMaker Studioが立ち上がります。

SageMaker Studio Launching

Quick tourはスキップしても大丈夫です。
今回は、左上にある、Canvasをクリックします。

SageMaker Canvas Launch

押すと、Canvasのページに移動します。
Run Canvasをクリックします。起動に数分かかります。

SageMaker Canvas Run

⚠️ 注意:終わったらこちらの画面でStopしてください。Runningだと1時間1.9USDかかります!

Open Canvasで起動します。
SageMaker Canvas Open

起動すると、こんな画面になります。

SageMaker Canvas Home

4. データセットの登録

Datasetsをクリックします。
SageMaker Canvas Home

import dataから、Tabularをクリックします。
SageMaker Canvas Import Data

データセットの名前を train_titanic とします。
SageMaker Canvas Import Data

先ほど解凍したtrain.csvをアップロードします。

SageMaker Canvas Import Data

preview datasetをクリックして、良さげだなあと思いながら、create datasetをクリックします。

SageMaker Canvas Create Dataset

すると、データセットが登録されます。同様の流れで、test.csvも登録しましょう。

SageMaker Canvas Dataset List

✅ ステップ1: ビジネス理解

Q1. データを使ってどんな予測をしたいですか?
A1. タイタニック号の乗客が生存したかどうかを予測したい。

このフェーズは、コードを書くことはありません。が、非常に重要なフェーズです。
目的のないデータ分析は、結果が出ないだけでなく、誤った意思決定を招く可能性があります。
必ず、目的を明確にしましょう。

✅ ステップ2: データの理解

どんなデータがあるか確認してみましょう。
train_titanicをクリックします。すると、100件ほどデータが見れます。

SageMaker Canvas Dataset Detail

create dataflowをクリックします。名前をtitanic_dataflowとします。するとData Wranglerが起動します。

Dataタブをクリックします。

SageMaker Canvas Dataflow

各変数ごとの、ヒストグラムを見ることができます。
せっかくなので、 SurvivedSexAgeのヒストグラムを見てみましょう。

SageMaker Canvas Dataflow Histgram
SageMaker Canvas Dataflow Histgram
SageMaker Canvas Dataflow Histgram

乗客はなくなってしまった人が多いですね。男性が多く乗船していたようです。
年齢は、0歳から70歳くらいまで幅広く乗船していたようです。

他にも色々と読み取れますので、いろんな変数も見てみてください。

Q2-1. どんなデータがありますか?

Q. train と test の違いはなんでしょうか?

A. trainは「学習」testは「予測の評価」をするデータです。
大きな違いは、trainには目的変数Survivedが含まれますが、testには含まれてません。

Q. 予測は、関数:X → Y で行われます。XとYは具体的に何でしょうか?

A. Xは説明変数(特徴量)、Yは目的変数(予測したい値)です。今回の場合、XはPclass, Sex, Ageなど、YはSurvivedになります。

Q. X,Y は変数名です。どんな概念を変数で表現していますか?(=データの意味はなに?)

A. 例えば、Pclassは乗客のクラス(1等、2等、3等)、Sexは性別、Ageは年齢、Survivedは生存フラグ(0:死亡、1:生存)です。

Q2-2. データの分布はどうですか?
A. Survivedは0が多く、1が少ないです。Sexは男性が多く、女性が少ないです。Ageは0歳から70歳くらいまで幅広く分布しています。上で見たヒストグラムを参考にしてください。

✅ ステップ3: データの準備

本当は、欠損値の処理や、カテゴリ変数の処理などを行う必要があります。
今回は、SageMaker Canvasの自動処理に任せます。

実際にしたい場合は、Data Wranglerで前処理を行うことができます。
今回はしません。

CANVASに戻りましょう。
My Modelsからcreate modelをクリックします。

SageMaker Canvas Create Model

モデル名をtitanicとします。Predictive analyticsを選択しcreateをクリックします。
SageMaker Canvas Create Model

データセットは、train_titanicとして、Select datasetをクリックします。
SageMaker Canvas Select Dataset

ターゲット変数は、Survivedを選択します。
SageMaker Canvas Select Target

このタイミングで、欠損値も確認できます。

先ほど見た、SurvivedSexに欠損はないようです。
しかし、Ageには欠損があります。

SageMaker Canvas Missing Value
SageMaker Canvas Missing Value

Data Visualizerをクリックしてみましょう。

ここで、SexごとのSurvivedのヒストグラムを見てみましょう。
(厳密には、生き残った人数がわかります)

SageMaker Canvas Data Visualizer
男性よりも女性の方が生存率が高いことがわかります。

他にもいろんな組み合わせでグラフを見てみましょう。

Q3. 欠損データはありますか?
A3. Ageに欠損があります。SexSurvivedには欠損はありません。

✅ ステップ4: モデリング

上手くモデルを作ってくれることを祈りつつ、Quick buildをクリックします。
ある程度時間が経つと、モデルが完成します。
SageMaker Canvas Model Building

✅ ステップ5: 評価

作成したモデルが良いモデルかを評価します。

まず、予測に役立つ変数を確認してみましょう。

SageMaker Canvas Feature Importance

Ticket や Sexが重要な変数のようです。映画を見たことがある人にとっては、直感的ですね。

Scoringを見てみましょう。

SageMaker Canvas Scoring

Confusion Matrixと言われる👇の表を視覚的にわかりやすくまとめてくれていますね。

SageMaker Canvas Confusion Matrix

他の指標も確認してみましょう。

Q5-1. 予測に役立つ変数はなんですか?
A5-1. TicketやSexが予測に役立つ変数です。

Q5-2. F1スコアはどうですか?
A5-2. F1スコアは0.774です。

✅ ステップ6: デプロイ

予測をしてみましょう。
Predictをクリックします。

SageMaker Canvas Predict

Batch predictionで、Manualを選択し、test_titanicを選びます。
そこから、Genarate predictionsをクリックします。

SageMaker Canvas Batch Prediction

予測が完了すると、予測結果が入っcsvをダウンロードできます。
右側にあるstatusの3点リーダーからdownloadをクリックします。

SageMaker Canvas Download Prediction

得られたcsvには、予測結果であるsurvivedとその確率を表すProbabilityが入っています。
SageMaker Canvas Prediction Result

GUIベースに予測結果を得るだけだと、案件では使いにくいです。
時間のある方は、エンドポイントをデプロイして、API経由で予測結果を得られるようにしてみましょう。Code Editorを使うと、Python環境も使えるのでおすすめです。挑戦してみてください。

本教材では、扱わないことにします。

Q6. 予測結果はどうですか?
A6. 今回は、testデータに対して予測を行いました。テストには答え(ラベル)がないので、予測結果 0, 1を確認するだけになります。

🧹 片付け(リソース削除)

  • ワークスペースを停止する

画面×ではなく、正しくログアウトして、ワークスペースがstoppedになっていることを確認してください。
SageMaker Canvas Stop

🏁 おつかれさまでした!

この課題では SageMaker Canvasを使って、データ分析の流れを体験してもらいました。
ここからのステップアップは、次のものがあります。全部チャレンジすると、インフラ構築もできるデータサイエンティストになれます!

  1. (ノーコード)SageMaker Canvasでデータ分析の自動化をしてみる
  2. (ローコード)SageMaker Data Wranglerでデータ前処理をして、エンドポイント経由で予測してみる
  3. (notebook)SageMaker StudioでJupyter Notebook と scikit-learn を使ってみる
  4. (python)optuna の LightGBM チューニングを使って、クラスを使いながらパイプライン(前処理〜予測)を作ってみる
  5. (Sagemaker Job) Sagemakerの学習ジョブも使って、一連のデータパイプライン(S3/Glue/Redshift/SageMaker Job / Athena / QuickSight)を作ってみる
4
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
4
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?