대다수의 점을 지나치게하기를 원하기 때문에, 말하지 않더라도 라인 피팅 문제와 비슷하게 들립니다. Theil-Sen 추정기 (for example this one on fex)를 보았습니다. 선형 회귀 분석은 이상 치의 약 30 %까지 무시합니다. 당신은 단순히 극값을 통해 라인을 원하는 경우에
는이 같은 것을 할 수 있습니다 당신은 어느 솔루션은 자동으로 자동으로 포인트를 맞는 알 수 있습니다로, 그러나
% Setup data
e = [161 162 193 195 155 40 106 102 125 155 189 192 186 188 185 186 147 148 180 183];
f = [138 92 92 115 258 124 218 114 125 232 431 252 539 463 643 571 582 726 726 676];
% Create scatterplot
figure(1);
scatter(f, e, 5, 'red');
axis ij;
% Fit extrema
[min_e, min_idx_e] = min(e);
[max_e, max_idx_e] = max(e);
[min_f, min_idx_f] = min(f);
[max_f, max_idx_f] = max(f);
% Determine largest range and draw line accordingly
if (max_e-min_e)>(max_f-min_f)
line(f([min_idx_e, max_idx_e]), e([min_idx_e, max_idx_e]), 'color', 'blue')
text(f(max_idx_e), e(max_idx_e), ' Extrema')
else
line(f([min_idx_f, max_idx_f]), e([min_idx_f, max_idx_f]), 'color', 'blue')
text(f(max_idx_f), e(max_idx_f), ' Extrema')
end
% Fit using Theil-Sen estimator
[m, e0] = Theil_Sen_Regress(f', e');
line([min_f, max_f], m*[min_f, max_f]+e0, 'color', 'black')
text(max_f, m*max_f+e0, ' Theil-Sen')
을, 너무 많은 아웃 라이어가 간단하기 때문에, 미리 필터링하지 않는 한 그러므로 Shai와 McMa가 제안한 RANSAC 알고리즘을 사용하는 것이 좋습니다.
참고 : 한정된 정밀도를 다루기 때문에 어떤 공차를 선언하지 않는 한 2 점이 넘지 않을 가능성이 가장 큽니다 –
RANSAC 또는 Hough 변형을 보았습니까? – Shai
적합 문제가 아닌 이유가 있습니까? 당신은 라인이 대부분의 포인트를 통과하기를 원한다고 말합니다. 나에게 맞는 문제 같아 ...? – kkuilla