文字列を数値に変換
カテゴリの文字列に 0 から始まる番号を振ります。機械学習で文字列を扱うための前処理です。
値ごとに別の列にしたいならダミー変数列の作成を使ってください。
入出力
| ポート | 内容 |
|---|---|
| 入力データ | データ |
| 出力データ | データ |
Spark エンジンでも動きます。
行の数は変わりません。 対象列 1 つにつき 1 列増えます。
設定項目
- 処理対象列を選択
- 番号を振る列。文字列の列だけ選べます。複数選べます。
- 処理対象列を結果から除外する
- on にすると、変換前の列を消します。既定は off です。
番号の付き方
変換結果は <元の列名>_変換後 という新しい列に入ります。 元の列は書き換わりません。
値を文字として並べた昇順に、0, 1, 2 … と振ります。 日本語の値は文字コードの順になるので、五十音順にはなりません。どの値に何番が付くかは選べません。
入力
| 地域 |
|---|
| 東京 |
| 大阪 |
| 東京 |
| 福岡 |
出力(元の列は既定で残ります)
| 地域 | 地域_変換後 |
|---|---|
| 東京 | 1 |
| 大阪 | 0 |
| 東京 | 1 |
| 福岡 | 2 |
欠損値にも番号が付きます。 欠損は「欠損という 1 つの値」として扱われ、他の値と同じように番号を取ります。欠損を分けたくないときは、先に欠損値処理で埋めてください。
エラーと対処
処理対象列を選んでいない
処理対象列を選択を空のまま実行したときに出ます。
対象の列が選択されていません。
直し方 — 処理対象列を選択で列を選んでください。
選んだ列が入力データにない
前のノードで列名を変えたり列を削ったりして、選んである列がなくなったときに出ます。
対象の列が存在しません。
直し方 — 列を選び直してください。
よく使う例
1. 決定木系のモデルにカテゴリ列を入れる
カテゴリを使いたいが、ダミー変数にすると列が増えすぎるとき。
入力
| 地域 | 売上 |
|---|---|
| 東京 | 150 |
| 大阪 | 120 |
設定
| 設定項目 | 値 |
|---|---|
| 処理対象列を選択 | 地域 |
| 処理対象列を結果から除外する | on |
出力 — 地域_変換後 と 売上 が残り、地域 は消えます。列は増えません。
2. 種類の多いカテゴリを 1 列で扱う
商品コードが 1000 種類あり、ダミー変数にすると 1000 列になってしまうとき。
入力
| 商品コード | 数量 |
|---|---|
| SKU-0001 | 3 |
| SKU-0742 | 1 |
設定
| 設定項目 | 値 |
|---|---|
| 処理対象列を選択 | 商品コード |
出力 — 商品コード_変換後 が 1 列だけ増えます。1000 種類あっても列は 1 本です。
3. 複数のカテゴリ列をまとめて番号にする
地域・会員区分・流入経路をいっぺんに数値化したいとき。
入力
| 地域 | 会員区分 | 流入経路 |
|---|---|---|
| 東京 | 一般 | 検索 |
| 大阪 | 優待 | 広告 |
設定
| 設定項目 | 値 |
|---|---|
| 処理対象列を選択 | 地域、会員区分、流入経路 |
出力 — 地域_変換後 会員区分_変換後 流入経路_変換後 の 3 列が増えます。
4. 変換前と変換後を並べて確かめる
どの値に何番が付いたかを目で見て確かめたいとき。
入力
| 会員区分 |
|---|
| 一般 |
| 優待 |
| 休会 |
設定
| 設定項目 | 値 |
|---|---|
| 処理対象列を選択 | 会員区分 |
| 処理対象列を結果から除外する | off(既定) |
出力 — 会員区分 の右に 会員区分_変換後 が並ぶので、対応をそのまま読み取れます。
| 会員区分 | 会員区分_変換後 |
|---|---|
| 一般 | 0 |
| 優待 | 2 |
| 休会 | 1 |
入力に出てきた順ではありません。 文字コードの昇順(一 → 休 → 優)で振られるので、優待 が 1 ではなく 2 になります。番号を自分で決めたいときは、代わりに条件に応じて値を列に挿入を使います。