数値の二値化
数値を 0 と 1 の 2 つに分けます。平均より上かどうか、しきい値を超えたかどうかで分けたいときに使います。
3 つ以上に分けたいなら数値列のカテゴリ化を使ってください。
入出力
| ポート | 内容 |
|---|---|
| 入力データ | データ |
| 出力データ | データ |
Spark エンジンでも動きます。
行の数は変わりません。 変わるのは、新しく増える列(または上書きした列)だけです。
設定項目
設定
二値化する列としきい値の組です。いくつでも足せます。
- 結果の挿入先を設定
- 新規列に挿入(既定)か既存列に上書き。
- 新規列名を入力必須
- 新規列に挿入のときだけ出ます。
- 処理対象列を選択
- 二値化する列。数値の列だけ選べます。1 つの組につき 1 列です。既存列に上書きのときは必須です。
- 手法を選択
- 平均値より大きい値を1、それ以外を0に変換(既定)/ 中央値より大きい値を1、それ以外を0に変換 / 任意の閾値を設定。
- 閾値を入力必須
- 任意の閾値を設定のときだけ出ます。数値で入力します。
0 と 1 の分かれ方
しきい値ちょうどの値は 0 になります。 判定は「しきい値より大きいか」で、等しい値は 0 側です。
| 元の値 | しきい値 100 のとき |
|---|---|
| 150 | 1 |
| 100 | 0 |
| 50 | 0 |
欠損値は欠損値のままです。 0 にも 1 にもなりません。列が全部欠損のときは、結果も全部欠損になります。
エラーと対処
処理対象列に数値以外がある
処理対象列を選択では数値の列しか選べませんが、選んだあとに上流のデータが変わり、その列が数値型でなくなったときに出ます。
処理対象列に数値型以外のデータが含まれてます。型変換をするか、数値型以外の列を除去してください。
直し方 — 列の型変更で数値にするか、その列を外します。
新規列名が既存の列名とぶつかっている
新規列に挿入で、すでにある列と同じ名前を入れたときに出ます。
新規列名(
{{new_col}})が既存の列名と重複しています。
直し方 — 別の名前にするか、既存列に上書きに切り替えます。
処理対象列を選んでいない
処理対象列を選択を空のまま実行したときに出ます。
対象の列が選択されていません。
直し方 — 処理対象列を選択で列を選んでください。
選んだ列が入力データにない
前のノードで列名を変えたり列を削ったりして、選んである列がなくなったときに出ます。
対象の列が存在しません。
直し方 — 列を選び直してください。
よく使う例
1. 平均より上かどうかで分ける
売上が平均より大きい行に印を付けて、後の集計で数えたいとき。
入力
| 店舗 | 売上 |
|---|---|
| 渋谷 | 150 |
| 新宿 | 90 |
| 池袋 | 60 |
設定
| 設定項目 | 値 |
|---|---|
| 結果の挿入先を設定 | 新規列に挿入 |
| 新規列名を入力 | 高売上 |
| 処理対象列を選択 | 売上 |
| 手法を選択 | 平均値より大きい値を1、それ以外を0に変換 |
出力 — 平均は 100 なので、高売上 は上から 1 / 0 / 0 になります。
2. 決まった金額で分ける
社内の基準額が決まっていて、平均ではなくその額で分けたいとき。
入力
| 受注番号 | 金額 |
|---|---|
| A-1 | 120000 |
| A-2 | 100000 |
設定
| 設定項目 | 値 |
|---|---|
| 処理対象列を選択 | 金額 |
| 手法を選択 | 任意の閾値を設定 |
| 閾値を入力 | 100000 |
出力 — A-1 は 1、A-2 はちょうどなので 0 になります。
3. 外れ値に強い基準で分ける
極端に大きい 1 件に平均が引っ張られてしまうとき。
入力
| 店舗 | 売上 |
|---|---|
| 渋谷 | 10000 |
| 新宿 | 120 |
| 池袋 | 100 |
| 上野 | 80 |
設定
| 設定項目 | 値 |
|---|---|
| 処理対象列を選択 | 売上 |
| 手法を選択 | 中央値より大きい値を1、それ以外を0に変換 |
出力 — 平均は 2575 で渋谷だけが 1 になりますが、中央値は 110 なので渋谷と新宿が 1 になります。
4. 複数の列をまとめて二値化する
売上・利益・件数をそれぞれ平均で分けたいとき。
入力
| 店舗 | 売上 | 利益 | 件数 |
|---|---|---|---|
| 渋谷 | 150 | 30 | 12 |
| 新宿 | 90 | 20 | 8 |
設定 — 設定を 3 つ足し、#1 に売上、#2 に利益、#3 に件数を指定します。
出力 — 新しい列が 3 つ増えます。元の 4 列はそのまま残ります。
5. 機械学習の目的変数を作る
「購入したかどうか」を予測したいが、手元にあるのは購入金額だけというとき。
入力
| 顧客 | 購入金額 |
|---|---|
| C-1 | 3200 |
| C-2 | 0 |
設定
| 設定項目 | 値 |
|---|---|
| 新規列名を入力 | 購入フラグ |
| 処理対象列を選択 | 購入金額 |
| 手法を選択 | 任意の閾値を設定 |
| 閾値を入力 | 0 |
出力 — 購入フラグ が 1 / 0 になります。この列をそのまま分類モデルの目的変数に使えます。