Я пытаюсь решить проблему с 3 функциями и 6 классами (метка). Набор обучающих данных состоит из 700 строк * 3 столбца. Значения характеристик постоянны от 0 до 100. Я использую метод «все против всех», но я не знаю, почему точность прогноза такая маленькая, всего 24%. Может кто-нибудь сказать мне, пожалуйста? Спасибо!
Вот как я делаю прогноз:
function p = predictOneVsAll(all_theta, X)
m = size(X, 1);
num_labels = size(all_theta, 1);
% You need to return the following variables correctly
p = zeros(size(X, 1), 1);
% Add ones to the X data matrix
X = [ones(m, 1) X];
[m, p] = max(sigmoid(X * all_theta'), [], 2);
end
И Один-Все-все
% You need to return the following variables correctly
all_theta = zeros(num_labels, n + 1);
% Add ones to the X data matrix
X = [ones(m, 1) X];
initial_theta = zeros(n+1, 1);
options = optimset('GradObj', 'on', 'MaxIter', 20);
for c = 1:num_labels,
[theta] = ...
fmincg (@(t)(lrCostFunction(t, X, (y == c), lambda)), ...
initial_theta, options);
all_theta(c,:) = theta';
end