본문 바로가기

[AI] - Machine Learning18

# 17. 군집화 평가 지표 (실루엣 계수, 응집도) 이번 포스트에서는 저번 포스트에서 다루었던 군집화 알고리즘이 잘 수행되었는지 판단하기 위한 지표에 대해 알아본다. 이번에 알아볼 지표로는 두 가지로 실루엣 계수와 응집도가 있다. 실루엣 계수 (silhouette score) 실루엣 계수는 각각의 데이터가 해당 데이터와 같은 군집 내의 데이터와는 얼마나 가깝게 군집화가 되었고, 다른 군집에 있는 데이터와는 얼마나 멀리 분포되어 있는지를 나타내는 지표이다. 실루엣 계수가 가질 수 있는 값은 -1~1이며, 1에 가까울수록 군집화가 잘 되었음을 의미한다. 하지만, 데이터 하나에 대한 실루엣 계수만 좋다고 군집화가 잘 이루어졌다고 일반화를 할 수 없다. 각 군집별 데이터의 수가 고르게 분포되어야 하며, 각 군집별 실루엣 계수 평균값이 전체 실루엣 계수 평균값에 .. 2021. 12. 21.
# 16. 군집화 알고리즘 (K-Means Clustering) 이번 포스트에서는 저번 포스트에서 다루었던 군집화 알고리즘 중 대표적인 방법인 K-Means Clustering에 대해 알아보겠다. K-Means Clustering 알고리즘은 이름에서 알 수 있다시피 K개의 군집을 정하며, 데이터들의 평균 중심(거리의 평균)을 각 군집의 중심점으로 삼는다. STEP 1 : 군집의 갯수만큼 임의의 위치에 중심점을 정한다. STEP 2 : 각 데이터를 가장 가까운 중심점에 해당하는 군집에 소속시킨다. STEP 3 : 각 군집에 속해있는 데이터들의 평균 거리를 갖는 중심위치로 군집의 중심점을 이동시킨다. STEP 2~3의 과정을 반복하고, 중심점의 위치에 변화가 없을 경우 군집화 과정을 멈춘다. 알고리즘 자체는 단순하지만, 피처 수가 많아지면 기하급수적으로 느려지는 현상이 .. 2021. 12. 9.
# 15. 군집화 알고리즘 (Clustering Algorithm) 이번 포스트에서는 비지도 학습 방법 중 군집화에 대해 알아보고, 군집화 알고리즘 유형에 대해 알아보겠다. 그렇다면 군집화는 무엇을 의미할까? 군집화는 다른 그룹보다 특성이 비슷한 데이터들끼리 그루핑하는 것을 의미한다. 예를 들어, 이 글을 읽는 독자가 사장이라고 가정해보자. 사장이 고객의 등급에 따른 새로운 비즈니스 전략을 세우려고 한다. (예를 들면, VVIP, VIP, 일반) 이 때, RFM (Recency, Frequency, Monetary) 분석을 통해 고객의 등급(=군집)을 분류할 수 있다. Recency : 고객이 얼마나 최근에 구매하였는가? Frequency : 고객이 얼마나 자주 구매하였는가? Monetary : 고객이 얼마나 많이(크게) 구매하였는가? 즉, 이 세 가지 특성을 통해 클러.. 2021. 12. 6.
# 14. 선형 분류 (Linear Classification) 지난 포스트에서 선형 분류에 대해 자세히 다루지 못한것 같아 이번에 좀 자세히 다루려고 한다. 복습을 간단하게 하자면, 지도 학습에는 크게 분류와 회귀 문제가 존재한다. 그리고 회귀 문제는 데이터들을 가장 잘 나타내는 선을 찾는 것이 목적이다. 분류 문제도 회귀 문제와 메커니즘은 비슷하지만, 찾고자 하는 선의 목적이 다르다. 분류는 데이터들을 가장 잘 분류하는 선을 찾는 것이 목적이다. 즉, 회귀의 선은 데이터들 사이의 거리가 가까운 선을 찾으려고 하지만, 분류는 (클래스별로)거리가 먼 것을 찾으려고 하는 것이다. 사실 위의 그림을 이해를 위해 선으로 표현했지만, 선형 분류의 의미를 엄밀히 말하면 데이터를 잘 분류할 수 있는 초평면(hyperplane)을 찾는 것이라고 해야 정확한 의미이다. 이번 포스트.. 2021. 12. 3.
# 13. 회귀 알고리즘 (Ridge, Lasso, ElasticNet) 이번 포스트에서는 선형 회귀 이외의 다른 회귀 알고리즘에 대해 다뤄본다. 결론부터 이야기하면 다음과 같다. Lasso = Linear Regression + L1 Regularization Ridge = Linear Regression + L2 Regularization ElasticNet = Linear Regression + L1 Regularization + L2 Regularization 우리는 학습을 하다보면 점점 Loss가 떨어지는 것을 확인할 수 있다. 하지만, 거기서 안심하면 안된다. 오버피팅(과적합)은 머신러닝 분야에서 항상 존재하는 이슈이다. 오버피팅을 방지하기 위한 기법은 여러가지가 존재한다. Dropout, Batch normalization, RandomCrop 등.. 여러가지 존.. 2021. 11. 30.
# 12. 선형성, 비선형성 (Linear, Non-linear) 이번 포스트에서는 선형, 비선형의 정의에 대해서 자세하게 짚고 넘어가려고 한다. 이 포스트를 작성하는 이유는 "선형" 이라는 단어에 대해 혼동되지 않기 위해서 남긴다. 처음으로 의문이 든 것은 다음 이미지에서 시작되었다. 이전 포스트에서 우리는 선형 회귀에 대한 내용을 다루었다. 위 이미지는 우리가 찾고자하는 선의 기울기와 절편을 얻기 위해 과도하게 update를 계속 진행하면 오버피팅이 발생한다는 의미를 나타낸다. 그런데, 보통 머신러닝을 배우다보면 선형을 기하학적으로 선의 모양을 유지하면 선형 (혹은 꾸불거리지 않거나)이라고 정의하는 것에서 모순을 느꼈다. 그렇다면, 오른쪽 그림은 꾸불거리면 더 이상 선형이 아니지 않은가? 왜 선형 회귀의 오버피팅이지? 라는 의문이 들었다. 답은 아래의 사이트에서 얻.. 2021. 11. 29.