안녕,
누구든지 다음 상황에서 데이터 테이블에 거리를 저장하기 위해 핫스팟을 사용하여 거리를 계산하는 방법에 대한 참조가 있습니까?
- 분석-> 예측 모델링-> 가장 가까운 이웃-> "변수"를 "X, Faktor"로-> 확인-> 핫스팟 "근접 이웃 거리 저장"
- 분석-> 스크리닝-> 이상치 탐색-> "변수"를 "Y, 열"로-> 다변량 : K 인접 이웃 이상치-> 확인-> Buton "NN 거리 저장"
내가 묻는 이유 :
- 결과는 두 모듈 모두에서 동일하지 않습니다. (첨부 된 데이터 표 참조 : "Distanz 1-4"는 위의 1에서, "Nächste 1 Distanz_OutlierModule 1-4"는 2에서).
- 이들 중 어느 것도 유클리드 거리를 계산하지 않는 것 같습니다 (변수의 모든 값 / 행에 대해 첫 번째 가장 가까운 이웃 거리가 1이 될 수 없습니다)?) 가장 큰 거리를 계산 한 다음 비율 부분을 기반으로 다른 것을 계산합니다 (거리 1과 1로 0.25). 거리 4로 (변수 값 1에서 가장 멀기 때문에 최대 거리의 4 분의 1은 저장된 NN 거리이고 데이터 테이블의 첫 번째 행에 대한 NN 거리로 1,2,3,4를 예상합니다). 그리고 모델링 모듈에서 값은 어떻게 든 비슷하지만 (비율에 대해) 절대 값과 다릅니다.
나는 다음과 관련된 문서를 보았다. Hastie et al. ( 2009 년 ), Hand et al. ( 2001 년 ) 및 Shmueli et al. ( 2017 년 ). ( K Nearest Neighbors 플랫폼 개요 )이 언급 된 경우 해당 관측치에 대한 예측 변수 값과 다른 각 관측 값에 대한 예측 변수 값 사이의 최소 유클리드 거리를 식별합니다. 그러나 그것은 나에게 다른 결과를 설명하지 않습니다.
정말 고마워! 표준화를 취소하거나 방지 할 수있는 방법이 있습니까?
문서화되어 있지는 않지만 유클리드 거리를 계산하기 전에 K-Nearest Neighbors 플랫폼이 (x_i-m_i) / s_i로 표준화되었다고 생각합니다. 여기서 m_i는 평균이고 s_i는 x_i에 대한 표준 편차입니다.
Clear Globals();
x = [1,2,3,4,5];
s = Stddev(x);
m = Mean(x);
z = (x - m)/s;
n = Number(x);
dist_z = J(n, n, 0);
For(i = 1, i <= n - 1, i++,
For(j = 1, j <= n, j++,
dist_z[i, j] = dist_z[j, i] = Sqrt(Sum((z[i,0]-z[j,0])^2));
)
);
Show(dist_z);
Sirius의 다음 항목은 변수가 Explorer Outliers 플랫폼의 Q90-Q10에 의해 표준화되었다고 말합니다.
https://sirius.na.sas.com/Sirius/GSTS/ShowTrack.aspx?trknum=7612927109
https://sirius.na.sas.com/Sirius/GSTS/ShowTrack.aspx?trknum=7612540893
Clear Globals();
x = [1,2,3,4,5];
n = Number(x);
q90 = Quantile(0.9, x);
q10 = Quantile(0.1, x);
mid = (q90 + q10)/2;
range = q90 - q10;
w = (x - mid)/range;
dist_w = J(n, n, 0);
For(i = 1, i <= n - 1, i++,
For(j = 1, j <= n, j++,
dist_w[i, j] = dist_w[j, i] = Sqrt(Sum((w[i,0]-w[j,0])^2));
)
);
Show(dist_w);