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 |