Day94

김재현·2023년 10월 11일

JUPYTER/DL/ML

목록 보기
61/73

fit_transform은 fit, transform을 결합한 형태
학습과 예측치 산정을 동시에 수행해 학습 데이터를 받을 수 없음
학습 결과를 재사용할 경우 transform() 함수를 사용


참고 : https://scikit-learn.org/stable/modules/clustering#

군집화 및 결과 평가

class sklearn.cluster.DBSCAN(eps=0.5, min_samples=5, metric = 'euclidean',
metric_params=None, algorithm = "auto", leaf_size = 30, p = None, n_jobs=None)

주요 파라미터

파라미터설명
eps하나의 샘플에 대한 다른 샘플과의 최대 거리
min_samplesMinPts. 핵심 포인트로 간주할 포인트에 대한 이웃의 샘플 수
metric피쳐 배열에서 인스턴스 간의 거리를 계산할 때 사용되는 방법. 문자열 파라미터일 경우 "euclidean"로 명시. 그렇지 않을 경우 콜백 함수 지정
metric_paramsmetric이 콜백 함수로 지정될 경우 사용되는 파라미터
n_jobs실행할 병렬 작업의 수. CPU의 프로세스 수만큼 설정 가능

DBSCAN에서 가장 중요한 포인트는 epsmin_samples의 값을 결정하는 것.

입력 파라미터인 eps와 min_samples의 값을 구할 수 있는 공식은 없음.

다만, 이를 결정하는데 도움을 받을 수 있는 주관적인 방법이 존재.(시각화 자료를 통한 분석)

MinPts(min_samples)

주로 4 아니면 5.
2차원 데이터를 대상으로 실험을 진행한 결과 4, 5 이상 간에는 큰 변동이 없음.

MinPts 값이 점점 커질 수록 연산량이 상당히 커지는 경향이 있으므로 2차원 데이터에서는 MinPts 값을 4로 설정하는 것을 권장.

eps

sorted-k-dist 그래프를 통해 eps 값을 찾는다

sorted-k-dist 그래프 작성 방법

  1. MinPts를 k개라고 했을 때, 하나의 점으로부터 k개의 가장 가까운 점들간의 거리(k-dist)를 구한다.
  2. k-dist를 내림차순으로 정렬.
  3. 정렬 결과를 lineplot으로 시각화해 기울기가 급격하게 변하는 지점의 eps 값을 선정.

해당 분야 전문가가 제안하는 도메인 지식이 가장 우선 되어야 한다.

Ref.

Martin Ester, Hans-Peter Kriegel, Jorg Sander, Xiaowei Xu, 1996, "A Density-Based Algorithm for DiscoveringClusters in Large Spatial Databases with Noise", KDD-96


군집화 및 결과 평가

결과 평가

상황평가지표
목적변수가 있는 경우Homogeneity, Completeness, V-measure, ARI
목적변수가 없는 경우Silhouette coefficient

Homogeneity(동질성)

  • 각 클러스터의 모든 객체들이 동일한 클래스로부터 온 객체들일 때, 클러스터링 결과는 동질성을 만족시킴
  • 0.0에서 1.0까지의 분포를 나타내며 값이 클수록 좋음

Completeness(완전성)

  • 각 클래스의 모든 객체들이 동일한 클래스의 맴버가 될 때, 클러스터링 결과는 완전성을 만족시킴
  • 척도 값이 클수록 좋은 알고리즘으로 평가

V-measure(조화평균)

  • Homogeneity와 Completeness의 조화 평균
  • 동질성 및 완전성 기준이 얼마나 성공적으로 충족되었는지 명시적으로 측정
  • 0.0과 1.0 사이의 양수 값을 가지며 클 수록 좋음
  • 표본 수가 1000개 이상이고 군집 수가 10개 미만인 경우

ARI(Adjusted Rand Index)

  • 타겟 값으로 클러스터링 결과를 평가
  • 1과 0 사이의 값을 제공 (1=최적, 0=무작위)
  • 표본의 크기가 작거나 군집 수가 많은 경우 사용
    • 기술의 발달로 표본의 크기보다 군집 수를 기준으로 판단

Silhouette coefficient(실루엣 계수)

  • 앞의 지표와 다르게 레이블이 없는 군집용 지표
  • 1과 0 사이의 값을 제공 (1=최적, 0=무작위)
  • 각 군집간의 거리가 얼마나 효율적으로 분리되어 있는가를 나타냄
    • 1에 가까운 값 : 근처의 다른 군집과 거리가 멀다
    • 0에 가까운 값 : 근처의 다른 군집과 거리가 가깝다
  • 음수값이 나타나는 경우 : 잘못된 분류

    실루엣 계수(Silhouette coefficient) 요약
    개별 데이터가 할당된 군집 내 데이터와 얼마나 가깝게 군집화 되어있는지, 다른 군집에 있는 데이터와는 얼마나 멀리 분리되어 있는지를 수치로 나타내는 값.
    값이 크다면 군집화의 성능이 좋다고 해석

0개의 댓글