티스토리 뷰

 

 

※ Extra 모델을 불러온 후, cross_val_predict로 예측 및 평가하고, cross validation 기법을 사용하여 모델을 평가.

 

 

 

📝 train_test_split()

  • arrays : 분할시킬 데이터
  • test_size : 테스트 셋의 비율 (default = 0.25)
  • train_size : 학습 데이터 셋의 비율
  • random_state : 고정할 seed값
  • shuffle : 기존 데이터를 나누기 전에 순서를 섞을 것인지 (default=True)
  • stratify : 지정한 데이터의 비율을 유지.  (= 층화표집)

 

 

 

 

 

 

📝 머신러닝 알고리즘의 데이터 : 문자 데이터를 사용할 수 없다.

★ 머신러닝 알고리즘의 종류 종류예시
지도학습 분류
(Classification)
입력변수 X와 출력변수 Y가 주어졌을 때, 
미지의 데이터가 어떤 클래스에 속하는지
예측하는 문제.
- 로지스틱 회귀(Logistic Regression)
- K-최근접 이웃(K-Nearest Neighbors)
-서포트 벡터 머신
회귀
(Regression)
입력변수 X와 출력변수 Y가 주어졌을 때, 
미지의 데이터의 출력변수값을 예측하는
문제.
- 선형회귀(Linear Regression)
- 의사결정나무(Decision Tree)
- 랜덤포레스트(Random Forest)
- 그래디언트 부스팅
비지도학습 군집화
(Clustering)
입력변수 X가 주어졌을 때,
서로 유사한 데이터들을 묶는 문제.
- K-평균(K-Means)
- DBSCAN(Density-Based Spatial
Clustering of Applications with Noise)
차원축소
(Dimensionality
Reduction)
고차원의 데이터를 저차원으로 축소하는 문제 - 주성분 분석(PCA)
- 특이값 분해 (SVD)
강화학습 - 에이전트가 호나경과 상호작용하며, 
행동(Action)을 통해 보상을 최대화하는 문제.
- Q-러닝(Q-Learning)
- 딥 강화학습 (Deep Reinforcement
 Learning)

 

 

 

 

 

 

 

📝 sklearn.preprocessing.OneHotEncoder 매서드

 

sklearn.preprocessing.OneHotEncoder

Examples using sklearn.preprocessing.OneHotEncoder: Release Highlights for scikit-learn 1.1 Release Highlights for scikit-learn 1.1 Release Highlights for scikit-learn 1.0 Release Highlights for sc...

scikit-learn.org

 

 

 

 

 

 

 

📝binary encoding과 One hot encoding

  • binary encoding을 하면 One hot encoding을 굳이할 필요가 없어진다.
  • ※ binary 값을 찾는 방법
# 두 개의 값만 있는 컬럼만 추출해본다.

nuni = df.drop(columns=label_name).nunique()
bicols = nuni[nuni==2].index
bicols
  • One hot encoding을 할 때에는 필요한 'object' 데이터만 가져온다.
  • 기존에 binary encoding을 했던 데이터 및 변수는 제외한다.
  • 인코딩 결과는 'numpy array'형태로 나타난다.
df_train_ohe = pd.DataFrame(X_train_ohe.toarray(), columns=ohe.get_feature_names_out())
  • 인코딩한 값과 수치 데이터를 연결(concat) 하기 위해서는 같은 index를 사용하고 있어야 한다.
  • 각각 변수에 넣어준 후 concat.

 

 

 

 

 

 

📝 엑스트라 트리모델이란?

 : 더욱 랜덤한 포레스트로, 극도로 무작위화(Extremely Randomized)된 앙상블 러닝 모델.

  • Extra Trees : 임의분할
  • Random Forest : 최적분할
  • 결정트리(DecisionTree) 
  • 데이터 샘플 수와 특성 설정까지 랜덤으로 지정한다.

Extra Trees 회귀

from sklearn.ensemble import ExtraTreesRegressor

# Building the model
extra_reg = ExtraTreesRegressor()

# Training the model
extra_reg.fit(X, y)
 

더욱 랜덤한 포레스트-익스트림 랜덤 트리(ExtraTreesClassifier)

‘파이썬 라이브러리를을 활용한 머신러닝’ 2장의 지도학습에서 대표적인 앙상블 모델로 랜덤 포레스트를 소개하고 있습니다. 랜덤 포레스트는 부스트랩 샘플과 랜덤한 후보 특성들을 사용해

tensorflow.blog

 

 

 

 

 

 

 

📝머신러닝의 트리모델 종류  (출처 : chat gpt)

트리모델이란?

 : 머신러닝에서 분류(Classificastion)와 회귀(Regression)문제를 해결하는 데에 많이 사용되는 모델.

  입력 변수의 조건에 따라 데이터를 분할하며, 이를 통해 결과를 예측한다.

 

1. 결정트리(Decision Tree)

  • 가장 기본적인 트리모델로, 입력 변수를 기준으로 데이터를 분할하는 모델입니다.
  • 노드(Node)는 분할할 기준이 되는 입력 변수를 선택하며, 가지(Branch)는 각각의 선택지를 나타냅니다.
  • 분류와 회귀 모두에 적용 가능합니다.

 

2. 랜덤 포레스트(Random Forest)

  • 결정 트리를 여러 개 결합하여 만든 앙상블(Ensemble) 모델입니다.
  • 각 트리마다 무작위로 선택한 일부 입력 변수를 사용하여 분할을 수행하므로, 일반적으로 과대적합(Overfitting) 문제를 줄일 수 있습니다.
  • 분류와 회귀 모두에 적용 가능합니다.

 

3. 그래디언트 부스팅(Gradient Boosting)

  • 여러 개의 결정 트리를 순차적으로 학습시켜 오류를 최소화하는 방향으로 모델을 개선해 나가는 앙상블 모델입니다.
  • 이전 트리의 예측 결과와 실제 결과의 차이(잔차)를 새로운 입력 변수로 사용하여 다음 트리를 학습시킵니다.
  • 회귀 문제에서 성능이 뛰어나며, 분류 문제에서도 사용 가능합니다.

 

4. XGBoost(eXtreme Gradient Boosting)

  • 그래디언트 부스팅을 기반으로 하며, 더욱 빠르고 정확한 예측을 가능하게 한 모델입니다.
  • 일부 데이터의 가중치를 높이거나 낮추는 기능과 과적합을 방지하기 위한 정규화(Regularization) 기능이 추가됩니다.
  • 회귀와 분류 모두에 적용 가능합니다.

 

5. LightGBM(Light Gradient Boosting Machine)

  • XGBoost와 마찬가지로 그래디언트 부스팅을 기반으로 하며, 빠른 학습 속도와 높은 정확도를 제공하는 모델입니다.
  • 히스토그램 기반 근사치(Histogram-based Approximation) 알고리즘을 사용하여 빠르게 대용량 데이터셋을

 

★ 트리계열 알고리즘은 분할기법을 사용하기 때문에 스케일링 여부에 따라 성능의 차이가 크지 않다.

☆ 하지만 다른 알고리즘에서는 스케일링을 해야 성능이 잘 나오는 알고리즘도 있다.

 

 

 

 

 

 

 

 

📝 피처 중요도란?

# feature_importances_ 를 통해 모델의 피처 중요도를 추출합니다.
fi = pd.DataFrame(model.feature_importances_)
fi.index = model.feature_names_in_
fi = fi.sort_values(by=0)
  • 머신러닝 모델에서 각각의 피처(입력 변수)가 예측 결과에 영향을 미치는 정도를 나타내는 지표.
  • 모델이 예측을 할 때 어떤 피처가 가장 영향력이 큰지를 평가하는 것.
  • 결정트리 기반모델(Decision Tree) : 각 노드에서의 분할기준을 결정할 때 해당 피처의 중요도를 계산함.
  • 랜덤 포레스트(Random Forest) : 앙상블(Ensemble) 모델에서는 각각의 트리에서 계산된 피처 중요도를
                                                         평균하여 전체 모델의 피처 중요도를 계산함.
  •  피처 중요도를 계산하면, 모델의 예측 결과를 설명하거나 모델을 개선하는데 도움이 됨.

출처 : chat gpt

 

 

 

 

 

 

 

📝 Cross Validation  : 교차검증

(cross-validation)
(Hold-out-validation)

  • Cross-validation : 신뢰가 중요한 경우.    ex) 제품 출시 전 평가 등
              - test가 아닌 train 데이터 셋을 사용한다.
              - cross validation 은 실전 시험을 보기 전에 풀어보는 모의고사의 점수입니다.
                 test 는 실전 시험이기 때문에 모의고사에서 몇 점이 나왔는지를 보기위해 train 으로 점수를 평가합니다.
  • Hold-out-validation : 빠르게 모델을 평가하고자 할 때
 

sklearn.model_selection.cross_val_predict

Examples using sklearn.model_selection.cross_val_predict: Combine predictors using stacking Combine predictors using stacking Plotting Cross-Validated Predictions Plotting Cross-Validated Predictions

scikit-learn.org

 

 

 

 

 

 

 

 

📝 from sklearn.model_selection from  (_____________)

  • cross_val_predict : 예측 결과(추정치)만 반환, 점수를 직접 계산  => 다양한 측정 공식으로 점수 측정이 가능.
  • cross_val_score : 교차검증을 통한 예측 점수를 반환
  • cross_validate : 교차검증을 통해 지표를 평가하고 fit/score 시간도 기록.
  • n_jobs : 사용할 코어 수 지정 가능. 그러나, cpu 코어수보다 크게 지정하는 것은 도움이 되지 않음.
                'n_jobs = -1'로 지정하면 컴퓨터의 모든 코어를 사용함.
# n_jobs : int, default=None
#     Number of jobs to run in parallel. Training the estimator and
#     predicting are parallelized over the cross-validation splits.
#     ``None`` means 1 unless in a :obj:`joblib.parallel_backend` context.
#     ``-1`` means using all processors. See :term:`Glossary <n_jobs>`
#     for more details.

 

 

 

 

 

오늘의 복습 !

※ 머신러닝 알고리즘 알아보기

※ 트리 종류 개념 정리하고 비교하기

※ 피처중요도 알아보기

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/11   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
글 보관함