3

私はPMMLについて少し学び始めたばかりで、TreeModelは私が達成しようとしているものにほぼ合っていると思いますが、ドキュメントを読んでも解決できなかった質問があります:

TreeModel に複数の値を返すようにすることは可能ですか? TreeModels の例をいくつか見つけましたが、それらはすべて単一の「予測」フィールドを宣言するだけであり、必要なのは、ノードの述語が TRUE に評価された場合、モデルが複数の値を返すことです。それは可能ですか?もしそうなら、それをどのように実装しますか?

編集

私が達成したいことの例を追加しました:


TreeModelのドキュメントのScoring Procedureセクションに、 「 golfing」という名前の TreeModel の例があります。その例で、私が間違っている場合は修正してください。モデルが評価されると、どの値がフィールド(予測)「whatIdo」に割り当てられるかを示す論理構造は、次のように表現できます。

if(outlook=="sunny") {
    whatIdo="will play";
    if(temperature<90 AND temperature>50){
        whatIdo="will play";
        if(humidity<80){
            whatIdo="will play";
        }
        else if(humidity>=80){
            whatIdo="no play";
        }
    }
    else if(temperature>=90 OR temperature<=50){
        whatIdo="no play";
    }
    
}
else if(outlook=="overcast" OR outlook=="rain"){
    whatIdo="may play";
    if(temperature > 60 AND temperature < 100 AND outlook="overcast" AND humidity <70 AND windy="false"){
        whatIdo="may play";
    }
    else if(outlook=="rain" AND humidity<70 ){
        whatIdo="no play";
    }
}

私が知る必要があるのは、whatIdoフィールドとは別に、「 whatElseIdo 」という名前の追加フィールドなど、他の値を返すことができるかどうかです。たとえば、「ゴルフ」モデルに基づいて、次の条件式のように追加のフィールドを返すPMML モデルを作成することは可能でしょうか。

if(outlook=="sunny") {
    whatIdo="will play";
    whatElseIdo="will have a picnic";
    if(temperature<90 AND temperature>50){
        whatIdo="will play";
        whatElseIdo="will have a picnic";
        if(humidity<80){
            whatIdo="will play";
            whatElseIdo="will have a picnic";
        }
        else if(humidity>=80){
            whatIdo="no play";
            whatElseIdo="no have a picnic";
        }
    }
    else if(temperature>=90 OR temperature<=50){
        whatIdo="no play";
        whatElseIdo="no have a picnic";
    }

}
else if(outlook=="overcast" OR outlook=="rain"){
    whatIdo="may play";
    whatElseIdo="may have a picnic";
    if(temperature > 60 AND temperature < 100 AND outlook="overcast" AND humidity <70 AND windy="false"){
        whatIdo="may play";
        whatElseIdo="may have a picnic";
    }
    else if(outlook=="rain" AND humidity<70 ){
        whatIdo="no play";
        whatElseIdo="no have a picnic";
    }
}

ありがとう。

4

1 に答える 1