IOObjectCollectionに入ったExampleSetを一つにまとめる方法
投稿日 : 2022年09月20日
OS : MacOS 12.5 Monterey
バージョン : RapidMiner Studio 9.10.11
RapidMiner Studioでの出力であるExampleSetがIOObjectCollectionというものの中にまとめて入っていましたが、これを一つのExampleSetにまとめたい場合はどうすればいいでしょうか。
データをLoop系処理等でExampleSetを作成すると、IOObjectCollection内に複数データが収められ、これによって複数の出力を一つに出力し直す作業が発生する場合があります。
そこで今回は、IOObjectCollectionの中にあるExampleSetを結合する方法について記していきます。
結合方向は縦と横の二つの方向があり、それぞれの操作について一意に行なう方法を解説して行きます。
縦方向に結合する場合
データ同士の縦結合にはAppendを使用します。
IOObjectCollectionから直接Appendを接続することで一括でデータを縦方向に結合することができます。
プロセスとしては、
IOObjectCollectionの入力に対し、Appendを接続します。これで全てのExampleSetを縦方向に結合することができます。
横方向に結合する場合
データ同士の横結合にはJoinを使用します。
横方向の結合を行う際にはLoop系のオペレータを合わせて使用することで一括でデータを横方向に結合することができます。
IOObjectCollectionに対して、その中にあるExampleSetをそれぞれ一つずつ結合の処理を行なって行きます。
手順の流れとしては、
1. IOObjectCollection内のExampleSetを一つずつ取り出す
2. 取り出したデータを順々に結合する
となります。
まずIOObjectCollectionの入力に対して、Loop Collectionを配置します。また、最後の出力に使用するために、RecallをStudioの出力ノードに接続します。
それぞれのオプションの設定は以下の通りになります。
1. Loop Collection
・set iteration macro: チェックを入れる
・macro name: 任意の値を入力(今回はiterationとする)
2. Recall
・name : 任意の値を入力(今回はoutput_dataとする)
次に、Loop Collectionの内部にオペレータを配置します。
この内部に配置されたオペレータは Example Setの数だけ繰り返し実行するものになります。
ここにBranchというオペレータを配置します。このオペレータを使用することで、データを結合する時の、条件を設定することができます。
このBranchのオプションの設定は以下の通りになります。
・condition type: expression
・expression: %{iteration}==1 (%{}の括弧の中はLoop Collectionのmacro nameの値を入力)
特にexpressionの項目によって、iterationが1の場合とそうで無い場合、つまり初回のループとそれ以外のループで別々の処理を行わせることが可能になります。
最後にBranch内部にオペレータを配置します。
Branch内部はプロセス配置を行う場所が二つに分かれており、先程入力したBranchのexpressionオプションによって処理が振り分けられることになります。
左側はexpressionオプションの条件に当てはまる場合の処理、
右側はexpressionオプションの条件に当てはまらない場合の処理になります。
左側にはRememberを配置します。
右側にはRecall、Join、Rememberを配置します。
左側のプロセスのオプションは
Remember
・name: output_data(上記のRecall のnameの値を入力)
右側のプロセスのオプションは
1. Recall
・name: output_data(上記のRecall のnameの値を入力)
2. Join
この部分は結合するデータの内容に応じて設定してください。
3. Remember
・name: output_data(上記のRecall のnameの値を入力)
以上の設定により、IOObjectCollection内に複数あったExampleSetデータを一つに結合させることができます。