나는 분류 할 데이터를 가지고 있습니다. KNN 알 고를 사용하면 정확도가 90 %이지만 SVM을 사용하면 70 % 이상을 얻을 수 있습니다. SVM은 KNN보다 좋지 않습니다. 나는 이것이 어리석은 질문 일지 모르지만, SVN의 매개 변수는 KNN과 거의 유사한 결과를 줄 것입니다. matlab에 libsvm 패키지를 사용 중입니다. R2008지원 벡터 머신 대 K 가까운 이웃
답변
kNN과 SVM은 학습 방법이 다릅니다. 각 접근 방식은 기본 데이터에 대해 다른 모델을 의미합니다. KNN 비 파라 메트릭 방식으로 데이터의 기본 분포 (parsen 윈도우 추정기 조 근사치) 대략 시도하면서 SVM은 가정
는, 데이터 포인트 (매우 제한적인 가정) 오토넷 하이퍼 평면에 존재한다.
어떤 알고리즘과 구성이 가장 잘 사용되는지 더 잘 결정하려면 시나리오의 특성을 살펴 봐야합니다.
정말 사용하는 데이터 집합에 따라 다릅니다. 이 이미지의 첫 번째 줄 (http://scikit-learn.org/stable/_images/plot_classifier_comparison_1.png)과 같은 것이 있으면 kNN이 정말 잘 작동하고 Linear SVM이 정말 나쁘게 작동합니다.
SVM의 성능을 향상 시키려면 그림의 커널 기반 SVM (rbf 커널 사용)을 사용할 수 있습니다.
당신이 scikit이 배울 파이썬 당신은 코드 비트를 재생할 수 있습니다 사용하는 경우 여기에 커널 SVM을 사용하는 방법을 볼 수 http://scikit-learn.org/stable/modules/svm.html
KNN은 기본적으로 "당신이 좌표 x 가까이 있다면, 그 분류를 말한다 x에서 관측 된 결과와 유사 할 것이다. " SVM에서 가까운 아날로그는 "작은"대역폭 매개 변수를 가진 고차원 커널을 사용할 것입니다. SVM이 더 많이 오버플로 할 수 있기 때문입니다. 즉, SVM은 "x 좌표에 가깝다면 분류는 x에서 관찰 된 것과 유사합니다."에 더 가깝습니다.
가우스 커널로 시작하고 다른 매개 변수에 대한 결과를 확인하는 것이 좋습니다. 내 자신의 경험 (물론 특정 유형의 데이터 세트에 중점을 두어 마일리지가 다를 수 있음)에서 튜닝 된 SVM이 튜닝 된 kNN보다 성능이 우수합니다.
질문 :
1) kNN에서 k를 어떻게 선택합니까?
2) SVM에 사용 된 매개 변수는 무엇입니까?
3) 샘플 내 또는 샘플 밖의 정확도를 측정하고 있습니까?
- 1. 지원 벡터 머신/K- 가장 가까운 이웃 코드 샘플
- 2. K 가장 가까운 이웃
- 3. K- 가장 가까운 이웃
- 4. k- 가장 가까운 이웃 알고리즘
- 5. K- 가장 가까운 파이썬에서 이웃
- 6. k 가장 가까운 이웃 알고리즘의 k 값
- 7. 지원 벡터 머신 하나 대 하나의 훈련
- 8. 지원 벡터 머신 예
- 9. 지원 벡터 머신 일러스트레이션
- 10. 지원 벡터 머신 구현 - 효율적으로 그램 - 행렬 계산 K
- 11. 3 칸에서 가장 가까운 이웃 쿼리 k
- 12. K- 가장 가까운 이웃 C/C++ 구현
- 13. K 가장 가까운 이웃 분류 자
- 14. K 가장 가까운 이웃 의사 코드?
- 15. K- 가까운 이웃 분류 자 정확도
- 16. Sklearn 반경에서 가장 가까운 이웃 K - 타원
- 17. K 가장 가까운 이웃 알고리즘 의심
- 18. R 및 WEKA에서 지원 벡터 머신
- 19. "가장 가까운 이웃"MATLAB
- 20. 가장 가까운 이웃 알고리즘
- 21. openmp와 세그먼테이션 결함을 사용하는 병렬 K 가장 가까운 이웃
- 22. 조건을 만족하는 가장 가까운 k 이웃 노드 (파이썬)
- 23. K- 가장 가까운 이웃 및 MySql 지리적 색인
- 24. k- 가장 가까운 이웃 각 클래스의 개체 수가 크게 다릅니다.
- 25. 아파치 스파크를 사용하여 Scikit-learn KNN (K 가까운 이웃) 병렬화
- 26. 가장 가까운 이웃 시간 복잡도
- 27. D3에서 가장 가까운 이웃 검색
- 28. 서포트 벡터 머신 기하학적 직관
- 29. 가장 가까운 가장 가까운 이웃 검색
- 30. 주어진 매트릭스의 k- 이웃 N
이 질문은 기계 학습에 관한 것이므로 http://stats.stackexchange.com/ – Shai
에 더 적합 할 것이므로이 주제는 오프 - 토픽 인 것으로 보이므로 기계 학습은 코딩의 일부가 아닙니다. 이것은 개방형 플랫폼이며 누구나 코딩과 관련이 있고 어떤 사람들이 브레인 스토밍을 요구할 때 어떤 질문이라도 자유롭게 할 수 있습니다. 그러므로 유용하지 않다면 다른 사람들이 참여할 수 있도록이 토론에서 멀리 떨어져있을 수 있습니다. –
여기에 속하지 않는다고 주장하지는 않습니다. http://stats.stackexchange.com과 같은보다 헌신적인 포럼에서 더 많은 정보를 얻은 청중과 더 나은 답변을 찾을 수있을 것이라고 생각합니다. – Shai