본문 바로가기

데이터 분석26

Ensemble(앙상블)(RandomForest, GB, HGB, XGB, LGBM) ◆ 랜덤포레스트 - 전체 샘플에서 랜덤샘플을 선택하는 방식 - 그레이언트 디센트의 샘플링과 동일 - 선택된 샘플이 다시 셋트로 돌아오며 이 방법을 부트스트랩 샘플링이라고 함 - 깊이가 얕고 트리를 많이 생성하는게 목적이다보니, 루트를 씌운 갯수만큼의 특성만 사용하여 최선의 분할을 선택해서 가지치기를 함 - 그 다음, 각 트리의 클래스별 확률을 평균내어 가장 높은 확률을 가진 클래스를 예측값으로 사용 ● 데이터 준비 ● 랜덤포레스트 모델 from sklearn.ensemble import RandomForestClassifier ● 훈련값 확인 rf.feature_importances_ # 컬럼별 중요도 ● OutOfBag 샘플 테스트 rf.oob_score_ # OutOfBag : 붓트스트랩(일정 개수 .. 2023. 12. 13.
Cross_Validation(교차검증) & GridSearchCV ◆ 교자검증과 그리드 서치 - 훈련셋으로훈련하고, 테스트셋으로 테스트하면서 과대, 과소적합 해결과 편향을 줄일 수 있음 - 하지만, 지속적인 테스트셋의 결과로 인한 수정은, 결국 테스트셋에 잘 맞는 모델이 만들어짐 ◆ Train Test split(홀드아웃) from sklearn.model_selection import train_test_split X_tr, X_val, y_tr, y_val = train_test_split(train, target, test_size= ) ◆ 교차검증 - 기본값 : 5 - 데이터를 나누어 검증셋을 돌아가면서 선택하며 학습 및 검증을 진행 from sklearn.model_selection import cross_validate cross_validate(model,.. 2023. 12. 13.
Decision_Tree(의사결정나무) ◆ 데이터 준비 ● 로지스틱 회귀 ◆ 결정트리 - XAI(AI의 의사결정을 사람이 이해하기 쉽게 설명하는 것)에서 많이 사용됨 from sklearn.tree import DecisionTreeClassifier dt = DecisionTreeClassifier() dt.fit() dt.score() ● 결정트리 그리기 import matplotlib.pyplot as plt from sklearn.tree import plot_tree plot_tree(dt) plt.show() ● 결정트리 구성 노드 : 나누는 질문을 하는 상자 루트노드 : 맨위 노드 리프노드 : 맨마지막 노드 gini : 편향, 불순도 - 0과 1의 비율 - 0.5에 가까울수록 잘 나눠지지 않은 것 / 0이나 1에 가까울수록 전 질.. 2023. 12. 12.
Stochastic Gradient Descent(SGD, 확률적 경사 하강법) ◆ 확률적 경사 하강법 - 머신러닝 모델이 아님 - 알고리즘을 학습할때 사용 - 머신러닝 알고리즘에 대한 최적의 매개변수 구성을 찾는 방법 - 손실함수 - 머신러닝 평가지표 - 어떻게 하면 손실이 적어질지 학습 -> 손실을 줄이기 위해 하나하나씩 학습 - 데이터가 끝나면 다시 데이터를 랜덤으로 뽑음(확률적) -> 한 사이클 : 1 epoch 미니배치하강법 - 조금도 많이씩 학습 배치하강법 - 모두 가져와 학습 ● 이진 크로스 엔트로피 손실함수 -> 분류모델의 손실값을 정의하는 함수 - 실제 샘플이 양성클래스면 1에 가까울수록 좋은 예측이므로 예측값에 -1을 곱해 음수를 취한다. 1에 가까울수록 작은 손실을 만들어 줄 수 있다. - 실제 샘플이 음성클래스면 0에 가까울수록 좋은 예측이므로 1에서 예측값을 .. 2023. 12. 12.