在 matlab 中使用贝叶斯分类器时,避免过度拟合和不准确的最佳方法是什么?
我目前正在使用 1000 个样本作为训练数据,其中 750 个是“正常”,250 个是“异常”(一种特定类型)。
有没有人发现其中很大一部分可以训练分类器,或者每个问题都需要特定数量的训练数据。我会假设后者,但我正在努力弄清楚如何提高准确性,我可以使用什么方法。任何例子将不胜感激。
以下是我目前正在使用的示例:
training_data = data;
target_class = Book2(indX,:)
class = classify(test_data,training_data, target_class, 'diaglinear')
confusionmat(target_class,class)
% Display Results of Naive Bayes Classification
input = target_class;
% find the unique elements in the input
uniqueNames=unique(input)';
% use string comparison ignoring the case
occurrences=strcmpi(input(:,ones(1,length(uniqueNames))),uniqueNames(ones(length(input),1),:));
% count the occurences
counts=sum(occurrences,1);
%pretty printing
for i=1:length(counts)
disp([uniqueNames{i} ': ' num2str(counts(i))])
end
% output matching data
dataSample = fulldata(indX, :)