DS_분석_Clustering

ParkJangSik·2021년 5월 26일
1

Codestates_DS

목록 보기
5/6

주제 : Clustering

1. 학습목표

  • Scree Plot의 의미를 이해할 수 있다.
  • Supervised / Unsupervised Learning의 차이를 설명할 수 있다.
  • K-means clustering을 설명 할 수 있다.

2. DF manipulation

  • 특정 칼럼 제거하기 : df.drop('컬럼명',axis= ...)
  • 특정 칼럼 만들어서 값 채워주기 : df['column'] = a

3. 용어정리

  • Scree Plots
  • Machine Learning
  • Clustering
  • similarity
  • K-means Clustering
  • The Eyeball Method , Metrics
  • Elbow methods

4. 이건 알고 가자

  • 완벽한 알고리즘은 없다
  • clustering은 어떤 의미를 갖나요?

5. 내용

(1) Scree Plots

🌟 what?

  • 주성분의 개수를 정하는 방법이다 = PCA를 몇 차원으로 해야할까?

🌟 How?

  • Scree Plots을 그렸을 때, 기울기가 급격하게 변하는 구간을 선택한다.
  • Eigenvalue의 누적값이 설명되는 분산의 70~80% 정도면 무난한다고 생각한다.

(2) Machine Learning

🌟 what?

  • 기계학습
  • supervised learning , unsupervised learning , reignforceement learning이 포함된다

🌟 Supervised Learning?

  • 개념 : input data(트레이닝 데이터)에 답이 있을 때 사용할 수 있다.

  • 개념 : 대표적으로 Classification(분류), Prediction(회귀)가 있다.

  • Classification(분류)

    • 주어진 데이터의 카테고리 혹은 클래스를 예측 하는데 사용된다.
    • ex) x는 동그라미일까? 네모일까? 알아 맞춰봐!!!
  • Prediction(회귀)

    • continuous한 데이터를 바탕으로 결과를 예측하기 위해 사용한다.
    • continuous한 데이터??

🌟 Unsupervised Learning?

  • 개념 : 데이터의 연관된 feature를 바탕으로 유사한 그룹을 생성합니다.

  • 차원축소 = Dimensionality Reduction이 사용된다

  • 연관 규칙 학습 = Association Rule Learning이 사용된다.

    • 데이터셋의 feature들의 관계를 발견하는 방법이다.
    • feature-output이 아닌 feature-feature이다 ??

🌟 Reinforcement Learning?

  • 개념 : 기계가 좋은 행동에 대해서는 보상, 그렇지 않은 행동에는 처벌이라는 피드백을 통해서 행동에 대해 학습해 나가는 형태

(3) Clustering = 군집

🌟 What?

  • Unsupervised Learning의 한 종류이다.

🌟 목적?

  • 클러스터링을 통해 주어진 데이터들이 얼마나, 어떻게 유사한지를 알수 있다.
  • 때문에 주어진 데이터셋을 요약/정리하는데 있어 매우 효율적인 방법이다.
  • 하지만, 정답을 보장하지 않기에 예측을 위한 모델링 보다는 EDA를 위한 방법으로써 많이 쓰인다.

🌟 종류?

  • Hierarchical = 계층

🌟 Hard vs Soft Clustering

  • Hard clustering : 데이터가 하나의 Cluster에만 할당된다.
  • Soft clustering : 데이터가 여러 cluster에 확률을 가지고 할당된다.
  • 일반적으로 Hard Clustering을 Clustering이라고 말한다.

(4) Similiarity = 유사도

🌟 what?

  • 벡터들끼리의 거리가 어떻게 되나? 가깝나? 먼가?

🌟 종류

  • Euclidean
  • Cosline
  • Jaccard
  • Edit Distance
  • Etc
  • 각 목적에 따라서 다른 방식이 사용된다!!

(5) K-means 클러스터링

🌟 과정

  • 1) k개의 랜덤한 데이터를 cluster의 중심점으로 설정한다.
  • 2) 주어진 데이터와 중심점과의 거리를 계산한다.
  • 3) 거리가 가장 짧은 것을 선택하면, 데이터가 어느 Cluster에 속하는지 알 수 있다.
  • 4) Cluster가 새로 형성되면, 평균값을 이용해서 또 다시 중심점을 구한다.
  • 5) 새로운 중심점을 이용해서 2) ~ 3) 을 반복한다
  • 6) 더 이상 Cluster에 유의미한 변화가 없을 때 중단한다.

🌟 이 과정을 내가 다 만들어?

  • 아니다! Scikit-learn에서 라이브러리 불러올 수 있다.
    from sklearn.cluster import KMeans
    kmeans = KMeans(n_cluster = x)
    kmeans.fit(x)
    labels = kmeans.labels

🌟 K-means에서 K는 어떻게 구하는거야?

  • The Eyeball Method : 사람이 주관적인 판단을 통해 지정한다.
  • Metrics : 객관적인 지표를 설정해서, 최적화된 K를 선택한다. ex) Elbow methods

(6) Elbow methods

🌟 what??

  • K-means Clustering에서 K를 구하는 방법 중에 하나.

🌟 How??

  • 1) Kmeans를 K개로 진행해서
  • 2) 각각의 경우에 데이터끼리의 거리의 합 구한다.
  • 3) 거리의 합이 작은 것을 선택한다.

(7) 마치며

🌟 완벽한 알고리즘은 없다

  • k-means 말고도 상당히 많은 clustering 알고리즘들이 있으며

각자 풀고자 하는 문제에 대해서 최적화되어있습니다.

그러나, 최적화된 문제를 제외한 다른부분에는 장점을 보이지 못한다는 단점도 있습니다.

🌟 때문에...

  • 다양한 방법론에 대해 연구를 하고 알고 있어야 한다.
  • 데이터의 특성을 알아야, 다양한 방법들을 선택할 수 있다. 그러므로 도메인 지식을 키워야 한다!!
profile
취준생

0개의 댓글