μΉ΄ν…Œκ³ λ¦¬ 보관물: stats

stats

연속 및 이진 λ³€μˆ˜κ°€μžˆλŠ” K- 졜근 μ ‘ 이웃 μ„ΈνŠΈκ°€ μžˆμŠ΅λ‹ˆλ‹€ . a반면

μ—΄ a b c(3 속성) μ΄μžˆλŠ” 데이터 μ„ΈνŠΈκ°€ μžˆμŠ΅λ‹ˆλ‹€ . a반면 μˆ«μžμ™€ 연속 bκ³Ό c두 가지 μˆ˜μ€€μ˜ 각 λ²”μ£Όμž…λ‹ˆλ‹€. K-Nearest Neighbors 방법을 μ‚¬μš©ν•˜μ—¬ λΆ„λ₯˜ aν•˜κ³  bμžˆμŠ΅λ‹ˆλ‹€ c. λ”°λΌμ„œ 거리λ₯Ό μΈ‘μ • ν•  수 있으렀면 및λ₯Ό bμΆ”κ°€ b.level1ν•˜κ³  μΆ”κ°€ν•˜μ—¬ 데이터 μ„ΈνŠΈλ₯Ό λ³€ν™˜ν•˜μ‹­μ‹œμ˜€ b.level2. κ΄€μΈ‘μΉ˜ i에 bλ²”μ£Ό 의 첫 번째 μˆ˜μ€€μ΄μžˆλŠ” 경우 b.level1[i]=1및 b.level2[i]=0.

이제 μƒˆ 데이터 μ„ΈνŠΈμ—μ„œ 거리λ₯Ό μΈ‘μ • ν•  수 μžˆμŠ΅λ‹ˆλ‹€. a b.level1 b.level2

이둠적 / μˆ˜ν•™μ  κ΄€μ μ—μ„œ : 이진 데이터와 연속 데이터λ₯Ό λͺ¨λ‘ μ‚¬μš©ν•˜μ—¬ K- 졜근 μ ‘ 이웃 (KNN)을 μˆ˜ν–‰ ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

FNNRμ—μ„œ νŒ¨ν‚€μ§€λ₯Ό μ‚¬μš© ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.knn()



λ‹΅λ³€

λ²”μ£Ό ν˜• λ³€μˆ˜μ™€ 연속 λ³€μˆ˜ (κΈ°λŠ₯)λ₯Ό κ²°ν•©ν•΄λ„λ©λ‹ˆλ‹€.

k-NNκ³Ό 같은 방법에 λŒ€ν•œ 이둠적 κ·Όκ±°λŠ” 그리 λ§Žμ§€ μ•ŠμŠ΅λ‹ˆλ‹€. νœ΄λ¦¬μŠ€ν‹±μ€ 두 지점이 μ„œλ‘œμ— 가깝닀면 (일뢀 거리에 따라) 좜λ ₯ μΈ‘λ©΄μ—μ„œ 곡톡점이 μžˆλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. μ•„λ§ˆ κ·Έλ ‡μŠ΅λ‹ˆλ‹€, μ•„λ§ˆ κ·Έλ ‡μŠ΅λ‹ˆλ‹€. 그리고 그것은 당신이 μ‚¬μš©ν•˜λŠ” 거리에 달렀 μžˆμŠ΅λ‹ˆλ‹€.

κ·€ν•˜μ˜ μ˜ˆμ—μ„œλŠ” 두 점 μ‚¬μ΄μ˜ 거리λ₯Ό μ •μ˜ν•©λ‹ˆλ‹€

(a,b,c)

κ³Ό

(aβ€²,bβ€²,cβ€²)

같은 :

  • μ‚¬μ΄μ˜ 제곱 거리λ₯Ό
    a

    κ³Ό aβ€²

    : (aβˆ’aβ€²)2

  • 경우 +2 μΆ”κ°€
    b

    κ³Ό bβ€²

    κ°™μœΌλ©΄ +0이 λ‹€λ¦…λ‹ˆλ‹€ (각 μΉ΄ν…Œκ³ λ¦¬λ§ˆλ‹€ 1의 차이λ₯Ό κ³„μ‚°ν•˜κΈ° λ•Œλ¬Έμ—)
  • 경우 +2 μΆ”κ°€
    c

    κ³Ό cβ€²

    λ‹€λ₯΄λ©° +0은 κ°™μŠ΅λ‹ˆλ‹€ (동일 함)

μ΄λŠ” 각 κΈ°λŠ₯에 μ•”μ‹œ 적으둜 κ°€μ€‘μΉ˜λ₯Ό λΆ€μ—¬ν•˜λŠ” 것에 ν•΄λ‹Ήν•©λ‹ˆλ‹€.

λ§Œμ•½μ—

a

큰 λΆ„μ‚°μœΌλ‘œ 큰 κ°’ (1000, 2000 λ“±)을 μ·¨ν•˜λ©΄ 이진 ν”Όμ²˜μ˜ κ°€μ€‘μΉ˜λŠ” κ°€μ€‘μΉ˜μ™€ 비ꡐ할 λ•Œ λ¬΄μ‹œν•  수 μžˆμŠ΅λ‹ˆλ‹€

a

. μ‚¬μ΄μ˜ 거리 만

a

κ³Ό

aβ€²

정말 μ€‘μš”ν•©λ‹ˆλ‹€. 그리고 λ‹€λ₯Έ 방법 : if

a

0.001κ³Ό 같은 μž‘μ€ 값을 μ·¨ν•©λ‹ˆλ‹€. 이진 κΈ°λŠ₯ 만 κ³„μ‚°λ©λ‹ˆλ‹€.

각 κΈ°λŠ₯을 ν‘œμ€€ 편차둜 λ‚˜λˆ„λ©΄ 무게λ₯Ό λ‹€μ‹œ μΈ‘μ •ν•˜μ—¬ λ™μž‘μ„ μ •κ·œν™” ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” 연속 λ³€μˆ˜μ™€ 이진 λ³€μˆ˜μ— λͺ¨λ‘ μ μš©λ©λ‹ˆλ‹€. μžμ‹ μ΄ μ„ ν˜Έν•˜λŠ” κ°€μ€‘μΉ˜λ₯Ό 제곡 ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

R ν•¨μˆ˜ kNN ()은 당신을 μœ„ν•΄ κ·Έκ²ƒμ„ν•©λ‹ˆλ‹€ : https://www.rdocumentation.org/packages/DMwR/versions/0.4.1/topics/kNN

첫 번째 μ‹œλ„λ‘œ 기본적으둜 norm = true (μ •κ·œν™”)λ₯Ό μ‚¬μš©ν•˜μ‹­μ‹œμ˜€. μ΄λ ‡κ²Œν•˜λ©΄ 연속 및 λ²”μ£Ό κΈ°λŠ₯을 κ²°ν•© ν•  λ•Œ λ‚˜νƒ€λ‚  μˆ˜μžˆλŠ” λŒ€λΆ€λΆ„μ˜ λ§μ΄λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.


λ‹΅λ³€

κ·Έλ ‡μŠ΅λ‹ˆλ‹€. λ°”μ΄λ„ˆλ¦¬ 및 연속 데이터와 ν•¨κ»˜ KNN을 μ‚¬μš©ν•  수 μžˆμ§€λ§Œ κ·Έλ ‡κ²Œ ν•  λ•Œ κ³ λ €ν•΄μ•Ό ν•  μ€‘μš”ν•œ 사항이 μžˆμŠ΅λ‹ˆλ‹€.

μ•„λž˜ κ·Έλ¦Όκ³Ό 같이 μ‹€μ œ κ²°κ³Ό (0-1 μŠ€μΌ€μΌ, λΉ„κ°€ 쀑 벑터에 λŒ€ν•œ) μ‚¬μ΄μ˜ 뢄산에 λŒ€ν•œ 이진 뢄할에 μ˜ν•΄ 결과에 λ§Žμ€ 정보가 μ œκ³΅λ©λ‹ˆλ‹€.

이 μ˜ˆμ—μ„œ 거리 별 κ°œλ³„ κ΄€μΈ‘μΉ˜μ˜ κ°€μž₯ κ°€κΉŒμš΄ 이웃은 척도 ν™” 된 μ‹€μ œ κ°’ λ³€μˆ˜λ³΄λ‹€ 이진 λ³€μˆ˜μ— μ˜ν•΄ 훨씬 더 λ§Žμ€ 정보λ₯Ό 얻을 수 μžˆμŒμ„ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.

λ˜ν•œ 이것은 μ—¬λŸ¬ 이진 λ³€μˆ˜λ‘œ ν™•μž₯λ©λ‹ˆλ‹€. μ‹€μ œ κ°’ λ³€μˆ˜ 쀑 ν•˜λ‚˜λ₯Ό μ΄μ§„μœΌλ‘œ λ³€κ²½ν•˜λ©΄ μ‹€μ œ 값에 κ°€κΉŒμš΄ 것보닀 κ΄€λ ¨λœ λͺ¨λ“  이진 λ³€μˆ˜λ₯Ό μΌμΉ˜μ‹œμΌœ 거리가 훨씬 더 λ§Žμ€ 정보λ₯Ό 얻을 수 μžˆμŒμ„ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.

μ€‘μš”ν•œ 이진 λ³€μˆ˜ 만 ν¬ν•¨ν•˜κ³  싢을 κ²ƒμž…λ‹ˆλ‹€. μ‹€μ œλ‘œ β€œκ°€μž₯ κ°€κΉŒμš΄ μ‹€μ œ 값을 κ°–λŠ” 이진 λ³€μˆ˜μ˜ ꡬ성 (μžˆλŠ” 경우)κ³Ό μΌμΉ˜ν•˜λŠ” λͺ¨λ“  κ΄€μΈ‘μΉ˜μ— λŒ€ν•΄ 묻고 μžˆμŠ΅λ‹ˆκΉŒ?” 이것은 KNN으둜 ν•΄κ²°ν•  μˆ˜μžˆλŠ” λ§Žμ€ 문제λ₯Ό ν•©λ¦¬μ μœΌλ‘œ κ΅¬μ„±ν•œ 것이며 λ‹€λ₯Έ λ¬Έμ œλŠ” 맀우 μ—΄μ•…ν•œ κ΅¬μ„±μž…λ‹ˆλ‹€.

#code to reproduce plots:
library(scatterplot3d)

scalevector <- function(x){(x-min(x))/(max(x)-min(x))}

x <- scalevector(rnorm(100))
y <- scalevector(rnorm(100))
z <- ifelse(sign(rnorm(100))==-1, 0, 1)
df <- data.frame(cbind(x,y,z))

scatterplot3d(df$x, df$z, df$y, pch=16, highlight.3d=FALSE,
              type="h", angle =235, xlab='', ylab='', zlab='')

x <- scalevector(rnorm(100))
y <- ifelse(sign(rnorm(100))==-1, 0, 1)
z <- ifelse(sign(rnorm(100))==-1, 0, 1)
df <- data.frame(cbind(x,y,z))

scatterplot3d(df$x, df$z, df$y, pch=16, highlight.3d=FALSE,
              type="h", angle =235, xlab='', ylab='', zlab='')

λ‹΅λ³€