머신러닝의 종류: 지도학습 vs 비지도학습
머신러닝은 레이블(Label, 정답)
이 있는 데이터와 없는 데이터를 기반으로 학습하는 방식으로 나눌 수 있습니다.
지도학습
: 레이블이 있는 데이터를 사용해 예측 모델을 학습비지도학습
: 레이블이 없는 데이터에서 숨겨진 패턴을 발견
지도학습 예제: 분류
다음 예제는 Scikit-learn
으로 K-최근접 이웃(KNN) 분류기를 학습하는 방법을 보여줍니다.
K-최근접 이웃
알고리즘은 새로운 데이터 포인트의 클래스를 예측할 때 학습 데이터에서 가장 가까운 K개의 이웃을 참고하는 방식으로 동작합니다.
K-최근접 이웃 분류
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
# 데이터셋 불러오기
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(
iris.data, iris.target, test_size=0.2, random_state=42
)
# 모델 생성 및 학습
model = KNeighborsClassifier(n_neighbors=3)
model.fit(X_train, y_train)
# 정확도 평가
print("정확도:", model.score(X_test, y_test))
사용한 데이터셋은 Iris
(붓꽃) 데이터셋으로, 분류 과제에 자주 쓰이는 고전적인 예제입니다.
150개의 샘플과 4개의 특성(꽃받침 길이, 꽃받침 너비, 꽃잎 길이, 꽃잎 너비)을 포함하며, 목표 변수는 붓꽃의 품종입니다.
비지도학습 예제 – 군집화
다음 예제는 Scikit-learn
으로 K-평균(K-Means) 군집화를 수행하는 방법을 보여줍니다.
K-평균 알고리즘은 유사한 데이터 포인트를 그룹으로 묶어 데이터 내 패턴을 발견하는 데 사용됩니다.
K-평균 군집화
from sklearn.datasets import load_iris
from sklearn.cluster import KMeans
# 데이터셋 불러오기
iris = load_iris()
X_features = iris.data
# 모델 생성 및 학습
kmeans = KMeans(n_clusters=3, random_state=42)
kmeans.fit(X_features)
# 처음 10개 샘플의 군집 배정 결과 확인
print("군집 레이블:", kmeans.labels_[:10])
핵심 요약
지도학습
: 레이블이 있는 데이터를 사용해 예측 모델을 학습비지도학습
: 레이블이 없는 데이터에서 패턴을 탐색Scikit-learn
: 일관된 API로 두 방식 모두 쉽게 실습 가능
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!