새싹일지

0624 새싹일지

gamnyam 2024. 6. 24. 16:12

<오전>

 

폴란드 부도 데이터셋 분석 보고서 실습

 

비대칭문제 해결 전 후 비교하는게 좋음

 

63까지 있는 데이터를 저차원 투영

 

머신러닝에 있는 데이터로 머신러닝이 학습(기계로 만든 데이터를 기계가 학습)

-> 성능이 조금 낮아질 순 있지만 그래도 이렇게 하는게 나음.

 

지피티에 데이터셋 때려놓고 학습

 

파이프라인 만드는 방법 두 가지

 

- pipeline의 pipeline(사이킷런)

- make_pipeline

 

 

  • Pipeline vs make_pipeline:
    • 첫 번째 코드는 Pipeline 클래스를 사용하여 파이프라인을 수동으로 정의합니다.
    • 두 번째 코드는 make_pipeline 함수를 사용하여 간단하게 파이프라인을 정의합니다. make_pipeline은 자동으로 각 단계에 이름을 할당합니다.

 

한경 크롤링 실습 간단 설명

 

6. Decision Tree

스무고개랑 비슷

질문을 계속 던져 피쳐를 분류

터미널 노드 : 마지막 노드

중간 노드 : desicion node

상위 노드 : root node

 

impurity : 불순도

될 수 있으면 불순도가 낮은 상태로 분류

불순도를 측정하는 것은 매우 중요

 

p_k : 확률

 

log1 = 0

 

엔트로피 : 좋긴하나 민감

지니인덱스 : 적당

미스클래지피케이션 에러 : 성능 안좋음

=> 결론 : 지니인덱스 주로 사용

 

불순도가 0으로 가는 것이 최종목적

 

트리가 어떻게 예측을 만들어내는지 살펴보기

주황색 : 50 세토사가 50개 있다

gini = 0.5 반반씩 섞여있다

 

너무 세밀하게 분류되면 오버피팅 문제, 컴퓨팅 파워 문제 있음

 

cart알고리즘 : 트리를 성장시키기 위하나 알고리즘

 

주요 파라미터

max_depth : 최대 깊이가 커질수록 분류가 많이 된다.

max_features : 루트 개나 로그 개 만큼 피쳐 선정

 

규제를 만드는 이유 : 오버피팅을 막기 위해

 

<오후>

 

Decision Tree Regression(회귀결정트리)

규제가 너무 없으면 오버피팅

 

 

지금까지 logistic regresser/SVM/KNN/D-TREE

 

앙상블

같이 써서 좋은 성적을 내자

 

동질적 객체 학습기

랜덤 포레스트 : 트리모델을 또 다른 트리 모델과 합침. 또 다른 트리모델 + 

트리모델이 여러개인 동질학습기

 

tree + tree + tree

svm + svm + svm

 

 

이질적 객체 학습기

tree + svm

 

샘플링

중복 허용

중복 허용x

샘플링을 어떻게 하느냐에 따라 결과가 달라짐

복원된 결과에 따라 : 복원추출된 데이터

 

 

Probability Voting(Soft Voting) : 가중치 만큼 곱한다음 평균

잘하는 애들의 의견을 조금 더 반영

 

bagging, boosting은 알고 있기

 

부스팅 : 내가 이거했는데 틀렸으니까 너 할 때 유의해 -> 너도 유의해-> 이러면서 점점 좋아짐

 

부트스트래핑 : 중복을 허용하여 리샘플링

페이스팅은 중복 허용 안함

 

Bagging (bootstrapping + aggregating)

 

디시젼 트리는 모든 피쳐를 고려하려함

랜덤포레스트는 피쳐를 랜덤으로 선택

 

원맨팀 : 디시젼트리

랜덤포레스트 : 훈련이 잘된 팀

 

OOB : 남은 데이터도 알뜰살뜰히 쓰겠다

 

bagging 은 랜덤하게 뽑아 병렬적으로 처리, 중복허용

 

boosting은 여러개의 약한 학습기를 잘 구슬려 좋은 학습기처럼 보이는 파이프라인처럼 만들어냄.

 

부스팅이랑 배깅 차이 ★

 

결론 : XGBoost가 짱이다.

부스팅 계열 알고리즘이 성능이 좋다.

 

---------------

 

Bagging과 Boosting은 모두 앙상블 학습 기법으로, 여러 약한 학습기를 결합하여 강력한 예측 모델을 만드는 방법입니다. 그러나 이 두 방법은 데이터 샘플링 및 모델 훈련 방식에서 중요한 차이점이 있습니다.

Bagging (Bootstrap Aggregating)

  1. 목적: 모델의 분산을 줄이고 과적합을 방지.
  2. 방식:
    • 여러 개의 학습 데이터를 무작위로 샘플링하여 서로 다른 부트스트랩 샘플을 생성합니다. 각 샘플은 원래 데이터 세트에서 복원 추출(중복을 허용)하여 생성됩니다.
    • 각 부트스트랩 샘플에 대해 독립적으로 학습기를 훈련시킵니다.
    • 훈련된 모든 학습기의 예측을 평균하거나 다수결 투표로 결합하여 최종 예측을 만듭니다.
  3. 대표 알고리즘: Random Forest.
  4. 특징:
    • 학습기들이 독립적으로 학습되므로 병렬 처리가 가능합니다.
    • 모델의 분산을 감소시키고 과적합을 줄이는 데 효과적입니다.

Boosting

  1. 목적: 모델의 편향을 줄이고 강력한 예측 성능을 제공.
  2. 방식:
    • 처음에 기본 학습기를 하나 훈련시킵니다.
    • 이후 반복적으로 이전 모델이 틀린 예측에 대해 더 큰 가중치를 부여하여 새로운 학습기를 훈련시킵니다. 즉, 잘못 예측된 샘플에 집중하여 점진적으로 모델 성능을 향상시킵니다.
    • 모든 학습기의 예측을 가중 평균하여 최종 예측을 만듭니다.
  3. 대표 알고리즘: AdaBoost, Gradient Boosting, XGBoost, LightGBM, CatBoost.
  4. 특징:
    • 학습기들이 순차적으로 학습되므로 병렬 처리하기 어렵습니다.
    • 모델의 편향을 줄이고 예측 성능을 극대화하는 데 효과적입니다.
    • 과적합의 위험이 있으므로 적절한 규제와 조기 종료 등의 기법이 필요합니다.

차이점 요약

  1. 데이터 샘플링 방식:
    • Bagging: 각 학습기는 원래 데이터 세트에서 복원 추출된 서로 다른 샘플을 사용하여 학습됩니다.
    • Boosting: 학습기들은 점진적으로 향상되며, 이전 학습기의 오류에 대해 더 높은 가중치를 부여하여 학습됩니다.
  2. 학습기 훈련 방식:
    • Bagging: 모든 학습기는 독립적으로 병렬로 학습됩니다.
    • Boosting: 학습기들은 순차적으로 학습되며, 각 학습기는 이전 학습기의 오류를 보완합니다.
  3. 목적:
    • Bagging: 분산 감소 및 과적합 방지.
    • Boosting: 편향 감소 및 예측 성능 향상.
  4. 결합 방식:
    • Bagging: 학습기의 예측을 평균하거나 다수결 투표로 결합.
    • Boosting: 학습기의 예측을 가중 평균하여 결합.

결론

Bagging과 Boosting은 서로 다른 목적과 방식을 가지지만, 모두 예측 성능을 향상시키기 위한 강력한 앙상블 기법입니다. 특정 문제에 따라 적절한 기법을 선택하는 것이 중요합니다. Bagging은 모델의 안정성을 높이고 과적합을 줄이는 데 유용하며, Boosting은 강력한 예측 성능을 제공하지만 과적합에 주의해야 합니다.

 

----------------------------

 

책 p.181~ 참고

 

실습 : 서비스_이탈예측_데이터(Classification)

[pythonML] feature scaling(피처 스케일링) -표준화(StandardScaler)/ 정규화 (MinMaxScaler)- 데이터 전처리 (tistory.com)

 

[pythonML] feature scaling(피처 스케일링) -표준화(StandardScaler)/ 정규화 (MinMaxScaler)- 데이터 전처리

# 데이터 전처리 기본 데이터 전처리 사항 결손 값 / 문자열 값 처리 이상치 제거 피처 선택 데이터 인코딩 레이블 인코딩 원-핫 인코딩 피처 스케일링 StandardScaler MinMaxScaler 피처 스케일링(feature S

resultofeffort.tistory.com

 

'새싹일지' 카테고리의 다른 글

0625 새싹일지  (0) 2024.06.25
깃허브 계정을 만들었다.  (0) 2024.06.24
0621 새싹일지  (0) 2024.06.21
0620 새싹일지  (0) 2024.06.20
0619 새싹일지  (0) 2024.06.19