>

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


  • 답변 # 1

    predictOneVsAll에서 시그 모이 드 기능을 사용할 필요가 없습니다. 비용을 계산할 때만 필요합니다. 올바른 코드는

    [m, p] = max((X * all_theta'), [], 2);
    
    

    OneVsAll에서 루프는 다음과 같아야합니다

    for c = 1:num_labels
    all_theta(c,:) = fmincg (@(t)(lrCostFunction(t, X, (y == c), lambda)), initial_theta, options);
    endfor
    
    

    앤드류의ML 코스 토론에서 이러한 질문을하는 것이 좋습니다. 코드와 문제에 더 익숙 할 것입니다.

  • 이전 swift - 셀 크기가 collectionview 크기와 같지 않습니다
  • 다음 c# - SubjectOnError 발생