【问题标题】:Calculating Mutual Information between features in Matlab在 Matlab 中计算特征之间的互信息
【发布时间】:2016-05-28 05:47:47
【问题描述】:

我需要计算各种特征之间的互信息,以便使用逻辑回归设计分类模型。我面临以下问题:

  1. 我需要将我的数据分成 n 个具有大致相等数量的样本的 bin。如何在 Matlab 中实现这一点?

  2. 我应该对原始数据还是标准化数据执行上述离散化?

谢谢。

【问题讨论】:

    标签: matlab machine-learning logistic-regression binning


    【解决方案1】:

    我猜你想做的类似于交叉验证,在Matlab中你可以使用函数crossvalind来分割你的数据集。

    我添加了页面上显示的示例,用于将您的数据分成 10 个箱(称为 10 折交叉验证)。

    load fisheriris 
    indices = crossvalind('Kfold',species,10);
    cp = classperf(species);
    for i = 1:10
        test = (indices == i); train = ~test;
        class = classify(meas(test,:),meas(train,:),species(train,:));
        classperf(cp,class,test)
    end
    cp.ErrorRate
    
    ans =
    
        0.0200
    

    您应该在对数据进行预处理(标准化/标准化)之后执行此操作。

    【讨论】:

    • 在应用交叉验证之前是否需要对特定特征(列)中的数据进行排序?我想要 n 个密度相等的箱,每个箱中的样本大致相等。我做了规范化->排序->将向量分成 10 个 bin,但是一个特征的值没有被平均分成 bin。
    • 我宁愿随机化样本的顺序而不是对其进行排序。是的,每个垃圾箱的大小都差不多。
    猜你喜欢
    • 1970-01-01
    • 2015-10-30
    • 2017-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多