상세 컨텐츠

본문 제목

K-평균 군집(K-means Clustering) 2

인공지능/머신러닝

by 2^7 2022. 6. 9. 16:46

본문

군집분석 성능평가

1. Import Packages and Lead Dataset

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from sklearn.datasets import load_iris

iris = load_iris()
DF = pd.DataFrame(data = iris.data,
                  columns = ['sepal_length',
                             'sepal_width',
                             'petal_length',
                             'petal_width'])

DF.head(3)


2. K-means Modeling

  • n_clusters : 군집 개수 지정
  • init : 초기 중심 설정 방식(기본값)
  • max_iter : 최대 반복 횟수
from sklearn.cluster import KMeans

kmeans_3 = KMeans(n_clusters = 3, 
                  init ='k-means++', 
                  max_iter = 15, 
                  random_state = 2045)

kmeans_3.fit(DF)


3. Silhouette Analysis

  • 실수엣 계수(Silhouette Coefficient) 측정지표
    • 개별 데이터포인트가 가지는 군집화 지표
    • 데이터포인트가 같은 군집 내의 다른 데이터포인트와 얼나마 가깝게 군집되어 있고
    • 다른 군집에 있는 데이터포인트와 얼마나 멀게 분리되어 있는지 나타내는 지표

  • 각 군집 간의 거리가 얼마나 효율적으로 분리되었는지 평가
    • 다른 군집과의 거리는 멀고, 군집 내 데이터포인트 간의 거리는 가깝게 형성

3-1. DF에 'Clustering' 추가

DF['Clustering'] = kmeans_3.labels_
DF.head(3)


3-2. 실수엣 계수값

  • 개별 데이터포인터들의 실수엣 계수값 계산
    • 'Clustering' 정보 사용

  • 실수엣 계수는 -1 ~ 1 사이의 값을 가짐
    • 1에 가까울 수록 근접한 다른 군집과 거리가 멀리 떨어져 있음을 의미
    • 0에 가까울 수록 근접한 다른 군집과 거리가 가까운 것을 의미
    • -1값은 전혀 다른 군집에 데이터포인트가 할당 되었음을 의미
from sklearn.metrics import silhouette_samples

silhouette_samples(iris.data, DF['Clustering'])

DF['Silh_Coef'] = silhouette_samples(iris.data, DF['Clustering'])
DF.head(3)


3-3. 실루엣 점수(Silhouette Score)

  • 데이터포인트들의 실루엣 계수값의 평균

  • 권장 실루엣 점수값
    • 전체 실수엣 계수 평균이 0 ~ 1 사이의 값을 가지며, 1에 가까운 경우
    • 개별 군집의 실루엣 계수 평균들이 전체 실루엣 계수 평균과 크게 차이나지 않는 경우
from sklearn.metrics import silhouette_score

silhouette_score(iris.data, DF['Clustering'])

0.5528190123564091

DF.groupby('Clustering')['Silh_Coef'].mean()

Clustering

0 0.417320

1 0.798140

2 0.451105

Name: Silh_Coef, dtype: float64

728x90

'인공지능 > 머신러닝' 카테고리의 다른 글

Machine Learning  (1) 2024.09.28
연관 규칙(Association Rules)  (0) 2022.06.09
K-평균 군집(K-means Clustering) 1  (0) 2022.06.09
Random Forest  (0) 2022.06.08
의사결정 나무(Decision Tree)  (0) 2022.06.08

관련글 더보기