이상치 찾기
Coddy Machine Learning 여정의 비지도 학습 섹션에 포함된 레슨. 51개 중 34번째.
이 장에서는 이상한 행을 찾아냅니다. 장을 마칠 때쯤이면 서버의 수상한 분을 동그라미로 표시하게 됩니다:
이상치는 나머지와 다른 드문 행입니다. 고장, 사기, 오타 등이 이에 해당합니다. 새로운 이상치는 모두 다르므로 미리 라벨을 지정할 수 없습니다.
z 점수부터 시작하세요. StandardScaler는 모든 열을 z 점수로 변환하므로, 한 줄로 값이 3을 초과하는 행을 모두 표시할 수 있습니다.
z = StandardScaler().fit_transform(X)
odd = (np.abs(z) > 3).sum(axis=1) > 0하지만 행은 각 열에서는 평범해도 조합에서는 특이할 수 있습니다. 열의 z 점수로는 이를 놓칩니다.
챌린지
중급한 슈퍼마켓에서 냉동고 80대의 하루 평균을 기록했습니다. 어떤 냉동고를 기술자가 점검해야 할까요? 프로그램은 임계값을 입력받습니다.
X의 모든 열을 z 점수로 변환합니다.- 각 열에 대해, 해당 열에서 표시된 냉동고가 몇 대인지 출력합니다. z 점수가 0에서 임계값보다 더 멀리 떨어져 있습니다.
- 열 중 하나라도 표시된 냉동고를 표에 있는 순서대로 모두 출력합니다.
다른 매장과 3의 경우:
temp_c: 1 flagged
power_kw: 2 flagged
door_openings: 0 flagged
defrost_min: 0 flagged
Freezers to check:
F05
F13
F51직접 해보기
import numpy as np
import pandas as pd
from sklearn.preprocessing import StandardScaler
# 냉동 진열대당 한 행: 하루 평균값
freezers = pd.read_csv("freezers.csv")
columns = ["temp_c", "power_kw", "door_openings", "defrost_min"]
X = freezers[columns]
cutoff = float(input())
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
비지도 학습의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러