2017-06-17 9 views
1

キャレットサマリー関数にパラメータを渡すにはどうすればよいですか?例えばキャレットサマリー関数にパラメータを渡す方法

、キャレットのtwoClassSummary機能は、次のシグネチャがあります twoClassSummary(データ、LEV = NULL、モデル= NULL)

をパラメータLEVは、私が興味因子レベルをspecificies 今。ファクターレベル「偽」の要約に興味があることをキャレットに伝えたい。何かのように

trainControl(summary=twoClassSummary(lev="false")) 

は動作しません。どのようにしてサマリー関数にパラメータを渡すことができますか?ありがとう!

+0

問題を説明するより具体的にお願いいたします。なぜそれは機能しませんか?エラーメッセージとは何ですか?あなたはこれを解決しようとしましたか? – joha

答えて

1

train(...)の追加引数がtwoClassSummary()に渡されないため、現在のところ単純な方法でこれを行うことはできません。あなたはそれを動作させるためにトリックを使用することができ、あなたのアイデアはかなり近いです。キャレットの値をサマリー関数に渡すカスタム関数を作成しますが、その際には機能します。

trainControl(
    summaryFunction = function(...) empTwoClassSummary(..., lev = c("your_other_class","false")) 
次の例のように、カスタム集計関数に追加のパラメータを渡すために同じことを行うことができます

trainControl(
    summaryFunction = function(...) customTwoClassSummary(..., weights = c(0.1, 0.2), orgData = my_data) 

質問に関係のない:あなたの例では、レベルは、あなたがしたいことを確認してください)目標レベルはtwoClassSummary(以降、levにおける第2のベクトル要素であることがこれらの行では、デフォルトで、これを前提としています

lvls <- levels(data$obs) 
data$y = as.numeric(data$obs == lev[2]) 
関連する問題