Menu
CoddyTech

fit 메서드

Coddy의 머신 러닝 입문 코스 레슨. 19개 중 10번째.

 

출처: 위키백과

challenge icon

챌린지

어려움

fit 메서드와 find_cluster_centroid를 구현하세요. find_cluster_centroid는 주어진 포인트 리스트(클러스터)의 중심점(centroid)을 찾습니다. 중심점을 찾는 방법에 대한 지침은 이전 레슨에 있습니다. fit을 구현하려면 다음 지침을 따르세요:

  1. 중심점 초기화: 먼저, 데이터셋에서 k개의 포인트를 초기 중심점으로 선택합니다. 테스트 케이스를 통과하려면 3번째, 5번째, 7번째, 9번째, … 포인트들을 초기 중심점으로 선택하세요 (k개의 포인트에 따라 다름).
  2. 클러스터 할당: 데이터셋의 각 포인트에 대해, 가장 가까운 중심점(유클리드 거리와 같은 거리 측정 방식 사용)을 찾아 해당 포인트를 그 클러스터에 할당합니다.
  3. 중심점 업데이트: 모든 포인트가 클러스터에 할당되면, 각 클러스터에 속한 모든 포인트의 평균을 내어 중심점을 다시 계산합니다.
  4. 2단계와 3단계 반복: 중심점이 더 이상 크게 변하지 않을 때까지 위의 단계들을 반복합니다. 새로운 중심점과 이전 중심점 사이의 거리가 0.01보다 작으면 중단합니다.

테스트 케이스 통과 방법:

  • 중심점들을 self.centroids 변수에 저장하세요.
  • 새로운 중심점들을 찾았을 때 새로운 중심점들과 이전 중심점들 사이의 총 거리가 0.01보다 작으면, 이전 중심점들을 유지하세요.
  • 중심점들의 순서가 중요합니다. 항상 중심점들을 처음부터 끝까지 순회하세요.
  • 테스트 케이스는 self.centroids를 출력하고 그것들이 올바른지 확인합니다.

직접 해보기

def euclidian_distance(point_a, point_b):
    return (sum([(point_a[i] - point_b[i])**2 for i in range(len(point_a))]))**0.5


    
class KMeans:
    def __init__(self, k):
        self.k = k

    def find_cluster_centroid(self, cluster_points):
    # 여기에 코드를 작성하세요

    def fit(self, X_train):
        # 여기에 코드를 작성하세요
        self.centroids = ...
    
    def predict(self, X_test):
        pass

머신 러닝 입문의 모든 레슨

직접 연습해 보세요: 온라인 Python 컴파일러