[파이썬][scikit-learn] scikit-learn에서 분류 알고리즘

지금까지 scikit-learn을 사용하여 회귀 분석을 수행하는 방법에 대해 알아보았습니다. 이번에는 scikit-learn을 사용하여 분류 알고리즘을 구현하는 방법에 대해 살펴보겠습니다. 분류 알고리즘은 데이터를 주어진 클래스 레이블로 분류하는 것을 목표로 합니다.

Decision Tree (의사결정나무)

의사결정나무는 데이터의 특성들을 기반으로 분할 기준을 찾아가며 분류하는 알고리즘입니다. scikit-learn에서의 Decision Tree를 사용하여 분류 알고리즘을 구현해보겠습니다.

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score

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

# 데이터 나누기
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 의사결정나무 모델 생성
model = DecisionTreeClassifier()

# 모델 학습
model.fit(X_train, y_train)

# 예측
y_pred = model.predict(X_test)

# 정확도 계산
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy}")

Random Forest (랜덤 포레스트)

랜덤 포레스트는 여러 개의 의사결정나무 모델을 앙상블하여 분류하는 알고리즘입니다. scikit-learn에서의 Random Forest를 사용하여 분류 알고리즘을 구현해보겠습니다.

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score

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

# 데이터 나누기
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 랜덤 포레스트 모델 생성
model = RandomForestClassifier()

# 모델 학습
model.fit(X_train, y_train)

# 예측
y_pred = model.predict(X_test)

# 정확도 계산
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy}")

Support Vector Machine (SVM)

SVM은 데이터를 고차원 공간으로 매핑하여 최적의 경계를 구하는 알고리즘입니다. scikit-learn에서의 SVM을 사용하여 분류 알고리즘을 구현해보겠습니다.

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score

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

# 데이터 나누기
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# SVM 모델 생성
model = SVC()

# 모델 학습
model.fit(X_train, y_train)

# 예측
y_pred = model.predict(X_test)

# 정확도 계산
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy}")

이렇게 scikit-learn을 사용하여 분류 알고리즘을 구현할 수 있습니다. 의사결정나무, 랜덤 포레스트, SVM 등 다양한 알고리즘을 사용하여 데이터를 분류해보세요!