我需要计算各种特征之间的互信息,以便使用逻辑回归设计分类模型。我面临以下问题:
我需要将数据分成具有大致相同数量样本的n个bin。我怎样才能在Matlab中实现这一目标?
我是否应对原始数据或规范化数据执行上述离散化?
感谢。
答案 0 :(得分:0)
我想你想要做的是类似于交叉验证,在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
在对数据进行预处理(标准化/标准化)之后,您应该执行此操作。