목록머신러닝 (22)
데이터로그😎
군집화를 실행한 후 군집화가 얼마나 효율적으로 됐는지 어떻게 평가할까? 군집화의 성능을 평가하는 대표적인 방법 : 실루엣 분석 실루엣 분석 (silhouette analysis) 각 군집 간의 거리가 얼마나 *효율적으로 분리*돼 있는지를 나타냄 효율적으로 분리되어 있다 = 다른 군집과의 거리는 멀고 동일 군집끼리의 데이터는 가깝게 뭉쳐있다. 실루엣 분석은 실루엣 계수를 기반으로 한다. 실루엣 계수: 개별 데이터가 가지는 군집화 지표. 같은 군집 내의 데이터와 얼마나 가깝게 군집화돼 있고, 다른 군집에 있는 데이터와는 얼마나 멀리 분리돼 있는지를 나타내는 지표. 사이킷런 메소드 sklearn.metircs.silhouette_samples(X, labels, metric='euclidean', **kwds..
비모수 추정 방법 (Non-parametric Clustering) Meanshift DBSCAN 군집 개수 사전 설정 X 기반 밀도 기반 언제 사용? 데이터가 밀도가 높은 영역에 모여있는 경우 높은 차원 데이터에 대해 특징 군집의 중심을 찾기 위해 데이터가 밀집한 영역으로 이동하는 알고리즘. ( 좀비가 이동하면서 영역을 확장하는 느낌) 데이터 분포도(밀도)를 계산하여 높은 쪽으로 군집 중심점이 이동 데이터 분포가 기하학적일 때 사용 데이터 군집의 반경 & 최소 데이터 개수를 설정하여 군집화 진행 이상치 제거 가능(noise) 파라미터 bandwidth = KDE의 대역폭h = 표준편차 대역폭 크기 설정이 군집화의 품질에 큰 영향 미침 h ↓: 뾰족한 KDE, 변동성이 큰 밀도함수, 과대적합, 중심점 많..
KMeans vs GMM k-means GMM(Gaussian Mixture Model) 군집 개수 군집 개수 parameter 사전 설정 군집 방식 거리 기반 확률 기반 언제 사용? 클러스터 개수를 미리 알고 있을 때 진행 과정 군집 개수를 n_cluster 파라미터에서 설정 → 각 군집에 가까운 데이터들이 각 군집에 소속 → 새로운 군집이 만들어지면 군집의 평균으로 중심점이 이동 → 거기서 다시 가까운 데이터 기준으로 군집 형성 → 더이상 중심점이 이동하지 않을 때까지 진행 (or max_iter로 횟수 제한) 가정: 데이터가 여러개의 가우시안 분포를 가짐 먼저 정규분포 형태 몇가지를 추출해놓고 각 데이터가 이 중 어디에 속할 것인지를 판별하는 것. 파라미터 n_clusters: 군집화할 개수 ini..
군집(clustering) 고객, 마켓, 브랜드 등을 세분화/ 이미지 검출/이상 검출.. 등에 사용됨. 데이터의 특성을 파악해서 유사한 특성을 가진 데이터들끼리 그룹화 하는 것. 데이터의 특성을 이용해 서로 다른 그룹을 구분하는데, 이를 통해 데이터의 구조나 패턴을 파악할 수 있음. 모수 추정 방법 (Parametric Clustering) 비모수 추정 방법 (Non-parametric Clustering) 정의 데이터가 특정 데이터 분포를 따른다는 가정 모수 추정 방법은 군집화할 때 사용하는 모델에 **매개변수(parameter)**를 가정하고, 이 매개변수를 추정해가며 클러스터링을 수행하는 방법입니다. 데이터가 특정분포를 따르지 않는다고 가정 비모수 추정 방법은 모델에 매개변수를 가정하지 않고, 데이..
특잇값분해!!! 고유값 분해와 달리 모든 행렬에 적용 가능: 이미지 처리, 자연어 처리, 추천 시스템 등에 사용 A = UΣV^T A: m x n 크기의 행렬 특이벡터: U: m x m 크기의 직교행렬(orthogonal matrix) (A행렬의 행) V: n x n 크기의 직교행렬 (A행렬의 열) Σ: m x n 크기의 직사각 대각행렬(rectangular diagonal matrix)이며, 대각원소인 특이값(singular value)들은 0 이상의 실수 (A행렬 행x열) SVD(Singular Value Decomposition) Σ의 비대각 부분과 특이값 중 0인 부분을 제거 제거된 Σ에 대응하는 U와 V원소도 함께 제거하여 차원 줄이는 것 불러올 때from scipy.linalg import s..
LDA vs PCA PCA LDA 특징 주성분 분석 = 주가 되는 성분을 분석한다. PCA는 데이터의 고차원 공간에서 *가장 많은 분산(변동성)을 가지는 방향*을 찾아서 이를 기반으로 데이터를 저차원 공간으로 변환한다. PCA에서 '가장 많은 분산을 가지는'은 주어진 데이터셋에서 가장 많은 정보를 가지는 축(axis)을 찾는 것을 의미 PCA와 유사하지만 중요한 차이점은 LDA에서는 지도학습의 분류(classification)에 사용하기 쉽도록 개별 클래스를 분별할 수 있는 기준을 최대한 유지하면서 차원을 축소함. 입력 데이터의 결정 값 클래스를 최대한으로 분리할 수 있는 축을 찾는다. 클래스 간 분산과 클래스 내부 분산의 비율을 최대화하는 방식으로 차원을 축소. 클래스 간 분산은 최대한 크게 가져가고,..
차원축소의 대표적인 알고리즘 1. PCA 2. LDA 3. SVD 4. NMF 고차원 데이터의 문제점 수백 개 이상의 피처로 구성된 데이터 세트의 경우, 예측 신뢰도가 떨어진다. 피처가 많으면 개별 피처 간에 상관관계가 높을 가능성이 큼 → 다중 공선성 문제 발생 → 모델 예측 성능 저하 따라서 피처 축소 필요 (차원 축소) 차원축소란? 피처 선택, 피처 추출로 나뉨 피처 선택(feature selection): 주요 피처만 선택하고 불필요 피처 제거 피처 추출(feature extraction): 잠재적 요소 추출. ex) 수능성적, 모의고사 성적, 내신성적 => 학업성취도로 요약 말그대로 데이터의 차원을 줄이는 것 고차원 데이터를 다룰 때 차원의 저주로 인해 모델링이 어려워지고 성능이 저하되는 문제 ..
캐글 데이터: https://www.kaggle.com/competitions/bike-sharing-demand/data Bike Sharing Demand | Kaggle www.kaggle.com Prerequisite import numpy as np import pandas as pd import seaborn as sns import matplotlib.pyplot as plt %matplotlib inline import warnings warnings.filterwarnings('ignore', category=RuntimeWarning) from sklearn.metrics import mean_squared_error, mean_absolute_error from sklearn.mode..