[AI-002][입문] 데이터셋·특징·라벨·학습과 추론 이해하기 > IT 기술 공유

본문 바로가기
사이트 내 전체검색

IT 기술 공유

[AI-002][입문] 데이터셋·특징·라벨·학습과 추론 이해하기

페이지 정보

profile_image
작성자 기술팀장
댓글 0건 조회 248회 작성일 26-08-30 01:33

본문

[이번 수업]

머신러닝에서 데이터셋, 특징, 라벨이 무엇인지 배우고 학습과 추론을 구분합니다. 외부 패키지 없이 작은 경계값 분류기를 학습해 처음 보는 입력을 예측합니다.

[선수지식]

AI-001의 인공지능·머신러닝·딥러닝 관계와 Python의 리스트·함수·반복문을 알면 됩니다. 예제 데이터는 모두 가상이며 실제 사람을 평가하지 않습니다.

[학습목표]

1. 샘플·특징·라벨·데이터셋을 구분한다.
2. 학습이 모델의 매개변수를 정하는 과정임을 설명한다.
3. 학습과 추론의 입력·출력을 비교한다.


[핵심개념]

데이터셋은 여러 샘플, 즉 관측 사례를 모은 것입니다. 표로 보면 한 행이 샘플이고 입력에 사용하는 열이 특징입니다. 사진의 픽셀, 온도, 공부시간처럼 모델이 판단에 쓰는 값이 특징입니다. 라벨은 예측하려는 목표값으로 합격 여부 같은 범주는 분류 라벨, 내일 온도 같은 연속 숫자는 회귀 목표가 됩니다.

모델은 특징을 결과로 바꾸는 규칙과 매개변수의 묶음입니다. 학습은 훈련 데이터에서 예측 오차를 줄이는 매개변수를 찾는 과정입니다. 아래 예제에서는 공부시간이 경계값 이상이면 1을 예측하며, 여러 경계 후보 중 정확도가 가장 높은 값을 고릅니다.

추론은 학습이 끝난 모델에 새 특징을 넣어 예측을 얻는 단계입니다. 이때 라벨은 입력으로 주지 않습니다. 운영 입력에도 학습 때와 같은 단위·열 순서·전처리를 적용해야 합니다. 학습 중 사용한 라벨이나 미래 정보를 특징에 섞으면 데이터 누수로 실제 성능보다 좋아 보일 수 있습니다.

데이터는 보통 훈련용, 검증용, 시험용으로 나눕니다. 같은 데이터를 반복해 보며 규칙을 고르면 그 데이터에만 맞는 과적합이 생깁니다. 학습 정확도가 높아도 새로운 환경에서 잘 동작한다는 보장은 없습니다.

[따라하기]

threshold_model.py에 다음을 저장하세요.

dataset = [
    {"hours": 1.0, "passed": 0},
    {"hours": 2.0, "passed": 0},
    {"hours": 2.5, "passed": 0},
    {"hours": 3.5, "passed": 1},
    {"hours": 4.0, "passed": 1},
    {"hours": 5.0, "passed": 1},
]

candidates = [1.5, 2.25, 3.0, 3.75, 4.5]

def predict(hours, threshold):
    return int(hours >= threshold)

def accuracy(threshold):
    correct = sum(
        predict(row["hours"], threshold) == row["passed"]
        for row in dataset
    )
    return correct / len(dataset)

best = max(candidates, key=accuracy)
print("best threshold:", best)
print("training accuracy:", accuracy(best))

for hours in [2.8, 4.2]:
    print(hours, "hours ->", predict(hours, best))

Windows는 py threshold_model.py, macOS·Linux는 python3 threshold_model.py로 실행합니다. 예상 결과는 다음과 같습니다.

best threshold: 3.0
training accuracy: 1.0
2.8 hours -> 0
4.2 hours -> 1

경계값 3.0을 고르는 부분이 학습이고, 2.8과 4.2를 넣는 부분이 추론입니다. 정확도 1.0은 여섯 개 훈련 샘플에 모두 맞았다는 뜻일 뿐 실제 합격을 정확히 판단한다는 뜻이 아닙니다.

[흔한 실수]

첫째, 특징과 라벨을 뒤바꿉니다. 둘째, 학습에 사용한 데이터로만 성능을 보고 일반화됐다고 생각합니다. 셋째, 시험 데이터를 보며 모델을 계속 고쳐 시험이 검증 데이터가 됩니다. 넷째, 빈 값·단위·범주 표현을 학습과 추론에서 다르게 처리합니다.

[보안 주의]

데이터 수집 목적과 사용 권한을 확인하고 필요한 값만 모으세요. 개인정보·비밀키·인증정보를 데이터셋이나 모델 파일에 넣지 않습니다. 출처, 수집 시점, 처리 과정을 기록하고 비정상 입력이나 오염된 라벨을 점검해 데이터 중독 위험을 줄입니다. 채용·의료·금융처럼 영향이 큰 판단에는 단순 예제를 사용하지 말고 전문 검토, 공정성 평가, 설명, 이의제기와 사람의 감독을 마련합니다. 실습은 가상 데이터로 로컬에서만 진행합니다.

[직접 해볼 과제]

{"hours": 3.1, "passed": 0} 샘플을 추가해 최적 경계값과 정확도가 어떻게 달라지는지 확인하세요. 이어서 이 데이터에서 빠진 특징 세 가지와 실제 평가에 사용할 수 없는 이유를 적으세요.

[확인문제]

1. 이 예제의 특징, 라벨, 학습된 매개변수는 각각 무엇인가요?
2. 학습과 추론에서 라벨 사용 여부는 어떻게 다른가요?
3. 시험 데이터를 보며 모델을 계속 수정하면 왜 성능 평가가 왜곡되나요?

[다음 학습]

순환 커리큘럼의 다음 글은 DATA-002 CSV·JSON·Parquet과 스키마입니다. AI 트랙에서는 AI-003 지도학습·비지도학습·강화학습으로 이어집니다.

[공식 참고 자료]

scikit-learn 용어집
https://scikit-learn.org/stable/glossary.html

scikit-learn 흔한 실수와 권장 사례
https://scikit-learn.org/stable/common_pitfalls.html

scikit-learn 교차 검증
https://scikit-learn.org/stable/modules/cross_validation.html

Google 머신러닝 용어집
https://developers.google.com/machine-learning/glossary

NIST AI 위험관리 프레임워크
https://airc.nist.gov/airmf-resources/airmf/

댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

사이트 정보

회사명 : 회사명 / 대표 : 대표자명
주소 : OO도 OO시 OO구 OO동 123-45
사업자 등록번호 : 123-45-67890
전화 : 02-123-4567 팩스 : 02-123-4568
통신판매업신고번호 : 제 OO구 - 123호
개인정보관리책임자 : 정보책임자명

접속자집계

오늘
779
어제
5,103
최대
16,772
전체
771,833
Copyright © 소유하신 도메인. All rights reserved.