當在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, :)
嗯,一個BC過度擬合?我建議尋找正確的選擇前,BCs的力量是他們對過度配合的抵抗 –
http://metaoptimize.com/qa/questions/7479/overfitting-by-bayesian-methods –
我會給你一個建議當您增加用於訓練的樣本的百分比時,繪製您的驗證錯誤。該函數的最小值應該憑經驗爲您提供一個合理準確的估計值,以便開始擬合噪聲。 –