1. 머신러닝 개념 정리

1) 비지도학습 (Unsupervised Learning)

  • 명확한 라벨(정답)이 없는 데이터를 다루는 방법
  • 주어진 데이터가 어떻게 구성되어 있는지 데이터 셋의 특징(feature) 및 패턴을 기반으로 모델 스스로 판단하는 방법
  • 지도학습에서 라벨링에 많은 비용이 소요되어, 이러한 문제를 해결하기 위해 라벨링이 안된 데이터 내에서 비슷한 데이터끼리 군집화하고 새로운 데이터가 어떤 군집에 속하는지 추론하는 방법이 제시됨
  • 종류
    • 군집화: K-means
    • 차원 축소(dimensionality reduction): PCA, T-SNE
    • 생성 모델(generative model)

2) 군집화 (Clustering)

  1. 비지도 학습의 조건
  • 라벨이 없음
  • y가 될 수 있는 클래스 / 카테고리의 기준이 없음
  1. K-means
  • 명확한 분류 기준이 없는 상태에서 k개의 기준점을 중심으로 가장 가까운 데이터를 군집시키는 방식
  • k 값이 주어졌을 때 주어진 데이터를 k개의 클러스터로 묶는 알고리즘
    • 임의로 지정된 k개의 중심점이 새로운 라벨 역할을 하는 것
  • L2 distance(Eucledian distance): 두 점 사이 거리를 재는 방법

원리
1. 원하는 클러스터의 수(K) 결정
2. 임의로 각 클러스터를 대표하는 K 개의 중심점(centroid) 선정
3. 나머지 점과 중심점 간의 유클리드 거리를 계산, 가장 가까운 중심점의 클러스트에 속하게 함
4. 중심점 재조정. 특정 클러스터에 속하는 모든 점의 평균값이 해당 클러스터의 다음 iteration의 중심점으로 갱신됨.
5. 재조정된 중심점을 기준으로 모든 점과 조정된 중심점 사이의 L2 distance를 다시 계산, 가까운 거리인 클러스터에게 해당 점을 재배정
6. 4, 5를 반복 수행함. 특정 반복 이상이 되면 수렴하게 됨.

  • 잘 적용되지 않는 경우
    • 원형 분포
    • 초승달 모양 분포
    • 대각선 모양 분포
  1. DBSCAN (Density Based Spatial Clustering of Applications with Noise)
  • K-means 보완 가능
  • 특징
    • 클러스터링 수를 미리 지정할 필요 없음
    • 유클리드 거리를 사용하지 않음: 데이터의 밀집도를 기준으로 함
  • 용어
    • epsilon: 클러스터의 반경, 미리 지정해야함
    • minPts: 클러스터를 이루는 개체의 최솟값, 미리 지정해야함
    • core point: 반경 epsilon 내에 minPts 개 이상의 점이 존재하는 중심점
    • border point: 군집의 중심이 되지는 못하지만 군집에 속하는 점
    • noise point: 군집에 포함되지 못하는 점

원리
1. 임의의 점 p 설정, p를 포함해 주어진 클러스터의 반경 안에 포함되어 있는 점의 수를 셈
2. 만약 해당 원에 minPts 개 이상의 점이 포함되었다면, 해당 점 p를 core point로 간주, 원에 포함된 점을 하나의 클러스터로 취급함
3. 해당 원에 minPts 개 미만의 점이 포함되면 pass
4. 모든 점에 대해 돌아가면서 1~3의 과정을 반복
4-1. 만일 새로운 점이 core point가 되고 이 점이 기존의 클러스터에 속한다고 하면, 두 개의 클러스터를 하나의 클러스터로 취급함
5. 모든 점에 대해 위의 과정을 마친 후 클러스터에 속하지 못한 점이 있으면 이를 noise point로 간주. 특정 군집에 속하지만 core point는 아닌 점을 border point로 칭함.

  • 한계
    • 데이터가 적을 땐 K-means보다 빠르지만, 데이터가 늘어날 수록 DBSCAN의 수행시간이 급격히 증가함
    • epsilon, minPts의 값을 미리 지정해줘야 함.

3) 차원 축소(Dimensionality reduction)

  1. 의미
    방대한 정보 속에서 더 중요한 요소가 무엇인지 알게 해주는 방법

  2. 차원 축소
    특징 추출(feature extraction, 데이터를 나타내는 여러 특징 중 어떤 특징이 그 데이터를 가장 잘 표현하는지 알게 해줌)에 사용됨

  3. PCA ✔✔✔🤔
    orthogonal, basis, projection, linear combination

  • 각 feature 간 상관관계가 있고, 이를 구별해야할 필요가 있을 때 유용하게 사용 가능
  • 선형적 데이터의 분포(키, 몸무게 등)를 가지고 있을 대 정보가 가장 잘 보존 됨
  • 데이터가 가진 고유한 물리적 정보량을 보존하는 데에 주력
  1. T-SNE
  • 시각화에 많이 활용되는 알고리즘
  • 기존 차원의 공간에서 가까운 점들은 차원 축소시에도 가깝게 유지됨을 목표로 함.
  • 데이터 간의 상대적 거리를 보존하는 데에 주력
  • PCA에 비해 성능이 뛰어나다기보단 시각화에서 유리한 것

정리

2. 회고

PCA 정말 이해 안된다. 다시 찾아봐야겠다. 선형대수 개념이 들어가니까 정말 이해가 하나도 안됐다. 기본 개념은 그래도 안다고 생각했는데 정작 개념이 적용된 걸 읽으니까 하나도 체화되지 않았단 걸 느꼈다. 아직 갈 길이 멀구나 다시 한 번 깨달았다...

profile
🐬 파이썬 / 인공지능 / 머신러닝

0개의 댓글