본문 바로가기
728x90
반응형
SMALL

Machine Learning20

[Machine Learning] ExtraTree ExtraTree ExtraTrees는 기본적으로 의사결정나무를 기반으로 한 앙상블 학습 방법이다. RandomForest와 같은 ExtraTrees는 특정 결정과 데이터 하위 집합을 무작위로 지정하여 데이터의 과잉 학습과 과적합을 최소화한다. 트리 모델 비교 모델 분산 (Variance) 특징 Decision Tree 높음 단일 의사결정 트리는 일반적으로 하나의 의사결정 경로에서만 학습하기 때문에 학습 중인 데이터에 과적합된다. 단일 의사결정 트리를 통한 예측은 일반적으로 새 데이터에 대해 정확한 예측을 제공하지 않는다. Random Forest 중간 랜덤 포레스트 모델은 다음을 통해 무작위성을 도입하여 과적합 위험을 줄인다. 여러 트리 구축 (n_estimators) 교체를 통한 관찰 그리기(즉, 부.. 2024. 1. 3.
[Machine Learning] 클래스 가중치 (Class Weight) 클래스 가중치 (Class Weight) from sklearn.model_selection import GridSearchCV from sklearn.ensemble import RandomForestClassifier # 분류기와 파라미터 그리드 정의 classifier = RandomForestClassifier() param_grid = { 'class_weight': ['balanced', None], 'max_depth': [3, 5, 10], 'n_estimators': [80, 100, 150] } # GridSearchCV를 사용하여 최적의 파라미터 찾기 grid_search = GridSearchCV(classifier, param_grid, cv=5) grid_search.fit(X_.. 2023. 9. 22.
타겟 인코딩 (Target Encoding) Removing the First Level pd.concat 함수에는 drop_first라는 매개 변수도 포함되어 있는데, 첫 번째 수준을 제거함으로써 k-1 더미를 k개의 범주형 수준에서 벗어나게 할지 여부를 지정한다. 이 경우 첫 번째 수준인 area_a를 제거하고자 하는 이유는 보통 사용되지 않는 [0,0,0]의 인코딩을 사용함으로써 더 효율적인 인코딩을 제공한다. area를 단지 세 개의 열로 인코딩하고 a의 범주형 값을 [0,0,0]으로 매핑한다. import pandas as pd dummies = pd.get_dummies(['a', 'b', 'c', 'd'], prefix = 'area', drop_first = True) print(dummies) 위의 데이터에서 볼 수 있듯이 area.. 2023. 7. 27.
원핫 인코딩 (One-Hot-Encoding) Encoding Categorical Values as Dummies 범주형 값을 부호화하는 전통적인 방법은 더미 변수로 만드는 것이다. 이 기법은 one-hot-encoding이라고도 한다. csv를 다운 받는다. import pandas as pd df = pd.read_csv('jh-simple-dataset.csv', na_values = ['NA', '?']) pd.set_option('display.max_columns', 7) pd.set_option('display.max_rows', 5) display(df) area 열은 숫자가 아니므로 원핫 인코딩으로 인코딩해야 한다. 영역 수와 개별 값을 표시한다. 이 경우 영역 범주형 변수에는 4개의 값만 있다. areas = list(df['ar.. 2023. 7. 27.
[Machine Learning] Boosting Methods (1) Boosting Methods 앙상블 학습에서는 여러 학습 알고리즘으로 모델을 가장 성공적으로 훈련시키는 것을 목표로 한다. 앙상블 학습 중 하나인 배깅 방법에서는 동일한 데이터 세트의 서로 다른 하위 샘플에 두 개 이상의 모델을 병렬로 적용했다. 또한, 다른 방법이며 실제로 자주 사용되는 부스팅은 병렬 대신 순차적으로 구축되며 모델 훈련뿐만 아니라 알고리즘 훈련을 목표로 한다. 약한 알고리즘은 모델을 훈련시킨 다음 훈련 결과에 따라 재구성되고 학습하기 쉬워진다. 이 수정된 모델은 다음 알고리즘으로 전송되고 두 번째 알고리즘은 첫 번째 알고리즘보다 쉽게 학습된다. AdaBoost Adaptive Boost (Adaboost)는 의사 결정 나무에 기반한 분계점이 할당되고 분계점에 따라 예측이 이루어진다. .. 2023. 7. 11.
[Machine Learning] 그리드 탐색 (GridSearchCV) 그리드 탐색 (GridSearchCV) 머신 러닝에서 하이퍼파라미터란 간단하게 말해 사용자의 입력값 또는 설정 가능한 입력값이라고 이해할 수 있다. 사용할 데이터에 따라 가장 적합한 모델과 모델의 하이퍼파라미터값이 다르다. sklearn의 모듈 GridSearchCV는 머신 러닝 알고리즘에 사용되는 하이퍼 파라미터를 입력해 학습하고 검증하면서 가장 좋은 파라미터를 알려준다. 따라서, 학습하려는 하이퍼파라미터와 값 범위를 지정하기만 하면 GridSearchCV는 교차 검증을 사용하여 하이퍼파라미터 값의 가능한 모든 조합을 수행한다. 매개 변수 estimator 모델 객체 지정 param_grid 하이퍼파라미터 목록을 dictionary로 전달 scoring 평가 지표 cv 교차 검증시 fold 개수 n_j.. 2023. 7. 10.
[Machine Learning] Histogram-Based Gradient Boosting Ensembles Gradient Boosting Ensembles 부스팅은 트리 모델을 순차적으로 앙상블에 추가하는 앙상블 학습 알고리즘의 클래스를 말한다. 앙상블에 추가된 각 트리 모델은 앙상블에 이미 존재하는 트리 모델에 의해 발생한 예측 오류를 수정하려고 시도한다. 그레이디언트 부스팅은 AdaBoost와 같은 부스팅 알고리즘을 통계 프레임워크로 일반화하는 것으로, 훈련 과정을 가법 모델로 처리하고 임의 손실 함수를 사용할 수 있게 하여 기술의 능력을 크게 향상시킨다. 이와 같이 그레이디언트 부스팅 앙상블은 대부분의 구조화된 (ex: 표 형식 데이터) 예측 모델링 작업에 사용되는 기술이다. 그레이디언트 부스팅이 실제로 매우 잘 수행되지만 모델의 교육 속도가 느릴 수 있다. 이는 여러 CPU 코어를 활용하여 앙상블 멤.. 2023. 7. 7.
결측치 (Missing Values) / 특이치 (Outliers) 결측치 (Missing Values) 결측치는 기계 학습의 현실이다. 모든 데이터 행에는 모든 열에 대한 값이 있는 것이 이상적이다. 하지만, 이것은 거의 그렇지 않다. 일반적인 방법은 결측값을 해당 열의 중앙값으로 바꾸는 것이다. 이 프로그램은 중앙값 (median)을 계산한다. csv 파일을 다운받는다. import os import pandas as pd df = pd.read_csv('auto-mpg.csv', na_values = ['NA', '?']) print(f"horsepower has na? {pd.isnull(df['horsepower']).values.any()}") print("Filling missing values ...") med = df['horsepower'].median.. 2023. 5. 1.
[Machine Learning] K겹 교차 검증 (K-fold cross validation) K겹 교차 검증 (K-fold cross validation) k-fold cross-validation (k-겹 교차 검증)은 가장 널리 사용되는 교차 검증 방법의 하나로, 데이터를 k개로 분할한 뒤, k-1개를 학습용 데이터 세트로, 1개를 평가용 데이터 세트로 사용하는데, 이 방법을 k번 반복하여 k개의 성능 지표를 얻어내는 방법이다. k를 4로 설정하는 경우, 데이터를 폴드 (fold)라고 하는 거의 비슷한 크기의 부분 집합 네 개로 나눈다. 그 다음 일련의 모델을 만든다. 첫 번째 모델은 첫 번째 폴드를 평가용 데이터셋으로 사용하고, 두 번째부터 네 번째까지의 폴드 (3개의 폴드)를 학습용 데이터셋으로 사용한다. 그 다음 모델을 두 번째 폴드를 평가용, 1, 3, 4 폴드를 학습용 데이터셋으로 .. 2023. 4. 27.
[Machine Learning] 사용자기반 협업 필터링 (User-based Filtering) 사용자기반 협업 필터링 (User-based Filtering) import pandas as pd import numpy as np import seaborn as sns import matplotlib.pylab as plt from sklearn.metrics import mean_squared_error from datetime import datetime %matplotlib inline movies = pd.read_csv('movies.csv') # 영화 정보 ratings = pd.read_csv('ratings.csv') # 사용자가 영화에 대해 남긴 평점 데이터 print(movies.shape) print(ratings.shape) movies.head() # 제목으로 영화 찾기 mo.. 2022. 12. 7.
728x90
반응형
LIST