ループ系オペレータのまとめ
投稿日: 2020年12月17日
OS: Windows 10
バージョン: RapidMiner 9.8
RapidMinerでは、何をループさせたいかによって様々なオペレータが用意されています。
以下を基に、場面に合わせたLoopオペレータをご使用ください。
- Loop: 1,2,3,..と単純に数をループさせたいとき
- Loop Attributes: A列,B列,…と属性をループさせたいとき
- Loop Examples: 1行目,2行目,…と行をループさせたいとき
- Loop Values: a,b,c,…とデータの値をループさせたいとき
- Loop Files: PCのフォルダ内のデータをループさせたいとき
- Loop Repository: リポジトリ内のデータをループさせたいとき
Loop: 1,2,3,..と単純に数をループさせたいとき
1,2,3,..と単純に数をループしたいときは、Loopオペレータを使用します。Loopオペレータでは、number of iterationsパラメータに何回繰り返したいかを設定して、その回数分ループを行います。
number of iterations: 繰り返したい回数
以下の例では、Loopオペレータ内部の処理を5回繰り返します。
このとき、iterationマクロは1,2,3,4,5と増えていきます。
以下はLoopオペレータの内部の処理の例です。iterationマクロを使用するときは、%{}で囲んで%{iteration}と書きます。
実行すると、以下のように「ループ属性」にiterationの数が入りました。
Loop Attributes: A列,B列,…と属性をループさせたいとき
データ内の属性をループさせたいときは、Loop Atributesオペレータを使用します。attribute filter typeで、どの属性をループさせたいかを設定します。
attribute filter type: ループさせたい属性の選択
以下の例では、Golfデータセットの全ての通常属性がループされます。そのため、loop_attributeマクロはOutlook、Temperature、Humidity、Windの4つの属性名に変わります。
以下はLoop Attributesオペレータの内部の処理の例です。マクロを使用するときは、%{}で囲んで%{loop_attribute}と書きます。
結果は、「ループしている属性」にOutlook、Temperature、Humidity、Windのそれぞれが入ります。
Loop Examples: 1行目,2行目,…と行をループさせたいとき
データの行をループさせたいときは、Loop Examplesオペレータを使用します。Loop Examplesオペレータは特に設定する必要はなく、exampleマクロに1,2,3,…データの行数までの数値が順に入ります。
以下の例では、Golfデータセットの行数(14)まで、ループが行われます。
以下はLoop Examplesオペレータの内部の処理の例です。マクロを使用するときは、%{}で囲んで%{example}と書きます。また、処理が上書きされないよう属性名は「ループしている行_%{example}」としておきます。
結果は、「ループしている行_1」には1が、「ループしている行_2」には2が入ります。このようにして、exampleマクロには1から順に最終行までの数値が入ります。
Loop Values: a,b,c,…とデータの値をループさせたいとき
データ内の値をループさせたいときは、Loop Valuesオペレータを使用します。attributeパラメータに、どの属性の値かを設定すると、loop_valueマクロに選択した属性の値が入ります。
attribute: ループさせたい属性を選択
以下の例では、GolfデータセットのOutlook属性の値(sunny,overcast,rain)がループされます。
以下はLoop Valuesオペレータの内部の処理の例です。マクロを使用するときは、%{}で囲んで%{loop_value}と書きます。
結果は、「ループしている値」属性にsunny、overcast、rainの値がそれぞれ入ります。
Loop Files: PCのフォルダ内のデータをループさせたいとき
PCのフォルダ内のデータをループさせたいときは、Loop Filesオペレータを用います。このオペレータは特に、PC内にある複数のファイルをRapidMinerに取り込みたい場合などに使用します。directoryにファイルが含まれているフォルダを選択し、filter type、filter by grobでフォルダ内の取り込むデータにフィルタリングを行います。
directory: 読み込みたいフォルダ
filter type: 取り込むデータのフィルタリング方法
filter type: 取り込むデータのフィルタリング条件
実際に取り組む手順はこちらを参照してください。
Loop Repository: リポジトリ内のデータをループさせたいとき
リポジトリ内のデータをループさせたいときは、Loop Repositoryを使用します。このオペレータは特に、リポジトリ内にある複数のデータをプロセスに取り込みたい場合などに使用します。
repository folderに読み込みたいリポジトリの場所を選択し、entry typeにIO Objectを選択します。
repository folder: 読み込みたいリポジトリの場所
entry type: 読み込みたいデータの型(一般的なExampleSetならIO Objectを選択)
実際に取り組む手順はこちらを参照してください。