Menu
CoddyTech

노이즈 포인트

Coddy Machine Learning 여정의 비지도 학습 섹션에 포함된 레슨. 51개 중 21번째.

모든 점이 군집에 속하는 것은 아닙니다. DBSCAN은 그런 점을 -1로 표시합니다. 바로 노이즈입니다. 공원에서 피크닉을 즐기는 사람들은 군집이고, 혼자 앉아 있는 사람들은 노이즈입니다:

네 무리의 색깔 있는 점으로 표시된 공원 지도. 각 무리의 크기는 16, 12, 20, 14이며, 그 사이사이에 흩어져 있는 회색 x 표시 아홉 개는 혼자 있는 사람들입니다

둘 다 세세요:

labels = DBSCAN(eps=3, min_samples=4).fit_predict(X)
print((labels == -1).sum())
print(labels.max() + 1)

이렇게 하면 9와 4가 출력됩니다. 노이즈는 -1이므로, 가장 큰 레이블에는 여전히 군집 수가 포함됩니다.

노이즈는 실패가 아닙니다. 종종 홀로 떨어진 점들이 이야기를 말해 줍니다. 등산로를 벗어난 등산객이나 다른 측정값과 다른 값처럼요.

challenge icon

챌린지

중급

순록은 GPS 목걸이를 착용합니다. 무리는 여러 마리가 모인 것이며, 혼자 있는 순록은 길을 잃었거나 다쳤을 수 있으므로 목동은 그런 순록을 먼저 찾아갑니다. 시작 코드는 입력에서 읽은 min_samples를 사용해 DBSCAN을 실행합니다.

  1. 무리가 몇 개인지 출력하세요.
  2. 혼자 있는 순록이 몇 마리인지 출력하세요.
  3. 확인할 수 있도록 순록의 태그를 목록으로 출력하세요.

다른 목동의 목걸이에 대해서는 다음과 같습니다.

Herds: 2
Lone reindeer: 3
Check on: ['R011', 'R027', 'R040']

더 큰 min_samples 값을 사용해 보세요. 더 엄격한 무리 기준을 적용하면 혼자 있는 순록이 더 많아집니다.

직접 해보기

import numpy as np
import pandas as pd
from sklearn.cluster import DBSCAN

# 새벽의 GPS 목걸이: 각 순록의 태그와 km 단위 위치
reindeer = pd.read_csv("reindeer.csv")
X = np.column_stack([reindeer["east_km"], reindeer["north_km"]])
min_samples = int(input())
labels = DBSCAN(eps=0.6, min_samples=min_samples).fit_predict(X)

# 아래에 코드를 작성하세요
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

비지도 학습의 모든 레슨

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