실습 목표 와인 데이터셋을 통해 DecisionTreeClassifier, RandomForestClassifier, 그리고 AdaBoostClassifier, GradientBoostClassifier를 학습해보고자 한다. 와인 데이터 셋 가져오기(sklearn.datasets) from sklearn.datasets import load_wine wine = load_wine() sklearn.datasets에는 머신러닝을 위한 다양한 샘플 데이터들이 있다. 와인 등급 데이터는 분류(calssification)를 위한 데이터셋이다. load_wine() 함수를 이용하여 쉽게 로드할 수 있다. 로드된 데이터 셋은 pandas.DataFrame이 아닌sklearn.utils.Bunch 클래스 형태로 저장..
부스팅(boosting, hypothesis boosting) 부스팅은 약한 학습기를 여러개 연결하여 강한 학습기를 만드는 앙상블 방법이다. AdaBoost(Adaptive boosting) 이전 모델이 과소적합했던 훈련 샘플의 가중치를 더 높이는 방법. https://www.analyticsvidhya.com/blog/2022/01/introduction-to-adaboost-for-absolute-beginners/ Introduction to AdaBoost for Absolute Beginners AdaBoost stands for Adaptive Boosting. It is a statistical classification algorithm that forms a committee of wea..
랜덤으로 선택된 수천 명의 사람에게 복잡한 질문을 하고 답을 모으면, 많은 경우 전문가의 수준의 답을 얻을 수 있다. 이러한 대중의 지혜를 머신 러닝에서도 찾을 수 있다. 투표 기반 분류기(Voting) 여러 개의 분류기를 통해 더 우수한 결론을 얻는 방법 - 직접 분류(hard voting) 같은 데이터를 서로 다른 예측기에 대입하고 , 다수결의 원칙으로 예측을 내는 방식 놀랍게도 다수결 투표 분류기가 앙상블에 포함된 개별 분류기 중 가장 뛰어난 것보다도 정확도가 높은 경우가 많다. 약한 학습기일지라도, 앙상블에 있는 약한 학습기가 충분하게 많고, 다양하다면 강한 학습기가 될 수 있다. (대수의 법칙) from sklearn.datasets import make_moons from sklearn.ens..
Precision(정밀도)는 전체 양성 예측 중 진양성의 비율이고, Recall(재현률)은 분류기가 정확하게 감지한 양성 레이블의 비율이다. Precision = Positive 예측의 정확도 Recall = 정확하게 감지한 Positive sample의 비율(민감도;Sensitivity, 진짜 양성 비율;True Positive Rate;TPR) 즉 FP이 높아질수록 Precision의 값이 낮아지고, NP이 높아질수록 Recall의 값이 작아진다. 위 그림의 예처럼 분류기의 결정임계값(thresholds)을 조정하면 그에 따라 Precision과 Recall의 값이 변한다. (Positive 예측의 범위를 넓히는 threshold를 설정하면, 음양성이 늘어나 정밀도가 낮아진다.) from sklear..
"The important thing isn't can you read music, it's can you hear it. Can you hear the music, Robert? Classfication Model Evaluation Metric 정확도(Accuracy) 오차행렬(Confusion Matrix) 정밀도(Precision) 재현율(Recall) F1 스코어 ROC AUC > 위에 나열된 성능지표들은 대체로 이진분류에서 더 강조하는 지표들 Accuracy HTML 삽입 미리보기할 수 없는 소스 "실제 데이터와 예측 데이터가 얼마나 같은가?" 를 표현한 하는 판단 지표 그러나 정확도는 데이터셋의 분포에 따라 왜곡을 발생시킬 수 도 있다. 특히 데이터 분포도가 균일하지 않은 경우 높은 수치가 ..
Label Encoding - 사이킷런의 LabelEncoder 클래스로 구현할 수 있다. LabelEncoder 또한, 다른 sklearn 객체와 같이, 객체 생성 후 fit, transform 호출하며 진행 from seaborn import load_dataset from sklearn.preprocessing import LabelEncoder penguin_df = load_dataset("penguins") encoder = LabelEncoder() #LabelEncoder 또한, 다른 sklearn 객체와 같이, 객체 생성 후 fit, transform 호출하며 진행 encoder.fit(penguin_df["species"]) labels = encoder.transform(penguin..
Skit- Learn의 기반 프레임워크 익히기 지도학습의 주요 두 축인 부류(Classification)과 회귀(Regression)의 다양한 알고리즘을 구현하는 과정에서 fit(), predict()을 활용하여 간단하게 학습과 예측 결과를 반환한다. Estimator 클래스 Estimator = Classifer(분류 알고리즘 sklearn 클래스) + Regression(회귀 알고리즘 on sklearn) - 내부에서 각각 fit과 predict를 구현하고 있음 - evaluation 함수(cross_val_score( ) 등), GridSearchCV와 같은 하이퍼 파라미터 튜닝을 지원하는 클래스 등에서 Estimator를 인자로 받음 (함수 내에서 인자로 받은 Estimator의 fit( )과 p..