シンプルなサンプリング
データから一部の行を取り出します。大きなデータで試しに処理を流す、全体の傾向を見る、といった使い方をします。
訓練データと検証データに分けたいならランダムにデータを分割を使ってください。
入出力
| ポート | 内容 |
|---|---|
| 入力データ | データ |
| 出力データ | データ |
Spark エンジンでも動きます。ただし Spark では行数が指定どおりちょうどにはなりません。 比率でも実数値でも、内部では「その割合で各行を残すか決める」形になるので、おおよその行数になります。ちょうどの行数がほしいときは Spark を使わないでください。
行の数だけが変わります。 列はすべてそのまま残ります。
並び順は手法で変わります。 ランダムサンプリングでは元の並び順のままです(抜き出したあとに元の順に並べ直します)。層別サンプリングでは層ごとにまとまった並びになり、層の中では元の順になります。
設定項目
- 手法を選択必須
- ランダムサンプリング(既定)か層別サンプリング。
- 層化する列を選択必須
- 層別サンプリングのときだけ出ます。この列の構成比を保ったまま抜き出します。複数選べます。
- サンプルサイズの決め方を指定
- 比率で指定(既定)か実数値で指定。
- サンプルサイズを指定(0~1)必須
- 比率で指定のときだけ出ます。既定は
0.5。 - サンプルサイズを指定(整数)必須
- 実数値で指定のときだけ出ます。既定は
2500。
オプション
- 重複行の発生を許可する
- on にすると、同じ行が複数回選ばれることがあります。既定は off です。
- 乱数シードを固定する
- 整数を入れます。考え方は乱数シードを参照。
比率で指定するときの範囲
0 と 1 そのものは入れられません。 0 は 1 行も取らない指定、1 は全行を取る指定になるため、どちらもエラーになります。全行がほしいならこのノードを使わないでください。
層別サンプリングを使う場面
元の構成比を保ちたいときに使います。たとえば会員区分が 90:10 のデータからランダムに 100 行取ると、少ない方が 0 件になることがあります。層別なら 90:10 のまま抜けます。
層化する列が空欄の行も 1 つの層になります。 空欄どうしでまとまって、そこからも指定した割合で抜かれます。
比率で指定するのが基本です。 実数値で指定すると、各層からその数ずつ抜こうとするので、小さい層では行数が足りずエラーになります。
エラーと対処
比率が範囲外
比率で指定で、0 以下か 1 以上の値を入れたときに出ます。
比率は 0~1 の値を指定してください。
直し方 — 0.1 のように、0 と 1 のあいだの値を入れてください。
サンプルサイズが行数より大きい
実数値で指定で、データの行数(層別なら層の行数)より大きい数を入れたときに出ます。
サンプルサイズが実際のデータ数より大きいです。値を小さくするか、重複レコードの発生を許可するオプションを有効にしてください。
直し方 — 数を減らすか、重複行の発生を許可するを on にしてください。層別のときは、いちばん小さい層の行数に合わせる必要があります。
選んだ列が入力データにない
層化する列を選択で選んだ列が、前のノードで名前を変えられた・消されたときに出ます。
対象の列が存在しません。
直し方 — 層化する列を選択で選び直してください。層別にしないなら手法を選択をランダムサンプリングに戻します。
よく使う例
1. 試しに 1000 行で流す
重い処理を組み立て中で、まず少ない行で動きを確かめたいとき。
入力 — 500 万行のデータ
設定
| 設定項目 | 値 |
|---|---|
| 手法を選択 | ランダムサンプリング |
| サンプルサイズの決め方を指定 | 実数値で指定 |
| サンプルサイズを指定(整数) | 1000 |
出力 — 1000 行になります。列はそのままなので、後続のノードはそのままつなげます。
2. 構成比を保って抜く
会員区分の割合を変えずに 10% だけ取りたいとき。
入力(1000 行)
| 会員区分 | 行数 |
|---|---|
| 一般 | 900 |
| 優待 | 100 |
設定
| 設定項目 | 値 |
|---|---|
| 手法を選択 | 層別サンプリング |
| 層化する列を選択 | 会員区分 |
| サンプルサイズの決め方を指定 | 比率で指定 |
| サンプルサイズを指定(0~1) | 0.1 |
出力 — 一般 90 行 / 優待 10 行の 100 行になります。ランダムサンプリングだと優待が 0 件になることがあります。
3. 半分だけ取り出す
全体の傾向を見るだけなので、半分あれば十分というとき。
入力 — 20 万行のデータ
設定
| 設定項目 | 値 |
|---|---|
| サンプルサイズの決め方を指定 | 比率で指定 |
| サンプルサイズを指定(0~1) | 0.5(既定) |
出力 — 10 万行になります。
4. 重複ありで水増しする
ブートストラップのように、同じ行が複数回出てもよいとき。
入力(100 行)
| 顧客 | 利用額 |
|---|---|
| C-1 | 1200 |
| C-2 | 800 |
設定
| 設定項目 | 値 |
|---|---|
| サンプルサイズの決め方を指定 | 実数値で指定 |
| サンプルサイズを指定(整数) | 300 |
| 重複行の発生を許可する | on |
出力 — 300 行になります。同じ顧客の行が何度も出てきます。