표준화
Coddy Machine Learning 여정의 머신러닝을 위한 통계 섹션에 포함된 레슨. 64개 중 49번째.
많은 모델은 모든 특성이 평균 0, 표준편차 1이 되도록 조정할 때 가장 잘 학습합니다. 표준화가 바로 이런 작업을 합니다. 각 값은 해당 열에서의 z 점수가 됩니다.
호박 다섯 개의 무게(kg)와 너비(cm):
브로드캐스팅은 모든 열을 한 번에 표준화합니다:
pumpkins = np.array([[30, 60],
[8, 30],
[22, 55],
[40, 65],
[15, 40]])
z = (pumpkins - pumpkins.mean(axis=0)) / pumpkins.std(axis=0)
print(np.round(z.mean(axis=0), 2))
print(np.round(z.std(axis=0), 2))다음과 같이 출력됩니다:
[0. 0.]
[1. 1.]확인하기 전에 반올림하세요. 반올림하지 않으면 평균이 0이어도 2.22044605e-17처럼 출력될 수 있는데, 이는 아주 작은 반올림 오차입니다.
min-max와 달리 고정된 범위가 없습니다. 대부분의 값은 -2와 2 사이에 위치합니다.
챌린지
중급낙농장에서 특이한 소를 찾아냅니다. cows의 각 행은 소 한 마리에 해당하며, 우유(하루 기준 리터), 체중(kg), 나이(년)가 features에 이름과 함께 들어 있습니다. 프로그램은 소의 위치 k를 읽습니다.
standardize(X)를 완성하세요. 그러면 검사 줄에서[0. 0. 0.]와[1. 1. 1.]을 출력합니다.- 부호는 무시하고 소
k의 z 점수 중 0에서 가장 먼 값을 찾아 아래와 같이 소수점 둘째 자리까지 출력하세요.
다른 농장의 소에 대해:
Column means: [0. 0. 0.]
Column stds: [1. 1. 1.]
Cow 2 stands out by weight: 1.76 std above the herd직접 해보기
import numpy as np
features = ["milk", "weight", "age"]
# 소 한 마리당 한 행: 우유 생산량은 하루 리터 단위, 체중은 kg 단위, 나이는 연 단위
cows = np.array([[28, 610, 6],
[22, 540, 3],
[35, 680, 6],
[31, 590, 9],
[19, 650, 4],
[26, 520, 2],
[30, 600, 7]])
k = int(input())
# 모든 열을 평균 0, 표준편차 1로 표준화한 X를 반환
def standardize(X):
# 아래 줄을 표준화 코드로 바꾸세요
return X
# 아래 세 줄은 함수를 검사하므로 변경하지 마세요
z = standardize(cows)
print("Column means:", np.round(z.mean(axis=0), 2))
print("Column stds:", np.round(z.std(axis=0), 2))
# 아래에 코드를 작성하세요: 소 k의 두드러진 특징은 무엇인가요?
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
머신러닝을 위한 통계의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러