私は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";
}
}
ありがとう。