RapidMiner
あなたの前処理を早くする!前処理の三種の神器【Loop編】
みなさんこんにちは。
KSKアナリティクスの北野です。
今日はこれを身につければあなたの前処理は早くなる!第三弾!
ということで、皆様に使っていただきたい「前処理の三種の神器」その3をお伝えいたします。
なお、これはシリーズものとし、マクロ編、if編、Loop編のように進めております。
今回はシリーズ最後のLoop編です!
シリーズも大詰めとなり、前処理が格段に早くなるときも近づいています。
最後のLoopも習得し、前処理を早く終わらせてしまいましょう!
Loopとは?
Loopは繰り返しのことを指し、同じ処理を何度も行いたいときに使われます。
プログラミングに親しみがある方なら、for文と言ったほうがわかりやすいでしょうか。
前処理では、例えば複数の属性について同じ処理を行いたいときや、
フォルダに入っているデータを読み込みたい時などに使われます。
Loopについては実際に触っていただいた方がわかりやすいと思うので、早速RapidMinerでの操作に入ります!
実際にRapidMinerで行ってみよう
※操作はRapidMiner ver9.3で実施しています
今回の例では、複数の属性を同じ値で割りたい場面を想定しています。
具体的には、Irisデータセットの中の数値を全て10で割る操作を行います。
Irisデータセットの中の属性を全て10で割りたい場合、実はLoopを使わなくとも同じ結果を得ることは可能です。
それは、Generate Attributesを何度も使う方法です。
実際に少し試してみましょう。
まずIrisデータセットとGenerate Attributesを設置します。
次に、Edit Listをクリックし各ボックスに以下の式を入力します。
a1: a1/10
a2: a2/10
a3: a3/10
a4: a4/10
この状態でプロセスを実行すると、確かに全ての属性を10で割ることができています。
しかし、今は4属性のため一つ一つ式を設定することができましたが、100属性、1000属性あればどうでしょうか。
不可能ではないですが非常に手間のかかる作業です。
同じ作業を繰り返すなら、当然自動化したいと思います。
そこで使用するのがLoop Attributesオペレータです。
上図のように、IrisデータセットとLoop Attributesオペレータを配置してください。
また、Loop Attributesをダブルクリックして中に入り、Generate Attributesオペレータを配置します。
Loop Attributesオペレータのreuse resultsにチェックを入れます。
こうして、繰り返すごとに結果を更新するようにします。
また、このとき、attribute name macroにある”loop_attribute”をコピーしておいてください。
この後のGenerate Attributesで用います。
Generate AttributesのEdit Listをクリックすると、ダイアログが開きます。
それぞれのボックスに以下を入力してください。
(Loop Attributesでコピーした”loop_attribute”はここで用います。)
%{loop_attribute}: eval(%{loop_attribute}) / 10
“%{loop_attribute}”と見て、見覚えがある人もいらっしゃるかもしれません。
これはマクロ編で扱ったマクロの使用方法です。
「マクロって何?」となった方はマクロ編をご覧ください。
マクロを設定したことで、%{loop_attribute}は属性名に、eval(%{loop_attribute})は値に変わります。
つまり、ループの一回目は%{loop_attribute}はa1に、eval(%{loop_attribute})は5.1などの中の値に変わります。
ループの二回目は%{loop_attribute}はa2に、eval(%{loop_attribute})は3.5などの中の値に変わります。
マクロの値が変わっていく様子を詳しく見たい方は、Generate Attributesにブレークポイントを挿入し、マクロパネルを表示させてください。
(マクロパネルについても詳しくはマクロ編をご覧ください。)
順番にマクロの値が変わっていく様子を見ることができます。
プロセスを実行します。
結果を見ると、Irisデータセットの数値属性を全て10で割ることができました!
ループで行っていることは単なる繰り返しですので、同様の処理を手作業で行うことも可能です。
しかし、膨大な量のデータを扱う場合、一つ一つを手で行う訳にはいきません。
面倒なことはRapidMinerにしてもらえばいいのです。
まとめ
マクロ編、if編、Loop編と前処理で大変便利なツールをご紹介しました。
しかし、これらは単体で使うのではなく、組み合わせて使ってこそ意味があります。
組み合わせればどんな処理だってRapidMinerで行うことができるでしょう。
今回ご紹介したのはRapidMinerに多々ある機能のほんの一部です。
今後も機能をご紹介するブログを書いていきますので、ぜひご覧ください。
お読みいただきありがとうございました。
↓↓他のページも見ていってください!!↓↓
\/\/\/\/\/\/\/\/\/\/
▼みんなで書いているRapidMiner ブログ
https://www.ksk-anl.com/blog/rapidminer/
▼1日で機械学習の基礎が学べる!無償ハンズオンセミナー随時開催中▼
https://www.ksk-anl.com/event/
▼RapidMinerをもっと知りたい方はこちら▼
https://www.rapidminer.jp/
▼早速使ってみたい!RapidMinerの体験版の無償DL▼
https://www.rapidminer.jp/download/
▼導入を検討中!わかりやすい詳細なQ&A▼
https://www.rapidminer.jp/faq/
\/\/\/\/\/\/\/\/\/\/