직접 값 바꾸기[7, 0, 3] 샘플을 추가하면 중심이 어느 방향으로 움직이는지 확인하세요.
흔한 실수라벨만 정렬하고 특징 행을 함께 옮기지 않으면 잘못된 클래스에 데이터가 들어갑니다.
짧은 확인클래스 중심을 구할 때 axis=0으로 평균내는 이유는 무엇일까요?
05
거리와 실패 사례로 단순 분류기의 한계를 읽는다
가장 가까운 중심의 라벨이 예측이지만 거리 자체도 중요합니다. 모든 중심에서 멀거나 두 중심의 거리가 비슷하면 확신하기 어렵습니다. 길이·밝기 같은 단순 특징은 이해하기 쉽지만 문맥과 모양을 충분히 담지 못하므로 실패 사례를 기록해야 합니다.
일상에서 보면가장 가까운 병원을 찾았어도 거리가 매우 멀다면 안전하다고 말하기 어려운 것과 같습니다.
import numpy as np
query = np.array([6.0, 0.0, 2.0])
center = np.array([5.0, 0.0, 1.5])
print(round(np.linalg.norm(query - center), 4))
실행 결과
1.118
한 줄씩 보기
질의 특징과 클래스 중심을 준비합니다.
두 벡터 차이의 길이를 계산합니다.
작은 거리일수록 중심과 비슷하다고 해석합니다.
직접 값 바꾸기query의 첫 특징을 20으로 바꾸고 거리가 얼마나 커지는지 확인하세요.
흔한 실수최근접 라벨이 나왔다는 사실만으로 예측이 충분히 신뢰할 만하다고 단정하면 안 됩니다.
짧은 확인예측 거리까지 함께 출력하면 어떤 실패를 발견할 수 있을까요?
02-1 · 단계별 따라 하기
텍스트를 숫자 특징으로 바꾸기
분류에 사용할 측정값을 정합니다.
문자열에서 각 특징을 계산합니다.
특징 순서를 고정합니다.
다른 문자열에도 같은 함수를 적용합니다.
def encode_text(text):
return [len(text), sum(1 for char in text if char.isdigit()), text.count('!')]
text = input()
features = encode_text(text)
print(f'길이: {features[0]}')
print(f'숫자: {features[1]}')
print(f'느낌표: {features[2]}')
print(f'특징: {features}')