scikit-learn

scikit-learn의 지도학습 라이브러리

gggg21 2024. 12. 25. 08:07

1. clf.fit(x_train, y_train)

  • 의미: fit() 메서드는 분류기를 학습시키는 단계입니다.
    • x_train: 훈련 데이터의 특징(feature) 행렬입니다.
    • y_train: 훈련 데이터의 레이블(label) 벡터입니다.

랜덤 포레스트 분류기가 주어진 데이터를 기반으로 의사결정 트리(decision tree) 여러 개를 생성하고, 이를 조합해 예측할 준비를 합니다.


2. y_pred = clf.predict(x_test)

  • 의미: predict() 메서드는 학습된 모델을 사용해 테스트 데이터를 예측하는 단계입니다.
    • x_test: 테스트 데이터의 특징(feature) 행렬입니다.
    • y_pred: x_test에 대한 예측 결과(레이블)입니다.

3. clf.score(x_test, y_test)

  • 의미: score() 메서드는 모델의 정확도를 계산합니다.
    이 정확도는 테스트 데이터에서 예측된 결과(y_pred)와 실제 레이블(y_test) 간의 일치 비율로 계산됩니다.
    • x_test: 테스트 데이터의 특징(feature) 행렬입니다.
    • y_test: 테스트 데이터의 실제 레이블(label)입니다.

score()는 정확도(accuracy)를 반환합니다.

 

from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score

# 1. 모델 생성
clf = RandomForestClassifier()

# 2. 모델 학습
clf.fit(x_train, y_train)

# 3. 예측
y_pred = clf.predict(x_test)

# 4. 정확도 계산
accuracy = clf.score(x_test, y_test)
print(f"Model accuracy: {accuracy}")

주요 개념

  1. 랜덤 포레스트(Random Forest):
    • 다수의 의사결정 트리를 결합하여 더 높은 성능과 안정성을 제공하는 앙상블 학습 기법입니다.
    • 분류 문제에서는 투표(voting)를 통해 최종 예측값을 도출합니다.
  2. fit()와 predict():
    • fit()은 모델 학습(훈련) 과정.
    • predict()는 예측을 수행하는 과정.
  3. score():
    • 기본적으로 정확도(accuracy)를 반환하지만, 필요하면 다른 평가 지표(precision, recall, f1-score)를 사용할 수 있습니다.