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