Inc.BLOGブログ2019.09.06RapidMinerあなたの前処理を早くする!前処理の三種の神器【Loop編】みなさんこんにちは。KSKアナリティクスの北野です。今日はこれを身につければあなたの前処理は早くなる!第三弾!ということで、皆様に使っていただきたい「前処理の三種の神器」その3をお伝えいたします。これはシリーズものとし、マクロ編、if編、Loop編のように進めております。今回はシリーズ最後のLoop編です!シリーズも大詰めとなり、前処理が格段に早くなるときも近づいています。最後のLoopも習得し、前処理を早く終わらせてしまいましょう!Loopとは?Loopは繰り返しのことを指し、同じ処理を何度も行いたいときに使われます。プログラミングに親しみがある方なら、for文と言ったほうがわかりやすいでしょうか。前処理では、例えば複数の属性について同じ処理を行いたいときや、フォルダに入っているデータを読み込みたい時などに使われます。ver9.3で実施しています今回の例では、複数の属性を同じ値で割りたい場面を想定しています。具体的には、Irisデータセットの中の数値を全て10で割る操作を行います。Irisデータセットの中の属性を全て10で割りたい場合、実はLoopを使わなくとも同じ結果を得ることは可能です。Attributesを何度も使う方法です。実際に少し試してみましょう。Attributesを設置します。Listをクリックし各ボックスに以下の式を入力します。a4/10この状態でプロセスを実行すると、確かに全ての属性を10で割ることができています。今は4属性のため一つ一つ式を設定することができましたが、100属性、1000属性あればどうでしょうか。不可能ではないですが非常に手間のかかる作業です。同じ作業を繰り返すなら、当然自動化したいと思います。Attributesオペレータです。Attributesオペレータを配置してください。Attributesオペレータを配置します。resultsにチェックを入れます。して、繰り返すごとに結果を更新するようにします。macroにある”loop_attribute”をコピーしておいてください。Attributesで用います。Listをクリックすると、ダイアログが開きます。それぞれのボックスに以下を入力してください。Attributesでコピーした”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などの中の値に変わります。Attributesにブレークポイントを挿入し、マクロパネルを表示させてください。(マクロパネルについても詳しくはマクロ編をご覧ください。)順番にマクロの値が変わっていく様子を見ることができます。プロセスを実行します。結果を見ると、Irisデータセットの数値属性を全て10で割ることができました!ループで行っていることは単なる繰り返しですので、同様の処理を手作業で行うことも可能です。膨大な量のデータを扱う場合、一つ一つを手で行う訳にはいきません。面倒なことはRapidMinerにしてもらえばいいのです。まとめマクロ編、if編、Loop編と前処理で大変便利なツールをご紹介しました。これらは単体で使うのではなく、組み合わせて使ってこそ意味があります。組み合わせればどんな処理だってRapidMinerで行うことができるでしょう。今回ご紹介したのはRapidMinerに多々ある機能のほんの一部です。今後も機能をご紹介するブログを書いていきますので、ぜひご覧ください。お読みいただきありがとうございました。