Colab/머신러닝

13. GBoost 01

HicKee 2023. 3. 10. 15:11
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import GradientBoostingClassifier
# 정확도, 혼돈행렬(참, 예측), 리포트
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report

br_cancer = datasets.load_breast_cancer()
X = br_cancer.data
y = br_cancer.target

# 데이터 분리
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=124)

# 표준화 : 정규분포화
# 평균 0, 분산 1이 되도록 바꿔주는 것.
# 학습 전에 scaling하는 것
# 정규분포를 표준정규분포로 변환하는 것과 같음
# 가급적 쓰도록 하자

sc = StandardScaler()
X_train_sc = sc.fit_transform(X_train)
X_test_sc = sc.transform(X_test)

# 객체 생성 
model = GradientBoostingClassifier(max_depth=3, learning_rate=0.9, random_state=1234)
model.fit(X_train_sc, y_train) # 표준화 된 값을 넣도록 한다

y_pred = model.predict(X_test_sc) # 표준화 된 값을 넣도록 한다

print(accuracy_score(y_test, y_pred)) # 테스트 값, 예측값
print(confusion_matrix(y_test, y_pred)) # 열이 True 행이 예측값
print(classification_report(y_test, y_pred))

# 예측된 값이 정답과 얼마나 정확한지
# 정밀도 예측한 값에서 정답의 비율
# 재현율 정답을 정답이라고 예측 하였는지
더보기

0.9649122807017544
[[ 64   5]
 [  1 101]]
              precision    recall  f1-score   support

           0       0.98      0.93      0.96        69
           1       0.95      0.99      0.97       102

    accuracy                           0.96       171
   macro avg       0.97      0.96      0.96       171
weighted avg       0.97      0.96      0.96       171

 

'Colab > 머신러닝' 카테고리의 다른 글

15. XGBoost 01  (0) 2023.03.10
14. GBoost 02  (0) 2023.03.10
12. 부스팅(Boosting) 01  (0) 2023.03.09
11. 랜덤 포레스트 (random forest) 03  (0) 2023.03.09
10. 랜덤 포레스트 (random forest) 02  (0) 2023.03.09