2. 목차
0
1. 데이터 과학에서 다루는 문제
2. 군집화 (clustering)
3. K-means clustering
3. 데이터 과학에서 다루는 문제
1
Berry & Linoff (2011)Data Mining Techniques, WILEY
• 목표와 정답이 정해져 있는 경우
✓분류 (classification)
✓추정 (estimation)
✓예측 (prediction)
✓Machine learning으로 구분하자면, 입력 데이터와 그에 따라 기대하는 출력값이 있는
supervised learning
• 목표와 정답이 정해져 있지 않은 경우
✓연관성 규칙 (association rules)
✓군집화 (clustering)
✓Machine learning 으로 구분하자면, 입력 데이터는 있지만 데이터 내에서 구조를 찾아가
야 하는 unsupervised learning
4. 데이터 과학에서 다루는 문제
1
• 분류 (classification)
✓항목의 속성을 바탕으로 어떤 범주(category)에 속하는지 분류
✓사전에 범주에 대한 명확한 정의가 존재(예/아니오, 치와와/머핀)
• 추정 (estimation)
✓항목의 속성을 바탕으로 점수/확률/주가 등 연속형 변수 추정
• 예측 (prediction)
✓분류/추정과 같으나 예측 시점이 되어야 정확한지 알 수 있는 경우
5. 데이터 과학에서 다루는 문제
1
• 연관성 규칙 (association rules)
✓어떤 사건이 다른 사건과 얼마나 자주 동시에 발생하는지를 파악
✓데이터로부터 자주 발생하는 패턴 탐색
• 군집화 (clustering)
✓주어진 항목에서 속성이 유사한 항목끼리 묶어 몇 개의 범주로 구분
✓분류와 비슷하지만 나눌 항목과 개수가 미리 정해져 있지 않음
6. 군집화(clustering)
2
• 시각화에서의 군집은 시각적으로 식별할 수 있는 패턴을 강조하는 정도
• 수업에서는 각 데이터 포인트(관측치) 간 거리에 따라서 보이지 않는 패턴을 발
견하는 k-means clustering을 다룹니다.
C4
C3
C1
C2
C0
y:
channel
engagement
(recommendations)
7. 군집화(clustering)
2
피터 브루스, 앤드류 브루스 (2018). 데이터 과학을 위한 통계. 이준용 옮김. 한빛미디어
http://www.mit.edu/~9.54/fall14/slides/Class13.pdf
• 데이터를 클러스터(cluster)라는 그룹으로 나누며, 어떤 클러스터로 나뉠지는
정해져 있지 않다.
• 한 클러스터 안의 데이터끼리는 비슷하고 다른 클러스터의 데이터끼리는 서로
구분이 되어야 한다.
• 데이터로부터 유의미한 그룹들을 구하는 것을 목적으로 한다.
✓클러스터의 크기
✓클러스터의 개수
✓해석에 따라 좌우된다.
8. K-means clustering
3
피터 브루스, 앤드류 브루스 (2018). 데이터 과학을 위한 통계. 이준용 옮김. 한빛미디어
• K-means clustering은 최초로 개발된 클러스터링 기법으로, 알고리즘이 상대
적으로 간단하고 큰 데이터에도 손쉽게 사용할 수 있어 널리 사용된다.
• K개의 클러스터로 나눌 때, 각 클러스터에 포함된 데이터들의 거리 제곱합이 최
소가 되도록 한다.
• 각 클러스터의 크기가 동일하다는 보장은 없지만 클러스터끼리는 멀리 떨어지
도록 한다.
9. K-means clustering
3
안드레아스 뮐러, 세라 가이도 (2019) 파이썬 라이브러리를 활용한 머신러닝, 박해선 옮김, 한빛미디어
K-means clustering 알고리즘의 진행
1. 클러스터 중심(cluster center, centroid)
의 개수(K)를 지정한다.
2. 아래 과정을 반복(iteration)한다.
① 클러스터 중심을 무작위로 할당한다.
② 각 데이터 포인터를 가장 가까운 클러스터
중심에 할당한다.
③ 할당된 클러스터에 포함된 데이터들의 거리
제곱합 및 벡터 평균을 계산한다.
④ 계산을 바탕으로 클러스터 중심을 갱신한다.
3. 이전 클러스터 중심과 갱신된 클러스터
중심의 거리가 일정 미만이면 반복을 종
료하고 결과를 도출한다.
10. K-means clustering
3
안드레아스 뮐러, 세라 가이도 (2019) 파이썬 라이브러리를 활용한 머신러닝, 박해선 옮김, 한빛미디어
• 사이킷런(scikit-learn): 파이썬 머신러닝 라이브러리
• 분류, 회귀, 클러스터링 등 다양한 목적의 머신러닝 알고리즘을 제공한다.
• 머신러닝 교육을 위해 예제 데이터 및 전처리 기능을 제공한다.
• NumPy, SciPy 라이브러리와 연동된다.
• 텐서플로우(TensorFlow), 케라스(Keras), 파이토치(PyTorch) 등 딥러닝 전문
라이브러리들이 있으나 여전히 널리 사용된다.