IT/Machine Learning
머신러닝의 기초: 지도학습 개념 및 예시 코드
carpe08
2024. 1. 20. 16:52
320x100
1. 지도 학습이란?
지도 학습(Supervised Learning)은 입력 데이터(특징)와 정답(레이블)을 활용하여 모델을 학습시키는 기계 학습 방법입니다. 주어진 데이터에서 패턴을 찾아 새로운 입력에 대한 예측을 수행할 수 있도록 모델을 훈련하는 방식입니다.
지도 학습은 크게 두 가지 유형으로 나뉩니다:
- 분류(Classification): 데이터를 미리 정의된 여러 개의 클래스 중 하나로 분류하는 문제 (예: 스팸 메일 분류)
- 회귀(Regression): 연속적인 값을 예측하는 문제 (예: 주택 가격 예측)
2. 분류(Classification) 예제: 이메일 스팸 필터링
🔹 문제 정의
- 입력 데이터: 이메일 텍스트 내용
- 레이블: 스팸(1) 또는 정상(0)
🔹 코드 구현
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import accuracy_score
# 샘플 데이터 (예제용, 실제로는 더 큰 데이터셋 필요)
email_texts = ["Free money now!!!", "Hi, how are you?", "Claim your prize today!", "Meeting at 3 PM"]
labels = [1, 0, 1, 0] # 1: 스팸, 0: 정상
# 데이터 분할
X_train, X_test, y_train, y_test = train_test_split(email_texts, labels, test_size=0.2, random_state=42)
# 텍스트 데이터를 벡터화
vectorizer = CountVectorizer()
X_train_vec = vectorizer.fit_transform(X_train)
X_test_vec = vectorizer.transform(X_test)
# 나이브 베이즈 모델 학습
classifier = MultinomialNB()
classifier.fit(X_train_vec, y_train)
# 예측 및 평가
predictions = classifier.predict(X_test_vec)
accuracy = accuracy_score(y_test, predictions)
print(f"Accuracy: {accuracy}")
✅ 주요 과정
- 데이터를 훈련 세트와 테스트 세트로 나눔
- 텍스트 데이터를 수치화(벡터화)
- 나이브 베이즈(Naive Bayes) 모델을 사용하여 학습
- 테스트 데이터로 성능 평가
3. 회귀(Regression) 예제: 주택 가격 예측
🔹 문제 정의
- 입력 데이터: 주택의 특징(면적, 방 개수 등)
- 레이블: 주택 가격(연속적인 값)
🔹 코드 구현
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_absolute_error
import numpy as np
# 샘플 데이터 (면적, 방 개수, 가격)
data = np.array([
[1400, 3, 240000],
[1600, 4, 270000],
[1700, 3, 310000],
[1875, 3, 330000]
])
# 특성과 타겟 분리
X = data[:, :2] # 면적, 방 개수
y = data[:, 2] # 가격
# 데이터 분할
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 선형 회귀 모델 학습
model = LinearRegression()
model.fit(X_train, y_train)
# 예측 및 평가
predictions = model.predict(X_test)
mae = mean_absolute_error(y_test, predictions)
print(f"Mean Absolute Error: {mae}")
✅ 주요 과정
- 주택 데이터를 훈련 세트와 테스트 세트로 분할
- 선형 회귀 모델 학습
- 테스트 데이터로 예측 수행 및 평가
4. 지도 학습의 장점과 단점
장점 설명
높은 정확도 | 라벨이 주어져 있어 학습 효과가 높음 |
다양한 응용 가능성 | 분류, 회귀, 텍스트 분석, 이미지 인식 등 다양한 분야에 적용 가능 |
해석 가능성 | 일부 모델(선형 회귀 등)은 결과를 해석하기 용이함 |
단점 설명
라벨링된 데이터 필요 | 데이터 수집 및 라벨링 비용이 높음 |
과적합 가능성 | 훈련 데이터에 너무 맞추면 새로운 데이터에 대한 성능이 저하됨 |
비선형 문제 한계 | 간단한 모델(예: 선형 회귀)은 복잡한 데이터 패턴을 잘 학습하지 못함 |
5. 지도 학습 활용 사례
✅ 의료 진단
- 환자 데이터를 기반으로 질병을 예측하는 모델 개발
✅ 금융 예측
- 신용 점수 평가, 주식 가격 예측 등 금융 데이터 분석
✅ 자연어 처리
- 텍스트 분류, 감성 분석, 기계 번역 등 다양한 NLP 응용
결론
지도 학습은 강력한 기계 학습 방법으로, 다양한 문제를 해결하는 데 활용됩니다. 높은 정확도와 적용 범위가 넓지만, 데이터 라벨링의 어려움과 과적합 가능성에 유의해야 합니다. 적절한 모델 선택과 데이터 처리 과정을 통해 최적의 성능을 확보하는 것이 중요합니다!
https://link.coupang.com/a/cpQy6K
머신 러닝 교과서 with 파이썬 사이킷런 텐서플로 개정 3판 - 클라우드/빅데이터 | 쿠팡
쿠팡에서 머신 러닝 교과서 with 파이썬 사이킷런 텐서플로 개정 3판 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 클라우드/빅데이터 제품도 바로 쿠팡에서 확인할 수 있습니다.
www.coupang.com
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
320x100
320x100