0

新しいオペレーターを作成するときは、データを受け取るための入力ポートと、データを配信するための出力ポートを作成します。入力ポートごとに、そのデータ型を次のように修正します。

 exampleSetInput.addPrecondition (
     new ExampleSetPrecondition (
         exampleSetInput,
         Ontology.ATTRIBUTE_VALUE));

また、出力ポートのデータ型を次のように定義します。

getTransformer().addPassThroughRule (
    exampleSetInput, exampleSetOutput);

この条件は、入力と同じ出力データ型と形式を生成します。私の質問は、入力とは関係なく、新しい出力形式とデータ型を定義する方法です。たとえば、入力形式には数値データ型と 4 つの属性があり、出力データは文字列型で、新しい 2 つの属性を使用する必要があります。

4

1 に答える 1

0

さて、ラピッドマイナーコミュニティから配信されたドキュメント「Rapidminerの拡張方法」で解決策を見つけました。ポート規則を定義するときに、コンストラクターで次の関数を使用することで構成されます。

getTransformer().addRule(new ExampleSetPassThroughRule(exampleSetInput, exampleSetOutPut,    SetRelation.SUBSET) {
        @Override
        public ExampleSetMetaData modifyExampleSet(ExampleSetMetaData metaData) throws UndefinedParameterError {
            metaData.removeAllAttributes();//This will remove all input attribtes
            metaData.addAttribute(new AttributeMetaData("item", Ontology.STRING));//here the creation of new attribute 

            return metaData;
        }
    });

また、必要に応じて入力属性の名前やタイプを変更できます。

于 2013-02-24T05:23:24.547 に答える