Cover 'Theorem : 대략 임의의 유한 점 집합 (임의의 레이블이 있음)이 주어지면 높은 확률로이 점들을 더 높은 차원으로 매핑하여 선형으로 분리 할 수있게 할 수 있습니다 [1].
시사점 : 이 정리에 따르면 데이터 세트를 가져 와서이 점을 더 높은 차원에 매핑하면 선형 분류기를 쉽게 찾을 수 있습니다. 그러나 대부분의 분류기는 내적과 같은 유사성을 계산해야하며 이는 분류 알고리즘의 시간 복잡성이 데이터 포인트의 차원에 비례한다는 것을 의미합니다. 따라서 더 높은 차원은 더 큰 시간 복잡성을 의미합니다 (큰 차원 포인트를 저장하기위한 공간 복잡성은 말할 것도 없습니다).
커널 트릭 : 하자 데이터 포인트의 원래의 차원 수와 차원의 공간 매핑이 점지도 수 . 이제 원래 공간에서 입력 와 를 가져 와서 계산 하는 함수 가 있으면 내적을 계산할 수 있습니다 더 높은 차원 공간에서 복잡성 대신 .f를 N ( > > N ) K는 X , Y K ( X , Y ) = ⟨ F ( X ) , F ( Y ) ⟩ O ( N를 )엔에프N(>>n)KxyK(x,y)=⟨f(x),f(y)⟩O(n)O(N)
시사점 : 따라서 분류 알고리즘이 내적에만 의존하고 실제 맵 에 의존하지 않는 경우 커널 트릭을 사용하여 추가 비용없이 고차원 공간에서 알고리즘을 실행할 수 있습니다.f
선형 분리 가능성은 동일한 클래스의 포인트가 다른 클래스의 포인트보다 가까워 질 것을 암시합니까?
아니요, 그러한 보증은 없습니다. 선형 분리 가능성은 실제로 같은 클래스의 점이 더 가까워 졌거나 두 개의 다른 클래스의 점이 더 이상 나왔다는 것을 의미하지는 않습니다.
그렇다면 kNN은 왜 작동할까요?
필요하지 않습니다! 그러나 그렇다면 커널 때문입니다.
그게 무슨 뜻이야?
부울 피처 벡터 고려하십시오 . 차수 2 다항식 커널을 사용하면 특징 벡터 가 벡터 매핑됩니다.x ( xx=(x1,x2)x(x21,2–√x1x2,x22). 부울 특징의 벡터에서 2 차 다항식을 사용하여 "접합"의 특징 벡터를 얻었습니다. 따라서 커널 자체는 뛰어난 기능 맵을 생성합니다. 데이터에 독창적 인 기능이 있고 커널에서 생성 한 기능 맵을 통해 데이터를 활용할 수있는 경우 이점으로, 이러한 기능 맵에서 생성 된 기능은 동일한 클래스의 포인트를 서로 더 가깝게 가져 와서 다른 클래스의 포인트를 밀어 낼 수 있으며, kNN은 커널을 사용하여 혜택을 얻을 수 있음을 의미합니다. 그렇지 않으면 결과는 원래 데이터에서 kNN을 실행 한 결과와 다르지 않습니다.
그렇다면 왜 커널 kNN을 사용합니까?
커널 사용의 계산 복잡도는 일반적인 kNN보다 약간 높으며 데이터가 커널을 사용하여 이익을 얻는다면 어쨌든 사용하지 않겠습니까?
kNN의 커널에서 이점을 얻을 수있는 데이터 클래스를 연구 한 논문이 있습니까?
내가 아는 한
[1] http://en.wikipedia.org/wiki/Linear_separability
[2] http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4038449&tag=1