PROGRESS
12 / 17
단원
데이터 구조화: AI 전처리 17
데이터의 규칙: 예측 로직 14
옷의 시너스: 판단 로직 1
예와 아니오: 판단 로직 6
닮은꼴 찾기: 관계 로직 7
최적의 경로: 강화 로직 7
층층이 지능: 신경망 로직 7
전체 목록
QUESTION 12 #335
데이터셋에서 기온(0번 인덱스)이 25도 이상인 데이터의 판매량(y)만 추출하려고 합니다. 조건문을 완성해 보세요.
main.py
dataset = [[20, 70, 50], [25, 80, 80], [30, 85, 110]]
hot_y = []
for row in dataset:
if row[0] 25:
hot_y.append(row[2])
print(hot_y)
HINT
크거나 같다를 의미하는 비교 연산자를 입력하세요.
실행 결과 예시
[80, 110]
INTERACTIVE SHELL
Shift + Enter 로 즉시 실행
🧪 데이터 필터링
모든 데이터를 다 사용하는 것이 아니라, 특정 조건에 맞는 데이터만 골라내어 모델을 학습시켜야 할 때가 있습니다.
기본 필터링 패턴
dataset = [[20, 70, 50], [25, 80, 80], [30, 85, 110]]
hot_y = []
for row in dataset:
if row[0] >= 25: # 조건: 기온 25도 이상
hot_y.append(row[2]) # 판매량만 추출
print(hot_y) # [80, 110]
단계별 실행 과정
| 반복 | row | row[0] (기온) | 조건 (>= 25) | 결과 |
|---|---|---|---|---|
| 1회 | [20, 70, 50] | 20 | False | 건너뜀 |
| 2회 | [25, 80, 80] | 25 | True | 80 추가 |
| 3회 | [30, 85, 110] | 30 | True | 110 추가 |
리스트 컴프리헨션으로 간결하게
# for문 방식
hot_y = []
for row in dataset:
if row[0] >= 25:
hot_y.append(row[2])
# 리스트 컴프리헨션 방식 (동일한 결과)
hot_y = [row[2] for row in dataset if row[0] >= 25]
다양한 필터링 조건
# 기온 25도 이상 AND 습도 80 이상
filtered = [row for row in dataset if row[0] >= 25 and row[1] >= 80]
# 판매량 100 미만인 데이터만
low_sales = [row for row in dataset if row[-1] < 100]
# 기온이 20도 또는 30도인 데이터
specific = [row for row in dataset if row[0] in [20, 30]]
머신러닝에서의 필터링 활용
| 상황 | 필터링 조건 | 이유 |
|---|---|---|
| 이상값 제거 | 판매량 > 1000 제외 | 비정상 데이터가 학습을 방해 |
| 특정 기간 추출 | 날짜 >= 2024-01-01 | 최근 데이터만 학습 |
| 결측치 제거 | 값 != None | 빈 데이터는 학습 불가 |
데이터 필터링은 데이터 전처리의 핵심 단계이며, 좋은 필터링이 좋은 모델을 만듭니다.