Min-Max 스케일링
Coddy Machine Learning 여정의 머신러닝을 위한 통계 섹션에 포함된 레슨. 64개 중 48번째.
최솟값-최댓값 스케일링은 모든 특성이 공정하게 반영되도록 합니다. 각 열에서 가장 작은 값은 0이 되고, 가장 큰 값은 1이 되며, 나머지 값은 그 사이에 놓입니다.
연 소득이 $80,000인 40세 고객을 추가한 다음, 네 항목 모두를 스케일링하세요:
브로드캐스팅을 사용하면 각 열의 최솟값과 범위를 이용해 한 줄로 처리할 수 있습니다:
X = np.array([[25, 52000],
[61, 53000],
[26, 55000],
[40, 80000]])
lows = X.min(axis=0)
highs = X.max(axis=0)
scaled = (X - lows) / (highs - lows)이제 나이도 반영됩니다. 고객 0의 최근접 이웃은 더 이상 61세인 사람이 아닙니다:
하나의 극단값이 1이 되고 나머지 값들은 0에 가깝게 압축되므로, min-max는 이상치가 없는 열에 적합합니다.
챌린지
중급로스터는 비슷하게 추출되는 커피를 매칭합니다. beans의 각 행은 커피 하나를 나타냅니다. 물의 온도(C), 추출 시간(s), 카페인 함량(mg)입니다. 프로그램은 위치 i와 j를 읽습니다. 시작 코드의 distance(a, b)는 두 샘플 사이의 거리를 측정합니다.
beans를 최솟값-최댓값 스케일링하세요.Every column from 0 to 1:을 출력한 다음, 스케일링된 표를 소수점 이하 2자리까지 출력하세요.- 아래와 같이 스케일링 전후의 두 커피 사이 거리를 출력하세요.
다른 커피 세 개에 대해 위치 0과 1을 지정하면 다음과 같습니다.
Every column from 0 to 1:
[[1. 1. 0.67]
[0.5 0.5 0. ]
[0. 0. 1. ]]
Coffees 0 and 1: 63.28 apart before scaling, 0.97 after직접 해보기
import numpy as np
# 두 샘플 사이의 거리를 반환합니다(Why Scale Features에서 가져옴)
def distance(a, b):
return np.sqrt(((a - b) ** 2).sum())
# 커피 한 잔당 한 행: 물 온도(C), 추출 시간(초), 카페인 함량(mg)
beans = np.array([[88, 120, 60],
[96, 300, 30],
[86, 90, 70],
[94, 240, 120],
[90, 180, 90],
[84, 60, 50]])
i = int(input())
j = int(input())
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
머신러닝을 위한 통계의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러