일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 티스토리챌린지
- 텍스트 분석
- harkerrank
- 파이썬 머신러닝 완벽가이드
- 웹 스크랩핑
- SQL
- 내일배움캠프
- wil
- 내일배움카드
- 프로젝트
- 프로그래머스
- 실전 데이터 분석 프로젝트
- 오블완
- 파이썬 철저 입문
- TiL
- hackerrank
- Cluster
- 스파르타 코딩
- 스파르타
- 회귀분석
- 미세먼지
- 파이썬 머신러닝 완벽 가이드
- 어쩌다 마케팅
- 스파르타코딩
- 파이썬 철저입문
- 파이썬
- 중회귀모형
- 내일배움
- MySQL
- R
- Today
- Total
OkBublewrap
[ML] 비지도학습 본문
비지도학습
레이블이 달린 데이터를 이용해 모델을 학습하는 과정 없이 데이터로부터 의미를 이끌어내는 통계적 기법
목적
- 클러스터링 : 레이블이 정해진 응답변수가 없는 상태에서 예측 규칙을 만드는 데 사용
- 차원 줄이기 : 탐색적 데이터 분석 가능, 데이터의 변수들을 관리할 수 있을 만한 수준으로 하는 것
PCA(주성분 분석)
PCA는 범주형 데이터에 사용할 수 없지만 그래도 어느 정도 관련 있는 기술은 대응분석이다.
이 분석의 목적은 범주간 혹은 범주형 피처 간의 연관성을 인식하는 것이다. 대응분석과 주성분분석은 주로 차원 스케일링을 위한 행렬 대수라는 기본 원리에 공통점이 있다.
대응분석은 주로 저차원 범주형 데이터의 그래프 분석에 이용되며, 빅데이터 준비 단계에서 차원 축소를 위해 PCA를 사용하는 것과는 다른 방식으로 사용된다.
주요 개념
- 주성분은 예측변수(수치형)들의 선형결합이다.
- 주성분들은 서로 간의 상관관계가 최소화되며 중복성이 줄어들도록 한다.
- 제한된 개수의 주성분들로도 결과변수에서 대부분의 변동을 설명할 수 있다.
- 제한된 개수의 주성분들을 원래의 예측변수를 대신하여 차원이 감소된 형태로 사용할 수 있다
- 대응분석은 범주형 데이터에 대해 표면적으로 유사한 기술이지만 빅데이터에서는 유용하지 않다.
K-평균 클러스터링
K-평균은 데이터를 k개의 클러스터로 나눈다. 이때 할당된 클러스터의 평균과 포함된 데이터들의 거리 제곱합이 최소가 되도록 한다. 클러스터들끼리는 최대한 멀리 떨어지도록 한다.
정규화
데이터 값에서 평균을 빼고 그 편차를 표준편차로 나눠주는 방법이 가장 일반적인 정규화(표준화) 방법이다.
이렇게 하지 않으면 스케일이 가장 큰 변수가 클러스터링 과정을 독점하게 된다.
K-평균 알고리즘
사용자가 미리 정해준 k값과 클러스터 평균의 초깃값을 가지고 알고리즘을 시작하며, 아래 과정을 반복
- 각 레코드를 거리가 가장 가까운 평균을 갖는 클러스터에 할당한다.
- 새로 할당된 레코드들을 가지고 새로운 클러스터 평균을 계산한다.
클러스터 해석
클러스터 분석에서 가장 중요한 부분은 바로 클러스터를 바르게 해석하는 것이다.
가장 중요한 두 출력은 바로 클러스터의 크기와 클러스터 평균이다.
클러스터 개수 선정
팔꿈치 방법은 언제 클러스터 세트가 데이터의 분산의 대부분을 설명하는지를 알려준다.
이는 누적 분산이 가장 가파르게 상승한 다음 어느 순간 평평하게 되는 지점을 말한다.
주요 개념
- 사용자가 원하는 클러스터 개수k를 선택한다.
- k-평균 알고리즘은 클러스터가 더는 변하지 않을 때까지 반복해서 클러스터 평균이 가장 가까운 클러스터에 레코드를 할당한다.
- 실무적인 상황을 고려해 k를 선택하는 것이 가장 일반적이다. 통계적으로 최적의 클러스터 개수를 구하는 방법은 없다.
계층적 클러스터링
서로 다른 수의 클러스터를 지정하는 효과를 시각화할 수 있다.
그리고 특이점이나 비정상적인 그룹이나 레코드를 발견하는 데 더 민감하다.
또한 클러스터를 해석하기가 수월하다.
⚠️ 계층적 클러스터링의 유연성에는 비용이 따른다.
수백만 개의 레코드가 있는 대규모 데이터에는 적용할 수 없다.
수만 개의 레코드로 이루어진 적당한 크기의 데이터의 경우에도 상대적으로 많은 컴퓨팅 리소스가 필요할 수 있다.
사실, 계층적 클러스터링은 대부분 상대적으로 데이터 크기가 작은 문제에 주로 적용된다.
스케일링과 범주형 변수
비지도 학습 기술을 이용할 때는 일반적으로 데이터를 적절하게 스케일해야 한다.
용어 정리
- 스케일링 : 데이터의 범위를 늘리거나 줄이는 방식으로 여러 변수들이 같은 스케일에 오도록 하는 것
- 정규화 : 원래 변수 값에서 평균을 뺀 후에 표준편차로 나누는 방법으로, 스케일링의 일종이다.
- 고워 거리 : 수치형과 범주형 데이터가 섞여 있는 경우에 모든 변수가 0~1 사이로 오도록 하는 스케일링 방법
데이터 크기가 조정되지 않으면 PCA, k-평균, 혹은 기타 클러스터링 방법은 큰 값을 갖는 변수들에 의해 결과가 좌우되고 작은 값을 갖는 변수들은 무시된다.
범주형 데이터는 일부 클러스터링 과정에서 특별한 문제를 일으킬 수 있다. KNN에서와 마찬가지로, 순서가 없는 요인변수는 일반적으로 요인변수는 일반적으로 원-핫 인코딩을 사용하여 이진(0/1) 변수 집합으로 변환한다. 이러한 이진변수는 다른 데이터와 스케일이 다를 뿐만 아니라 PCA나 k-평균 같은 기법을 사용할 때 이진변수가 두 가지의 값만 가질 수 있다는 것 때문에 문제가 될 수 있다.
변수 스케일링
범주형 데이터와 고워 거리
범주형 데이터가 있는 경우에는 순서형(정렬된 요인) 변수 또는 이진형(더미) 변수를 사용하여 수치형 데이터로 변환해야 한다.
데이터를 구성하는 변수들에 연속형과 이진형 변수가 섞여 있는 경우에는 비슷한 스케일이 되도록 변수의 크기를 조정해야 한다.
이를 위한 대표적인 방법은 고워 거리를 사용하는 것이다.
- 수치형 변수나 순서형 요소에서 두 레코드 간의 거리는 차이의 절댓값(맨해튼 거리)으로 계산 한다.
- 범주형 변수의 경우 두 레코드 사이의 범주가 서로 다르면 거리가 1이고 범주가 동일하면 거리는 0이다.
혼합 데이터의 클러스터링 문제
k-평균과 PCA는 연속형 변수에 가장 적합하다. 데이터 집합의 크기가 더 작아질수록 고워 거리를 사용하여 계층적 클러스터링을 하는 것이 좋다. 원칙적으로는 이진형 혹은 범주형 데이터에도 k-평균을 적용할 수 있다. 하지만 실무에서는 k-평균과 PCA를 이진형 데이터와 함께 사용하는 것이 어려울 수 있다.
주요 개념
- 스케일이 서로 다른 변수들을 스케일이 비슷하도록 변환하여, 스케일이 알고리즘에 큰 영향을 미치지 않도록 한다.
- 일반적인 스케일링 방법은 각 변수에서 평균을 빼고 표준편차로 나눠주는 정규화(표준화) 방법이다.
- 또 다른 방법은 고워 거리를 사용하는 것이다. 이 방법은 모든 변수를 0~1 범위로 스케일링한다(수치형과 범주형 데이터가 서로 혼합된 경우에 많이 사용된다)
'Python > 학습용' 카테고리의 다른 글
N배 빠른 크롤링(2) (0) | 2025.02.23 |
---|---|
N배 빠른 크롤링(1) (0) | 2025.02.23 |
Python-SQL 연결(데이터 추출) (0) | 2025.01.25 |
머신러닝 프로젝트 분석 (0) | 2025.01.21 |
Tableau-tabpy 사용 (0) | 2023.09.03 |