はじめに
SIGNATEの 【練習問題】銀行の顧客ターゲティング をDataikuで実施しました。
本記事ではDataikuを用いて、ノーコードで二値分類を行う手順について解説します。
概要
この課題では、銀行の顧客属性データや過去のキャンペーンでの接触情報をもとに、顧客が口座を開設するかどうかを予測します。
使用データ
使用するデータは、以下の2種類です。(データのダウンロードはこちら)
- 学習用データ(train.csv)
- 評価用データ(test.csv)
評価指標
本コンペティションでは AUC(Area Under the Curve) を指標としてモデルの制度を評価します
投稿方法
提出するファイルは、以下の形式の csv(ヘッダなし) で作成します。
id | 申し込み有無 |
1 | 0 |
2 | 1 |
… | … |
1列目にid、2列目に申し込み有無を記載し、SIGNATE上で投稿します。
使用レシピ一覧
本タスクでは、Dataikuの以下のレシピを使用しました。
Visual recipes(データ処理)
- Stack:複数のデータセットを統合(ユニオン)
- Prepare:様々な前処理を実施
- Delete/Keep columns by name:不要な列の削除または必要な列の抽出
- Formula:数式を記述してデータを加工
- Unfold:カテゴリ変数をone-hot encoding(ダミー変数化)
one-hot encoding(ダミー変数化)とは?
カテゴリデータを機械学習モデルが扱える数値データに変換する方法です。
サンプル:色のカテゴリデータ
色 red blue yellow one-hot encoding(ダミー変数化)後
red blue yellow 1 0 0 0 1 0 0 0 1 one-hot encodingを行う理由
- ほとんどのモデルは カテゴリデータをそのまま入力できない ため
- 数値の大小による影響を防ぐため
例えば、
red=1, blue=2, yellow=3
のように数値を割り当てると、モデルが「blue(2)は red(1)より大きい」など 誤った関係を学習 してしまう。
- モデルの精度向上のため
- Fill empty cells with fixed value:欠損値を特定の値で補間
- Split:データセットを分割
Lab(機械学習)
- AutoML Prediction:機械学習モデルを自動構築
Other recipes(その他)
- Score:学習済みモデルを用いて予測データのスコアリング
ここまでで事前知識は完了です。では、さっそくDataikuを使って二値分類を実施する手順を説明していきます。
ハンズオン
データ理解
プロジェクトの作成
- Dataikuホーム画面の右側にある「NEW PROJECT」をクリックしてプロジェクトを作成します。

データのインポート
- 「IMPORT YOUR FIRST DATASET」をクリックします。
- 「SELECT FILES」をクリックし、
train.csv
とtest.csv
を選択します。(ctrl
キーを押しながら複数のファイルを選択可能です。)
欠損値の確認
- 「CREATE YOUR FIRST WORKSHEET」をクリックします。
- Automated selectionの「Automatically suggest analyses」をクリックします。(簡単に統計分析ができます。)
- 今回は、Select features and let Dataiku suggest interesting cardsの「Univariate analysis on all variables」を選択して、「CREATE SELECTED CARDS」をクリックします。(平均や欠損値の確認などが出来ます。)
- 右上の「NEW CARD」をクリックして、Automated selectionの「Automatically suggest analyses」をクリックします。
- Select features and let Dataiku suggest interesting cardsの「Correlation matrix on all numerical…」を選択して、「CREATE SELECTED CARDS」をクリックします。(相関行列を確認できます。)
カテゴリデータの可視化
欠損値や相関の確認ができたので、次は各カテゴリデータ
とy
との関係を確認します。
連続データの可視化
- 再度「Statistics」タブに遷移します。
y
との相関が高かったduration、pdays、previous
を確認します。(列の並び順を変更しています。)pdays
にマイナスの値があることが確認できました。また、
グラフと分布とMaxの行
を見てみるとそれぞれ外れ値が存在していることが確認できます。
これらの分析から以下の情報が分かりました。
- 職種別申込み確率:労働者でない場合に
y
の確率が高い。unknown
がデータとしてある。
- 教育水準別申込み確率:
unknown
がデータとしてある。
- default別申込み確率:
no
のほうがy
が1である確率が高い
- marital別申込み確率:
single
のほうがy
が1である確率が高い
- housing別申込み確率:
no
のほうがy
が1である確率が高い
- loan別申込み確率:
no
のほうがy
が1である確率が高い
おまけ(Tableauで分析用のダッシュボードを作成するとこんな感じになります。)

まとめ
ここまで、データのインポートから、欠損値の確認、相関行列の分析、そして可視化によるデータの探索までを行いました。Dataikuを活用することで、これらのプロセスをノーコードでスムーズに実施でき、データ分析に集中できる点が大きなメリットです。次回は、機械学習編としてモデル構築について詳しく説明していきます。
