카테고리 없음

[0507/KNN]

standingR 2024. 5. 7. 09:51

 

1교시 수업 내용 : KNN복습

 

 

- 데이터 하나는 벡터이다, 그 벡터간의 거리를 계산한다(Vector = N차원)

- Norm : L1 멘하턴 distance

              L2 유클리드 distance

 

 

- 가중치 

 

 

가장 중요한것 KNN 

 

 

- 내가 k값을 조정했더니 overfit 이냐 underfit이냐를 꼭 구분할줄 알아야함

- UF : Tran 80, Test 78 : 다른 모델이나 다른 수치들에 비해서 떨어지는 구나 => K 값을 줄여야 겠다.

- OF : 

=> 두개를 이해하려면 bais

적당한 F를 잘 찾자! 

 

SVM(support Vector Machine) : 참고용, 잘 쓰이지는않는다! 

- 초평면을 찾아서 이를 이용하여 분류 및 회귀를 수행하려고 한다 -> 선형 모델

- 내가 n차원에 있다면 한단계 낮은 N-1 차원

- 2차 -> 1차 

- 3차 -> 2차 

- Margin 적당히 떨어져 있는 버퍼(비무장지대)를 만들어서 떨어져놓는다! 

- TIP : 3.8t선을 알고리즘 화했다고 생각

 

- 최대값에 대한 문제를 역수를 곱해서 최솟값을 만들어서 진행

- 기존에 있던 loss fuction + 제약조건 

- F의 학습에 대한 방향들을 생각해주는것이다.

- 빨간색, 초록색 점들처럼 튀는 에러들을 어떻게 할 것인가?

- c 시그마 i 

- c = 에러반영, ei =  튀는 에러 => 없애면서, 죽이면서 가겠다. 

 

- c 값을 작게, 에러가 커지는것 까지 예상 => U.F

- SVM 을 수정하기 위해서 COST FUNTION에 C값을 포함 불포함

- C를 중심으로 bias가 큰쪽으로 갈꺼냐, 작은쪽으로 갈꺼냐

- 기존에 있는 Loss fuction에 대해서, 주어진 대로 하는것이 아니라, 내가 변수C를 통해서 컨트롤 하는게 가장 중요하다.

 

 

- SVM 

- 기본 Hyper plane

- F 에서 : C

 

이렇게 안나누어 지는 경우는? 

 

- 행렬의 곱을 통해서 3차원으로 확대 

- 커널 변환 = 차원을 변환 시키는 것 

- 대표적인 것  RBF 

- 스무스하게 올릴꺼냐, 아니면 경사가 급하게 올릴꺼냐 

-가장 중요 + 차원, kernel  

 

point

- 기존 규약식에서, 내가 뭘 더해주는지에 따라서 규약을 정한다.

 

 

요즘은 데이터를 주고, 코드로 풀게 하는 경우가 많다!, 실질적으로 너가 할수 있는지를 체크