Akashic Records

14.3 지도학습 본문

Python for Beginners

14.3 지도학습

Andrew's Akashic Records 2023. 4. 25. 12:26
728x90

지도학습(Supervised Learning)은 입력 데이터와 해당 데이터에 대한 정답 레이블(label)을 사용하여 기계학습 모델을 학습시키는 방법입니다. 지도학습은 크게 회귀(Regression)와 분류(Classification)로 나뉩니다. 회귀는 연속적인 값(예: 집 가격)을 예측하는 문제를 해결하고, 분류는 이산적인 클래스 레이블(예: 스팸 메일 여부)을 예측하는 문제를 해결합니다.

예제: 붓꽃(Iris) 데이터셋을 사용한 분류

이 예제에서는 Scikit-learn을 사용하여 붓꽃(Iris) 데이터셋에 대한 분류 모델을 만들어보겠습니다. 이 데이터셋은 3개의 붓꽃 종(setosa, versicolor, virginica)에 대한 꽃잎과 꽃받침의 너비와 길이를 담고 있습니다.

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score

# 데이터 불러오기
iris = load_iris()
X, y = iris.data, iris.target

# 데이터 분할
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 데이터 정규화
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

# 모델 선택 및 학습
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train_scaled, y_train)

# 예측 및 성능 평가
y_pred = knn.predict(X_test_scaled)
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy:.2f}")

위 예제에서는 붓꽃 데이터셋을 불러와서 K-최근접 이웃(K-Nearest Neighbors, KNN) 알고리즘을 사용하여 분류 모델을 학습시키고, 테스트 데이터에 대한 정확도를 계산하였습니다. 이 과정에서 데이터 분할과 정규화를 수행하였으며, Scikit-learn 라이브러리의 다양한 함수와 클래스를 사용하였습니다.

지도학습 알고리즘에는 KNN 외에도 선형 회귀(Linear Regression), 로지스틱 회귀(Logistic Regression), 서포트 벡터 머신(Support Vector Machine), 결정 트리(Decision Tree), 랜덤 포레스트(Random Forest) 등 다양한 방법이 있습니다. 문제와 데이터에 따라 적절한 알고리즘을 선택하여 모델을 학습시킬 수 있습니다.

728x90

'Python for Beginners' 카테고리의 다른 글

14.5 강화학습  (0) 2023.04.25
14.4 비지도학습  (0) 2023.04.25
14.2 scikit-learn 라이브러리  (0) 2023.04.25
14.1 기계학습 소개  (0) 2023.04.25
13.5 패키징 및 배포  (0) 2023.04.17
Comments