COMPANY

PAGE TOP

BLOG

あなたの前処理を早くする!前処理の三種の神器【マクロ編】

みなさんこんにちは。
KSKアナリティクスの北野です。

皆さん分析は上手く進められていますか?
詰まったりしていませんか?

今日はこれを身につければあなたの前処理は早くなる!
ということで、皆様に使っていただきたい前処理の三種の神器をお伝えいたします。

なお、これはシリーズものとし、マクロ編、if編Loop編のように進めたいと思います。

それでは、早速マクロ編に行きましょう!

 

マクロを使うとき

データ分析をしている際に、例えばデータの平均値を取り出し、その値を基に操作をしたいときはございませんか。

このような操作をRapidMinerで行うにはマクロを用いるのが便利です!

「マクロ」と言うと聞き慣れないかもしれませんが、変数と言うとどうでしょう。
プログラミングをしたことがある方なら、ピンと来るのではないでしょうか。

ここで簡単にマクロについてご説明いたしますと、マクロとはだと思ってください。


今、「マクロ」という箱に「3」を入れました。

一度箱に入れてしまうと、いつでも箱の中の「3」を取り出すことができます。
また、箱自体どこでも移動可能ですので、どんな時、どんな場所でも「3」を使うことができます。

単純な操作に思うかもしれませんが、これが意外とデータ分析の中で使うのです。

それでは、上記の操作をRapidMinerで実際に行ってみましょう!

1.プロセスの配置

プロセスにデータとオペレータを配置します。

リポジトリのSamplesフォルダのdataよりGolfとGolf-Testsetを取り出します。


次に、Extract MacroとFilter Examplesオペレータを検索し、プロセスに加えます。

そして、GolfにExtract Macroオペレータ、Golf-TestsetにFilter Examplesオペレータをそれぞれ接続し、
Filter Examplesのexaポートとresポートを接続します。

2.パラメータの設定

次に、パラメータを設定していきます。

上2つのオペレータから見ていきます。

ここの操作では、「気温の平均値」というマクロを作り、そこにGolfデータセットのTemperatureの平均値を入れます。

GolfデータセットのTemperatureの平均値は73.571です。


具体的には、Extract Macroオペレータを以下のように設定します。

マクロ名を「気温の平均値」に、macro typeを”statistics”にして統計量を取るようにします。
そしてStatisticsを”average”にし、attribute nameをTemperatureに設定します。

こうすることで、GolfデータセットのTemperatureの平均値を「気温の平均値」というマクロ名に入れます。

 

次に、下二つのオペレータについて見ていきます。

Golf-TestsetのTemperatureがGolfデータセットのTemperature属性の平均値以上の値のみを取り出します。

Filter Examplesのパラメータより「フィルタを追加」をクリックします。

左のボックスを"Temperature"、真ん中を"≧"、右を"%{気温の平均値}"と入力してください。

ここで、"%{気温の平均値}"というのが気になるかと思います。

これは、RapidMiner特有の文法で、”%{マクロ名}”と入力するとマクロが中の値に置き換わります。

つまり、"%{気温の平均値}"には73.571が入っているのと同様の操作になります。

プロセスを実行します。

結果を見ると、Golf-TestsetのTemperatureがGolfの平均値より高いデータのみ取り出すことができました!

今回は簡単な例を用いましたが、これを応用すると複雑な処理も書けるようになります!

また、今回はマクロの中でもExtract Macroを用いましたが、
これ以外にもSet MacroオペレータやGenerate Macroオペレータなどがあります。

これらの詳しい使い方は、各オペレータのチュートリアルで確認できますので、そちらもご覧くださいませ。

 

補足:マクロの値の確認

せっかくマクロを設定しても、デフォルトの状態ではマクロの値を確認することができません。

そのため、デザイン画面を少し弄ります。

タブにある「ビュー」より「パネル表示」に進んでください。
パネルの中の、「マクロ」パネルにチェックを入れてください。

こうすると、左下にマクロが表示されます。

今回の例だと、「気温の平均値」にTemperatureの平均値が入っているのがわかります。

 

今回マクロの簡単な例をご説明いたしました。

しかし、マクロは単体で使うものではありません。

マクロは、他のオペレータと組み合わせてこそ、その真価を発揮します!

ここではその活用方法のすべてをご紹介することはできませんが、マクロをマスターすれば前処理が楽になることは間違いありません。

ぜひ、マクロをマスターして、分析をお進めくださいませ。

ここまで読んで頂きありがとうございます。
それではまた次回お会いしましょう。

\/\/\/\/\/\/\/\/\/\/
▼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/
\/\/\/\/\/\/\/\/\/\/

$$ \begin{aligned} \newcommand\argmin{\mathop{\rm arg~min}\limits} \boldsymbol{\beta}_{\text{ridge}} & = \argmin_{\boldsymbol{\beta} \in \mathcal{R^p}} \biggl[ ||\boldsymbol{y}-\boldsymbol{X\beta}||^2 + \lambda ||\boldsymbol{\beta}||^2 \biggr] \\ & = (\boldsymbol{X}^T\boldsymbol{X} + \lambda\boldsymbol{I_{p+1}})^{-1}\boldsymbol{X}^T\boldsymbol{y} \end{aligned} $$
PAGE TOP