AI 개발 공부 공간

AI, 머신러닝, 딥러닝, Python & PyTorch, 실전 프로젝트

머신러닝/머신러닝: 심화 내용 12

머신러닝 앙상블 기법 2 : 스태킹(Stacking)

1. 스태킹(Stacking) 스태킹(Stacking) 은 앙상블 학습의 한 방법으로, 여러 가지 모델의 예측 결과를 결합하여 최종적인 예측을 만드는 기법입니다.스태킹의 핵심 아이디어는 n개의 개별 모델들의 예측값을 새로운 특성으로 사용하여 최종 예측을 수행하는 1개의 메타 모델(meta model)을 학습하는 것입니다.  ※ 스태킹의 장점스태킹은 여러 모델의 강점을 결합하여 전반적인 예측 성능을 향상시키는 데 도움을 줍니다.※ 스태킹의 주의점여러 모델을 학습시키고 예측을 수행해야 하므로 계산 비용이 높을 수 있습니다.본 모델들의 예측 결과를 기반으로 메타 모델이 다시 예측을 수행하기 때문에, 과적합의 위험이 있습니다.2. 스태킹 코드2.1 데이터 준비import pandas as pdfrom sklea..

머신러닝 앙상블 기법 1 : 보팅(Voting)

1. 앙상블 기법 앙상블이란 여러 머신 러닝 모델을 결합하여 각각의 모델에서 발생할 수 있는 오류를 줄이고, 전체적인 예측 성능을 향상시키는 기법입니다. 앙상블 기법의 주요 장점으로는 성능 개선, 과적합 감소, 그리고 일반화 능력의 향상이 있습니다. 여러 모델의 예측을 결합함으로써 단일 모델보다 높은 정확도와 신뢰성을 달성할 수 있습니다. 또한, 다양한 모델을 결합함으로써 각 모델이 특정 데이터에 과적합되는 경향을 줄일 수 있으며, 서로 다른 모델들의 결합은 모델의 일반화 능력을 향상시켜 새로운 데이터에 대한 예측력을 강화합니다. 2. 보팅(Voting) 보팅은 다수결 원칙을 기계 학습 알고리즘에 적용한 방법으로, 여러 개의 분류 모델의 예측을 종합하여 최종 결정을 내리는 과정입니다. 보팅은 각 모델이..

LightGBM 모델

1. LightGBM(Light Gradient Boosting Machine)1.1 LightGBMLightGBM은 Microsoft에서 개발한 고성능 그래디언트 부스팅 프레임워크입니다.기존의 그래디언트 부스팅(Gradient Boosting) 방법론을 개선하여 대규모 데이터셋에서의 빠른 학습과 예측을 제공하도록 설계되었습니다.LightGBM은 특히 대규모 데이터와 복잡한 특징 공간을 가진 문제에서 빠른 처리 속도와 적은 메모리 사용을 강점으로 가집니다. 1.2. LightGBM 발전 역사GBDT(Gradient Boosting Decision Tree)는 널리 사용되는 기계 학습 알고리즘으로, 여러 효율적인 구현 중 하나가 XGBoost 모델입니다.이 알고리즘은 특징 차원이 높을 때와 모든 가능한 분..

피처 선택(Feature Selection)

1. 피처 선택(Feature Selection)모든 피처가 모델의 성능 향상에 도움을 주는 것은 아닙니다.불필요한 피처들이 많으면 모델이 데이터의 노이즈나 우연한 패턴까지 과도하게 학습하게 됩니다.이렇게 되면 새로운 데이터에 대한 예측성능이 떨어지게 됩니다.불필요한 피처가 많으면 모델이 데이터의 본질보다는 노이즈에 매몰되어 버립니다.이를 과적합(overfitting)이라고 합니다.따라서 중요한 피처들만 선별하여 사용하는 것이 바람직합니다.피처선택은 모델의 복잡도를 줄이고, 학습 시간을 단축하며, 모델의 해석을 용이하게 할 수 있는 매우 실용적으로 중요한 과정입니다.2. 피처 선택을 해야하는 상황1) 많은 수의 피처가 있는 경우각 피처의 영향력을 검증하지 않고 모든 피처를 모델에 사용하는 것은 처리 시간..

피처 중요도(Feature Importance)

1. 피처 중요도(Feature Importance)피처 중요도는 머신러닝에서 각 피처가 모델의 예측에 얼마나 중요한지를 나타내는 척도입니다.이는 모델이 결정을 내리는데 있어 각 피처가 얼마나 많은 영향을 미치는지 평가하는 것으로, 피처 중요도를 통해 어떤 피처들이 예측 변수에 가장 큰 영향을 미치는지 이해할 수 있습니다.2. 의사 결정 나무( Decision Tree Model ) 기반 모델과 피처 중요도 측정의사 결정 나무는 데이터를 분석하여 데이터 사이의 패턴을 학습하고, 나무 모양의 구조를 사용해 예측을 수행하는 머신러닝 모델입니다.간단히 말해서, 의사 결정 나무는 일련의 질문을 통해 데이터를 분류하거나 값을 예측합니다.이 질문들은 데이터의 피처에 기반하여 설정되며, 각 질문은 예 또는 아니오로 ..

피처 생성(Feature Generation) 2 : 다항식 피처 생성

1. 다항식(Polynomial) 피처 생성 다항식 피처 생성은 기존의 피처들을 사용하여 그 피처들의 고차항(제곱, 세제곱 등)과 피처 간의 상호작용 항을 추가함으로써 새로운 피처 셋을 만드는 기법입니다.이 기법을 통해 피처들의 복잡한 패턴과 비선형 관계를 포착할 수 있는 정보를 모델에 제공하는 역할을 하게 됩니다.2. 다항식(Polynomial) 피처 생성 코드2.1 데이터셋 불러오기import pandas as pd housing_df = pd.read_csv('californial_housing.csv')display(housing_df.head()) 2.2 'HouseAge'(주택연식), 'AveRooms'(평균방객수)와 'target' (주택가격)간의 상관관계 features_analysis =..

피처 생성(Feature Generation) 1 : Binning 기법

1. 피처 생성(Feature Generation)기존의 피처들만으로 충분한 예측력을 발휘하지 못한다면 피처 생성을 고려해보아야 합니다.피처 생성은 기존 데이터에서 새로운 의미를 찾아 내거나, 데이터의 관계를 재해석하여 새로운 피처를 만드는 과정입니다.이 과정을 통해 모델이 데이터를 더 잘 이해하고, 더 정확한 예측을 할 수 있도록 합니다.2. 피처 생성 과정피처 생성 과정은 EDA(탐색적 데이터 분석)로 시작합니다.이 단계에서는 데이터를 다양한 각도에서 관찰하고 분석하여, 숨겨진 패턴이나 관계를 발견하려고 합니다.통계적 분석, 시각화, 도메일 지식을 활용하는 것이 여기에 해당됩니다.새로운 피처를 생성한 뒤에는 생성된 피처가 실제로 유용한지, 모델의 성능을 실제로 개선하는지 검증하는 과정이 필요합니다.이..

분류 모델 하이퍼파라미터 튜닝

1. 분류 모델 하이퍼파라미터 튜닝1.1  데이터 생성 및 분할from sklearn.datasets import make_classificationfrom sklearn.model_selection import train_test_split# 랜덤변수를 이용해 분류용 가상 데이터 생성 X, y = make_classification(n_samples=1000, # 샘플 수 증가 n_features=20, # 특성 수 증가 n_informative=15, # 유익한 특성의 수 n_redundant=5, # 중복 특성의 수 ..

회귀 모델 하이퍼파라미터 튜닝

1. 하이퍼파라미터1.1 하이퍼파라미터하이퍼파라미터는 머신러닝 모델을 학습할 때 설정하는 외부 구성 값들을 의미합니다.이 값들은 모델 학습 과정 자체에 의해 학습되지 않으며, 모델의 성능에 큰 영향을 미칠 수 있습니다.하이퍼파라미터에는 학습률, 트리의 깊이, 배치 크기, 에포크 수 등이 있으며 사용할 모델의 종류마다 다릅니다. 1.2 하이퍼파라미터 튜닝하이퍼파라미터 튜닝은 이러한 파라미터들의 최적의 조합을 찾는 과정을 말하여, 이를 통해 모델의 성능을 최대화할 수 있습니다. 1.3 하이퍼파라미터 튜닝 코드(Ridge 모델의 알파값) 1)Ridge 모델 교차검증from sklearn.datasets import make_regressionfrom sklearn.model_selection import tr..

교차검증

1. 오버피팅(overfitting)1.1 오버피팅오버피팅이란 머신러닝에서 모델이 훈련 데이터에 지나치게 잘 맞춰져 있어, 새로운 또는 보이지 않는 데이터에 대해 일반화 하는 능력이 떨어지는 현상을 말합니다.즉, 모델이 훈련 데이터의 패턴뿐만 아니라 노이즈까지 학습해버려, 실제 세계의 복잡성과 변동성을 반영하는데 실패하는 상태입니다.오버피팅은 머신러닝 모델의 성능을 저하시키는 주요 원인 중 하나이며, 모델이 너무 복잡하거나 훈련데이터가 너무 적을때 자주 발생합니다.1.2 오버피팅의 발생 원인1) 모델의 복잡도가 너무 높은 경우모델의 복잡도는 모델이 가질 수 있는 학습능력의 정도를 의미합니다.복잡도가 높은 모델은 많은 수의 파라미터를 가지며, 더 복잡한 패턴을 학습할 수 있습니다.그러나 이러한 모델은 훈련..