如何提高以下逻辑回归代码的准确性,该代码使用10倍交叉验证技术测试准确性。我已使用glmfit
和glmval
实现了此代码。期望的精度稍高,并且需要使用最大似然估计器找到参数。
此外,当我在matlab中运行此代码时,我收到以下错误:
警告:X处于病态状态,或者模型过度参数化,并且 有些系数无法识别。你应该谨慎使用 做出预测。在glmfit在245 In LR at 8
function LR( X,y)
y(y==-1)=0;
X=[ones(size(X,1),1) X];
disp(size(X,2));
indices = crossvalind('Kfold',y,10);
for i = 1:10
test = (indices == i); train = ~test;
b = glmfit(X(train,:),y(train),'binomial','logit');
y_hat= glmval(b,X(test,:),'logit');
y_true=y(test,:);
error(i)=mean(abs(y_true-y_hat));
end
accuracy=(1-error)*100;
fprintf('accuracy= %f +- %f\n',mean(accuracy),std(accuracy));
end
请帮助