2

13 の属性のデータ セットがあり、一部はカテゴリであり、一部は連続的です (カテゴリに変換できます)。ロジスティック回帰を使用して、行の応答を予測するモデルを作成し、予測の精度、感度、および特異性を見つける必要があります。

  • データセットを分割して結果を取得するために相互検証を使用できますか?
  • これを行う方法に関するコードサンプルはありますか? (私はこれらすべてに慣れていません)
  • mnrfit/mnrval または glmfit/glmval を使用する必要がありますか? 違いは何ですか?また、どのように選択すればよいですか?

ありがとう!

4

1 に答える 1

3

モデルが目に見えないデータをどれだけうまく予測できるかを判断したい場合は、交差検証を使用できます。Matlab では、glmfit を使用してロジスティック回帰モデルを適合させ、glmval を使用してそれをテストできます。

これを行う方法を示す Matlab コードのサンプルを次に示します。ここで、X は特徴行列、Labels は各ケースのクラス ラベル、num_shuffles は交差検証の繰り返し回数、num_folds は折り畳み回数です。

for j = 1:num_shuffles
    indices = crossvalind('Kfold',Labels,num_folds);
    for i = 1:num_folds
        test = (indices == i); train = ~test;
        [b,dev,stats] = glmfit(X(train,:),Labels(train),'binomial','logit'); % Logistic regression
        Fit(j,i) = glmval(b,X(test,:),'logit')';
    end
end

フィットは、各テスト フォールドのフィットされたロジスティック回帰推定値です。これをしきい値処理すると、各テスト ケースの予測クラスの推定値が得られます。次に、予測されたクラス ラベルを実際のクラス ラベルと比較することによって、パフォーマンス測定値が計算されます。すべてのフォールドと繰り返しにわたってパフォーマンス測定値を平均すると、目に見えないデータに対するモデル パフォーマンスの推定値が得られます。

  • 最初は @Stats.SE で BGreene によって回答されました。
于 2013-05-08T12:23:18.517 に答える