브로드캐스팅
Coddy Machine Learning 여정의 데이터와 시각화 섹션에 포함된 레슨. 60개 중 13번째.
모든 특성이 0을 중심으로 분포하면 모델이 더 잘 학습합니다. 따라서 각 열에서 해당 열의 평균을 빼면 NumPy가 평균을 모든 행에 복사합니다:
코드에서 세 사람의 키와 몸무게를 나타내면 다음과 같습니다.
data = np.array([[170, 60],
[180, 80],
[160, 70]])
print(data - data.mean(axis=0))다음이 출력됩니다:
[[ 0. -10.]
[ 10. 10.]
[-10. 0.]]그 복사 작업이 브로드캐스팅입니다. 이제 표가 중심화되었습니다. 각 값은 해당 열의 평균에서 얼마나 떨어져 있는지를 나타냅니다.
평균은 (2,) 형태입니다. (3, 2) 테이블의 각 열마다 값이 하나씩 있습니다. 길이가 다르면 오류가 발생하며 중단됩니다.
챌린지
쉬움피트니스 앱은 훈련 전에 모든 테이블을 중심화합니다. 시작 코드는 두 테이블인 users(특성 3개)와 workouts(특성 2개)에 center를 호출하고 결과를 출력합니다. 현재 center는 테이블을 변경하지 않고 반환합니다.
center를 완성하여 열의 개수와 관계없이 각 열의 평균을 해당 열에서 빼도록 하세요. 그 아래의 줄은 그대로 두세요.
사용자 2명과 운동 기록 2개가 있는 경우 출력은 다음과 같습니다.
Centered users:
[[-6. 7. -5.]
[ 6. -7. 5.]]
Column means after centering: [0. 0. 0.]
Centered workouts:
[[-10. -90.]
[ 10. 90.]]
Column means after centering: [0. 0.]직접 해보기
import numpy as np
def center(table):
# 각 열의 평균을 뺀 table을 반환하세요
# 아래에 코드를 작성하세요
return table
# 사용자당 한 행: 나이, 안정 시 심박수, 하루 운동 시간(분)
users = np.array([[25, 62, 30],
[31, 70, 45],
[40, 58, 20],
[29, 66, 25]])
# 운동당 한 행: 운동 시간(분), 소모한 칼로리
workouts = np.array([[30, 240],
[45, 410],
[20, 150],
[60, 520],
[35, 300]])
# 아래 줄은 변경하지 마세요
print("Centered users:")
print(center(users))
print("Column means after centering:", np.round(center(users).mean(axis=0), 2))
print("Centered workouts:")
print(center(workouts))
print("Column means after centering:", np.round(center(workouts).mean(axis=0), 2))
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
데이터와 시각화의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러