이 영역을 누르면 첫 페이지로 이동
천천히 꾸준히 조용히 블로그의 첫 페이지로 이동

천천히 꾸준히 조용히

페이지 맨 위로 올라가기

천천히 꾸준히 조용히

천천히 꾸준히 조용히.. i3months 블로그

[ML] Nearest Neighbor Method

  • 2025.10.18 01:30
  • Computer Science/Machine Learning
반응형

 

 

 

데이터의 유사도로 Classification을 수행한다. 그냥 말 그대로 거리를 기준으로 분류하는 알고리즘.

 

 

 

일단 데이터를 좌표평면에 다 찍어두면 뭔가 Cluster를 이루는걸 확인할 수 있다. 

비슷한것들끼리 하나로 묶어서 분류한다.

 

일단 거리를 정의해야 한다.

 

Manhattan Distance 

백준 풀면 맨날 나오는 그 거리 계산법이다. 각 변수에서 절댓값 차이 합을 의미함.

수식은 latex 쓰면 참 좋은데 너무 귀찮다;; 이미지로 첨부.

 

 

Minkowski Distance 에서 k=1

 

 

Euclidian Distance

고등수학에서 점과 점 사이의 거리를 구할 때 사용하는 공식이다.

 

Minkowski Distance 에서 k=2

 

 

Manhalanobis Distance

유킬리드 거리는 모든 방향으로 같은 Scale을 가정하니 데이터가 원형으로 퍼져 있을 때만 제대로 작동한다.

 

 

데이터의 분포를 고려한 거리로, 물리적 거리만 고려하지 않고 분포와 방향성을 고려할 때 얼마나 이상한 위치에 있는지를 측정.

분산과 연관된다. 

 

 

Distance Metric

두 점이 주어졌을 때 이 점들이 얼마나 다른가? 얼마나 멀리 떨어져있는가? 를 수치로 표현하는 개념이다.

나이나 시험점수같은건 수치 값이니까 크고 작음을 비교할 수 있다.

영화 평점 기술 능숙함 수준은 순서만 있고 간격은 일정하지 않다

VARCHAR로 입력하는 설명은 순서가 없다.

 

그러니, 변수의 타입에 맞춰서 거리 계산 방식을 다르게 설정해야 한다.

 

수치형은 유클리드 거리 써도 된다.

순서가 있는 타입에서는 정규화가 필요하다.

Nominal은 순서가 전혀 없으니까 같으면 0 다르면 1로 처리하자.

 

 

 

거리를 계산할 때 변수마다 단위가 다르다.

이건 Mahalanobis Distance에서 다룬 얘기랑은 좀 다른데.. 

 

 

 

 

 

겉보기에는 A랑 X가 더 가까워보이지만 정규화되지 않아서 그렇다. 사실 X와 B가 더 멀다.

 

그러니 Normalization이 필요하다. 

변수의 스케일을 같게 만들어 거리 계산 시 공평하게 반영해야 한다. 

 

Z-Normalization / Min-Max Normalization 등 여러 정규화 기법을 사용함.

 

 

K-NN

데이터 준비 및 클래스 라벨링 -> input에 대해서 모든 test data간 거리 계산 -> 가장 가까운 k개의 이웃 선택 -> 클래스 라벨링

 

k가 너무 크면 데이터에 대한 민감도가 떨어진다.

k가 너무 작으면 overfitting 가능성이 높다.

 

 

 

 

 

반응형
저작자표시 (새창열림)

'Computer Science > Machine Learning' 카테고리의 다른 글

[ML] Ensemble Method  (0) 2025.12.05
[ML] Decision Tree  (0) 2025.10.18
[ML] Logistic Regression  (0) 2025.10.17
[ML] Regression  (0) 2025.10.17
[ML] Bayesian Classifier  (0) 2025.09.22

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [ML] Ensemble Method

    [ML] Ensemble Method

    2025.12.05
  • [ML] Decision Tree

    [ML] Decision Tree

    2025.10.18
  • [ML] Logistic Regression

    [ML] Logistic Regression

    2025.10.17
  • [ML] Regression

    [ML] Regression

    2025.10.17
다른 글 더 둘러보기

정보

천천히 꾸준히 조용히 블로그의 첫 페이지로 이동

천천히 꾸준히 조용히

  • 천천히 꾸준히 조용히의 첫 페이지로 이동

검색

방문자

  • 전체 방문자
  • 오늘
  • 어제

카테고리

  • 분류 전체보기 (679)
    • Algorithm (205)
      • Data Structure (5)
      • Theory && Tip (33)
      • Baekjoon (166)
      • ALGOSPOT (1)
    • Spring (123)
      • Spring (28)
      • Spring Web MVC (20)
      • Spring Database (14)
      • Spring Boot (6)
      • Spring 3.1 (11)
      • Spring Batch (6)
      • Spring Security (16)
      • JPA (12)
      • Spring Data JPA (5)
      • QueryDSL (4)
      • eGovFramework (1)
    • Programming Language (74)
      • C (25)
      • C++ (12)
      • Java (19)
      • JavaScript (15)
      • Python (1)
      • PHP (2)
    • Computer Science (142)
      • Machine Learning (38)
      • Operating System (18)
      • Computer Network (28)
      • System Programming (22)
      • Universial Programming Lang.. (8)
      • Computer Architecture (4)
      • Compiler Design (11)
      • Computer Security (13)
    • Database (21)
      • Database (7)
      • MySQL (3)
      • Oracle (3)
      • Redis (5)
      • Elasticsearch (3)
    • DevOps (20)
      • Docker && Kubernetes (8)
      • Jenkins (4)
      • Amazon Web Service (8)
    • Mobile (28)
      • Android (21)
      • Flutter (7)
    • 💡 솔루션 (17)
    • 👥 모각코 (10)
    • 💬 기록 (8)
    • 📚 공부 (6)
    • -------------- (25)

최근 글

나의 외부 링크

메뉴

  • 홈
반응형

정보

i3months의 천천히 꾸준히 조용히

천천히 꾸준히 조용히

i3months

블로그 구독하기

  • 구독하기
  • RSS 피드

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. Copyright © i3months.

티스토리툴바