【问题标题】:Implementing Logistic Regression in MATLAB在 MATLAB 中实现逻辑回归
【发布时间】:2013-05-02 05:21:56
【问题描述】:

我有一个包含 13 个属性的数据集,其中一些是分类的,一些是连续的(可以转换为分类的)。我需要使用逻辑回归来创建一个模型来预测一行的响应并找到预测的准确性、敏感性和特异性。

  • 我可以/应该使用交叉验证来划分我的数据集并获得结果吗?
  • 是否有任何代码示例说明如何执行此操作? (我对这一切都不熟悉)
  • 我应该使用 mnrfit/mnrval 还是 glmfit/glmval?有什么区别,我该如何选择?

谢谢!

【问题讨论】:

  • 1 和 3 最好在 stats.SE 上询问。

标签: matlab statistics regression


【解决方案1】:

如果您想确定模型预测未知数据的能力,您可以使用交叉验证。在 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

Fit 然后是每个测试折叠的拟合逻辑回归估计。对此进行阈值化将产生每个测试用例的预测类别的估计值。然后通过将预测的类标签与实际类标签进行比较来计算性能度量。对所有折叠和重复的性能度量进行平均,可以估计模型在未见数据上的性能。

  • 最初由 BGreene 在 @Stats.SE 上回答。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    • 2018-04-25
    • 2014-02-19
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    相关资源
    最近更新 更多