Inc.BLOGブログ2019.09.05RapidMinerあなたの前処理を早くする!前処理の三種の神器【if編】みなさんこんにちは。KSKアナリティクスの北野です。今日はこれを身につければあなたの前処理は早くなる!第二弾!ということで、皆様に使っていただきたい「前処理の三種の神器」その2をお伝えいたします。これはシリーズものとし、マクロ編、if編(今回)、Loop編のように進めております。それでは、if編を進めて行きましょう!そもそもifって?"if"は英語で「もし~なら...」という意味です。これはデータ分析でも同じく、「もし~なら...の処理をする」と解釈します。「もし~なら」の部分を条件と言い、条件に合うか合わないかで処理を2通りに分けます。「朝起きるのが苦手ですか?」と聞かれたとしましょう。そのとき、あなたが朝に起きるのが苦手だとすると、「はい」と答え目覚ましをセットなどするでしょう。苦手でなければ「いいえ、目覚ましは特に必要ありません」のように答えるのではないでしょうか。このように何か条件を設定し、条件に合うか合わないかで分かれ、その後の処理を変えていきます。データ分析やプログラミングでは必ず行う処理ですので、初めての方は覚えておきましょう!BranchオペレータについてRapidMinerでif文を作成するにはBranchオペレータを用います。Branchオペレータにはcon(condition)とinp(input)の二種類のポートがあります。conポートに入ってきたデータで条件を確かめ、inpポートに入ったデータセットを処理します。Branchオペレータをダブルクリックするとサブプロセスに入ります。条件に合った場合は”Then”側が、条件に合わなかった場合は”Else”側のプロセスが実行されます。サブプロセスのconとinpポートは、親プロセスでBranchオペレータに接続されたままの順でデータが入ってきます。ver9.3で実施しています。データ分析の中でif文を行う場面は多々ありますが、今回は交差検証した結果に応じて処理を変える場面を想定しています。具体的には「パフォーマンスが95%を超えたか」で条件を設定し、データに加える列をそれぞれ変えることにします。Validation、Branchオペレータを配置してください。Model、Performanceオペレータをそれぞれ配置してください。して、Irisデータセットに決定木を用いた交差検証を行います。Branchオペレータのパラメータを変更します。valueを”0.95”に設定してください。して、パフォーマンスが95%を超えたか否かの条件を作成します。条件を作成できれば、その後の処理の設定に入っていきしょう。Attributesを二つ配置してください。expressionsには「”95%以上!”」と入力してください。次に、右側は条件に合わなかった場合ですので、「95%行かなかった...」と表示させる列を作成します。expressionsには「”95%行かなかった...”」と入力してください。Validationに「ブレークポイント(後)」を付けてください。実行した際に交差検証の結果を見ることができます。設定できればプロセスを実行しましょう!実行するとaccuracyが95.33%と、パフォーマンスが95%を超えたことがわかります。一度実行ボタンを押してください。「95%以上!」と入力されているのがわかります。条件で処理が分かれているのがわかりますね。Trainingデータセットを利用してみてください。Trainingデータの交差検証の結果は80.35%であることがわかります。これでは、95%を超えられていません。そのため、結果属性にも「95%行かなかった...」列が作成されています。今回は簡単な例を用いましたが、Branchオペレータはデータを自動で処理したい場合などによく使われます。Subprocessオペレータも非常に便利です。SubprocessはSwitch文と喩えられるでしょう。それでは、またお会いしましょう。