<과목> 기계 학습 6 장 : 알고리즘 2 (k-means)

<과목> 기계 학습



목차
제1장:선형 회귀 모델
제2장:비선형 회귀 모델
제3장: 물류 회귀 모델
제4장:주성분 분석
제 5 장 : 알고리즘 1 (k 이웃 방법 (kNN))
제6장: 알고리즘 2(k-means)
제7장: 서포트 벡터 머신

제6장: 알고리즘 2(k-means)



k-평균법(k-means)이란?


  • 교사 없음 학습
  • 클러스터링 기법
  • 클러스터링 ... 특징과 비슷한 것을 그룹화

  • 주어진 데이터를 k 개의 클러스터로 분류

  • k-평균법(k-means) 알고리즘


  • 각 클러스터 중심의 초기 값 설정
  • 각 데이터 포인트에 대해 각 클러스터 중심과의 거리를 계산하고 가장 가까운 클러스터를 할당합니다.
  • 각 클러스터의 평균 벡터 (중심) 계산
  • 수렴 할 때까지 2, 3의 처리를 반복한다
  • 절차
  • 각 클러스터 중심의 초기 값 설정
  • 각 데이터 포인트에 대해 각 클러스터 중심과의 거리를 계산하고 가장 가까운 클러스터를 할당합니다.
  • 각 클러스터의 평균 벡터 (중심) 계산
  • 클러스터 재 할당 및 중심 업데이트를 반복합니다.

  • 중심의 초기 값을 변경하면 클러스터링 결과도 바뀔 수 있습니다
  • k 값을 변경하면 클러스터링 결과도 변경됩니다

  • (연습) k-means (k-means)를 사용하여 3 개의 클러스터로 분류


    #https://datahexa.com/kmeans-clustering-with-wine-dataset/参考
    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    from sklearn import cluster, preprocessing, datasets
    
    from sklearn.cluster import KMeans
    
    wine = datasets.load_wine()
    X = wine.data
    X.shape
    

    결과
    
    
    y=wine.target
    y.shape
    

    결과
    (178,)
    
    wine.target_names
    

    결과
    array(['class_0', 'class_1', 'class_2'], dtype='<U7')
    
    model = KMeans(n_clusters=3)
    labels = model.fit_predict(X)
    df = pd.DataFrame({'labels': labels})
    type(df)
    

    결과
    pandas.core.frame.DataFrame
    
    def species_label(theta):
        if theta == 0:
            return wine.target_names[0]
        if theta == 1:
            return wine.target_names[1]
        if theta == 2:
            return wine.target_names[2]
    df['species'] = [species_label(theta) for theta in wine.target]
    pd.crosstab(df['labels'], df['species'])
    



    관련 사이트
    제1장:선형 회귀 모델
    제2장:비선형 회귀 모델
    제3장: 물류 회귀 모델
    제4장:주성분 분석
    제 5 장 : 알고리즘 1 (k 이웃 방법 (kNN))
    제6장: 알고리즘 2(k-means)
    제7장: 서포트 벡터 머신

    좋은 웹페이지 즐겨찾기