指数・対数変換
数値に指数または対数を掛けます。偏りの大きいデータをならす、対数にした値を元に戻す、といった使い方をします。
データに合わせて変換の強さを決めたいならBox-Cox変換・逆変換を使ってください。
入出力
| ポート | 内容 |
|---|---|
| 入力データ | データ |
| 出力データ | データ |
Spark エンジンでも動きます。
行の数は変わりません。 対象列 1 つにつき 1 列増えます。
設定項目
- 処理対象列を選択
- 変換する列。数値の列だけ選べます。複数選べます。
- 処理対象列を結果から除外する
- on にすると、変換前の列を消します。既定は off です。
- 変換手法を選択必須
- 指数変換(既定)か対数変換。
どちらを使うか
| 手法 | 計算 | 効果 | 使いどころ |
|---|---|---|---|
| 対数変換 | ネイピア数を底とする自然対数 | 大きい値を縮める | 売上や人口のように裾の長い分布をならす |
| 指数変換 | ネイピア数のべき乗 | 小さい値を広げる | 対数にした値を元に戻す |
2 つは互いの逆の計算です。 対数変換を掛けた列に指数変換を掛けると元の値に戻ります。常用対数(底 10)は選べません。
増える列の名前
元の列は書き換わりません。 新しい列がいちばん右に増えます。
| 手法 | できる列 |
|---|---|
| 指数変換 | 指数_<元の列名> |
| 対数変換 | 対数_<元の列名> |
Spark エンジンでは無限大が残りません。 対数のマイナスの無限大も、指数であふれた無限大も、空欄に置き換えて出ます。
エラーと対処
処理対象列に数値以外がある
数値に見えても文字列型になっている列を選んだときに出ます。
処理対象列に数値型以外のデータが含まれてます。型変換をするか、数値型以外の列を除去してください。
直し方 — 列の型変更で数値にするか、その列を外します。
処理対象列を選んでいない
処理対象列を選択を空のまま実行したときに出ます。
対象の列が選択されていません。
直し方 — 処理対象列を選択で列を選んでください。
選んだ列が入力データにない
前のノードで列名を変えたり列を削ったりして、選んである列がなくなったときに出ます。
対象の列が存在しません。
直し方 — 列を選び直してください。
よく使う例
1. 偏った分布をならす
売上が一部の大口に引っ張られていて、平均が実感と合わないとき。
入力
| 顧客 | 売上 |
|---|---|
| C-1 | 1000000 |
| C-2 | 2000 |
| C-3 | 1000 |
設定
| 設定項目 | 値 |
|---|---|
| 処理対象列を選択 | 売上 |
| 変換手法を選択 | 対数変換 |
出力 — 対数_売上 が増えます。値はおよそ 13.8 / 7.6 / 6.9 になり、桁の差が縮まります。
2. 対数で予測した値を金額に戻す
対数変換した列でモデルを作ったので、結果を元の単位に戻したいとき。
入力(予測結果)
| 顧客 | 予測値 |
|---|---|
| C-1 | 7.6 |
| C-2 | 6.9 |
設定
| 設定項目 | 値 |
|---|---|
| 処理対象列を選択 | 予測値 |
| 変換手法を選択 | 指数変換 |
出力 — 指数_予測値 が増え、およそ 2000 / 1000 になります。
3. 変換前と変換後を並べて確かめる
対数を取ったときに空欄や無限大が出ていないかを見たいとき。
入力
| 商品 | 在庫 |
|---|---|
| A | 12 |
| B | 0 |
設定
| 設定項目 | 値 |
|---|---|
| 処理対象列を選択 | 在庫 |
| 変換手法を選択 | 対数変換 |
| 処理対象列を結果から除外する | off(既定) |
出力 — 在庫 の右に 対数_在庫 が並びます。B の行はマイナスの無限大(Spark エンジンでは空欄)になっているので、ここで気づけます。
4. 複数の列をまとめて変換する
説明変数が何本もあり、まとめて分布を整えたいとき。
入力
| 売上 | 客数 | 単価 |
|---|---|---|
| 1000000 | 800 | 1250 |
| 2000 | 4 | 500 |
設定
| 設定項目 | 値 |
|---|---|
| 処理対象列を選択 | 売上、客数、単価 |
| 変換手法を選択 | 対数変換 |
| 処理対象列を結果から除外する | on |
出力 — 対数_売上 対数_客数 対数_単価 の 3 列になり、元の 3 列は消えます。