
Data Science
156
assert means == [-1, 0, 1]
assert stdevs == [2, 1, 0]
계산된 평균과 표준편차를 사용해서 새로운 데이터 행렬을 만들어 보자.
def rescale(data: List[Vector]) -> List[Vector]:
"""
각
열의
평균을
0,
표준편차를
1
로
변환하면서
입력되는
데이터의
척도를
조절
편차가
없는
열은
그대로
유지
"""
dim = len(data[0])
means, stdevs = scale(data)
#
각
벡터의
복사본을
생성
rescaled = [v[:] for v in data]
for v in rescaled:
for i in range(dim):
if stdevs[i] > 0:
v[i] = (v[i] - means[i]) / stdevs[i]
return rescaled
척도 조절 함수
rescale
이 우리가 예상한 대로 동작하는지 확인해 보자.
means, stdevs = scale(rescale(vectors))
assert means == [0, 0, 1]
assert stdevs == [1, 1, 0]
언제나 그렇듯, 척도를 조절할 때도 판단력이 필요하다. 모든 데이터 중에서 키
가
69
.
5
인치에서
70
.
5
인치 사이에 속하는 사람들의 키와