[python] scikit-learn을 사용한 정확도 평가

scikit-learn은 파이썬에서 머신 러닝을 수행하는 데 널리 사용되는 라이브러리입니다. 정확도(accuracy)는 머신 러닝 모델의 성능을 평가하는 가장 기본적인 지표 중 하나입니다. scikit-learn을 사용하여 모델의 정확도를 평가하는 방법을 배워보겠습니다.

데이터 준비

정확도를 평가하기 위해 먼저 데이터를 준비해야 합니다. 예를 들어, 붓꽃 데이터셋을 사용하여 붓꽃의 품종을 예측하는 분류 모델을 만들어보겠습니다.

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

# 붓꽃 데이터셋 로드
iris = load_iris()

# 특성(X)과 타겟 변수(y)로 나누기
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)

위 코드에서는 load_iris 함수를 사용하여 붓꽃 데이터셋을 로드하고, train_test_split 함수를 사용하여 데이터를 학습용과 테스트용으로 나누었습니다.

모델 학습과 예측

이제 모델을 학습하고 예측해야 합니다. 여기서는 scikit-learn에서 제공하는 RandomForestClassifier를 사용하여 붓꽃의 품종을 예측하는 모델을 만들어보겠습니다.

from sklearn.ensemble import RandomForestClassifier

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

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

# 모델 예측
y_pred = model.predict(X_test)

위 코드에서는 RandomForestClassifier를 사용하여 모델을 생성하고, fit 메소드를 호출하여 학습을 진행한 후에 predict 메소드를 사용하여 지정된 특성값에 대한 예측을 수행합니다.

정확도 평가

이제 학습된 모델의 성능을 평가하기 위해 정확도를 계산해보겠습니다.

from sklearn.metrics import accuracy_score

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

위 코드에서는 accuracy_score 함수를 사용하여 실제 값 y_test와 예측 값 y_pred를 비교하여 정확도를 계산합니다. 계산된 정확도를 출력합니다.

정확도는 0과 1 사이의 값으로 나타나며, 1에 가까울수록 모델의 성능이 좋다고 할 수 있습니다.

결론

scikit-learn을 사용하여 모델의 성능을 평가하는 방법을 배웠습니다. 정확도는 모델의 예측 성능을 간단히 평가할 수 있는 방법 중 하나입니다. 정확도를 평가함으로써 모델의 개선 가능성을 파악하고, 다른 모델과의 비교를 통해 최적의 모델을 선택할 수 있습니다.

참고 자료: