본문 바로가기
반응형

전체 글39

[분석 방법론] Semi supervised Learning(2) - Self-Training & Co-Training 본 포스팅은 고려대학교 산업경영공학부 강필성 교수님의 [Korea University] Business Analytics (Graduate, IME654) 강의 중 05-2: Semi supervised Learning - Self-Training & Co-Training 영상을 보고 정리한 내용입니다. 1. Basic Self-Training 알고리즘 - 가정 : high-confidence predictions는 정답으로 볼 수 있음 - label된 \(X_l, y_l\)을 이용하여 \(y_l =f(x_l)\) 모형 생성하고, 생성한 모형을 이용하여 unlabel된 \(x_u\)에 대한 \(\hat{y_u}\)값을 도출 - 도출한 \(x_u, \hat{y_u}\)를 labeled data에 추가하고,.. 2023. 1. 12.
[분석 방법론] Semi supervised Learning(1) - Overview 본 포스팅은 고려대학교 산업경영공학부 강필성 교수님의 [Korea University] Business Analytics (Graduate, IME654) 강의 중 05-1: Semi supervised Learning - Overview 영상을 보고 정리한 내용입니다. 1. 머신러닝 분류 - Supervised Learning (지도학습) : 모든 데이터 객체에 설명변수(x)-종속변수(y) 쌍이 존재함, 설명변수로 종속변수를 잘 설명하는 모델을 만들고자 함 - Unsupervised Learning (비지도학습) : 데이터 객체에 종속변수(y)가 존재하지 않음, x만 가지고 데이터의 특징을 설명하는 모델을 만들고자 함, 데이터의 밀도를 추정할 수도 있고, 군집을 찾아낼 수도 있음 - Semi-super.. 2023. 1. 6.
[분석 방법론] Ensemble Learning(9) - CatBoost 본 포스팅은 고려대학교 산업경영공학부 강필성 교수님의 [Korea University] Business Analytics (Graduate, IME654) 강의 중 04-9: Ensemble Learning - CatBoost 영상을 보고 정리한 내용입니다. 0. GBM 요약 - 순차적으로 모형을 만들어 감, t 번째 부스팅 모형은 t-1까지 누적된 부스팅 모형에, 현재 t 시점에서의 모형 \(h^t\)에 가중치 \(\alpha\)를 곱하여 더하여 도출 - \(h^t\)는 정답값과 추정 값에 대하여 expectation loss를 최소화 하는 함수 h를 의미 - \(h^t\)는 loss functiond의 -gradient, \(-g^t(x,y)\)로 근사 가능 - least squares approxi.. 2023. 1. 1.
[분석 방법론] Ensemble Learning(8) - LightGBM 본 포스팅은 고려대학교 산업경영공학부 강필성 교수님의 [Korea University] Business Analytics (Graduate, IME654) 강의 중 04-8: Ensemble Learning - LightGBM영상을 보고 정리한 내용입니다. 1. LightGBM Idea - 기존 GBM 알고리즘은 1) 모든 feature에 대해, 2) 모든 객체(data instance)를 스캔하여 information gain을 추정하는 방식으로 가능한 split point들을 탐색 - 앞서 살펴봤던 XGBoost에서는 객체들을 "bucket"으로 구분하여 2) 모든 객체를 스캔 하는 부담을 줄였음 - LightGBM에서는 1) 모든 feature에 대해 스캔하는 부담을 줄이기 위해 "Exclusive.. 2023. 1. 1.
[분석 방법론] Ensemble Learning(6) - Gradient Boosting Machine(GBM) 본 포스팅은 고려대학교 산업경영공학부 강필성 교수님의 [Korea University] Business Analytics (Graduate, IME654) 강의 중 04-6: Ensemble Learning - Gradient Boosting(GBM) 영상을 보고 정리한 내용입니다. 1. Gradient Boosting 개요 - Gradient Descent : gradients를 이용해서 학습 - Boosting : weak model을 점진적으로 개선 - Regression, Classification, Ranking 문제에 모두 적용 가능 - Original GBM으로부터 XGBoost, LightGBM, CatBoost 파생 2. Gradient Boosting Idea - Regression에서.. 2022. 12. 28.
[분석 방법론] Ensemble Learning(7) - XGBoost 본 포스팅은 고려대학교 산업경영공학부 강필성 교수님의 [Korea University] Business Analytics (Graduate, IME654) 강의 중 04-7: Ensemble Learning - XGBoost 영상을 보고 정리한 내용입니다. 1. XGBoost 개요 - 어떻게 하면 original Gradient Boosting보다 빠르고, 더 많은 용량을 처리할 수 있을까? - 근사 기법을 적용함에 따라 GBM에 비해 약간의 성능 저하가 있을 수 있지만, 더 빠르게, 더 많은 데이터를 처리할 수 있음, 병렬 처리도 가능함 2. Split Finding Algorithm - Exact greedy algorithm : + 모든 가능한 split point를 탐색하기 때문에, 언제나 opt.. 2022. 12. 28.
[분석 방법론] Ensemble Learning(5) - Adaptive Boosting(AdaBoost) 본 포스팅은 고려대학교 산업경영공학부 강필성 교수님의 [Korea University] Business Analytics (Graduate, IME654) 강의 중 04-5: Ensemble Learning - Adaptive Boosting(AdaBoost) 영상을 보고 정리한 내용입니다. 1. AdaBoost Idea - random guessing보다 약간 더 잘하는 week model에 대하여, 앞선 모델이 잘 풀지 못했던 어려운 case에 가중치를 부여해서(reweight) 결국에는 strong model을 만들고자 함 - 모델 학습은 순차적으로 진행 - 분류 모델이라면 오분류된 example, 회귀 모델이라면 오차가 큰 example 을 찾아서, 새로운 training set에서 해당 exam.. 2022. 12. 12.
[분석 방법론] Ensemble Learning(4) - Random Forests 본 포스팅은 고려대학교 산업경영공학부 강필성 교수님의 [Korea University] Business Analytics (Graduate, IME654) 강의 중 04-4: Ensemble Learning - Random Forests 영상을 보고 정리한 내용입니다. 1. Random Forests 개요 - bagging 기법의 특수한 형태 - base learner는 decision tree - ensemble의 diversity를 확보하기 위해 bagging 기법을 사용하고, predictor variables(예측 변수)를 랜덤하게 선택함 * base learner가 decision tree인 단순 bagging과 차이가 있음 2. Random Forests 알고리즘 - 총 B개의 decision.. 2022. 12. 12.
[분석 방법론] Ensemble Learning(3) - Bagging 본 포스팅은 고려대학교 산업경영공학부 강필성 교수님의 [Korea University] Business Analytics (Graduate, IME654) 강의 중 04-3: Ensemble Learning - Bagging 영상을 보고 정리한 내용입니다. 1. K-fold data split - 데이터 관점의 다양성 확보 - 전체 데이터를 k개의 block으로 구분하고, 1개의 block씩 제외하며 학습 데이터셋을 구성 - 예를 들어, 첫 번째 모델에서는 1~(k-1) block을 학습 데이터셋으로 사용, 두 번째 모델에서는 1~(k-2), k block을 학습 데이터셋으로 사용... k 번째 모델에서는 2~k block을 학습 데이터셋으로 사용함 - \(f_i\)와 \(f_j\)는 (k-2)개의 bl.. 2022. 11. 29.
[분석 방법론] Ensemble Learning(2) - Bias-Variance Decomposition 본 포스팅은 고려대학교 산업경영공학부 강필성 교수님의 [Korea University] Business Analytics (Graduate, IME654) 강의 중 04-2: Ensemble Learning - Bias-Variance Decomposition 영상을 보고 정리한 내용입니다. 1. 현실 세계의 데이터는 "additive error" model에서 생성된다고 가정 - 정답 매커니즘과 더불어 사람이 어떻게 할 수 없는 노이즈가 포함되어 있는 모델로부터 데이터가 생성됨 - \(F^*(x)\) : 우리가 찾으려고 하지만, 실제로 알 수는 없는 target function - \(\epsilon\) : 노이즈, 독립적이고 동일한 분포로부터 생성 - \(\epsilon\)이 다르면 다른 데이터셋이 .. 2022. 11. 29.
[분석 방법론] Ensemble Learning(1) - Overview 본 포스팅은 고려대학교 산업경영공학부 강필성 교수님의 [Korea University] Business Analytics (Graduate, IME654) 강의 중 04-1: Ensemble Learning - Overview 영상을 보고 정리한 내용입니다. 1. Ensemble 이란? - 다양한 알고리즘을 조합하여 단일 알고리즘보다 성능을 높이는 기법 2. 단일 알고리즘의 한계 - 우리는 모든 데이터 셋에 대해 가장 우월한/열등한 성능을 가진 superior/inferior algorithm을 가지고 있는가? + 아니다. (No Free Lunch Theorem) - 특정 데이터 셋에 대해 어떠한 알고리즘이 좋은 성능을 가지고 있다면, 해당 알고리즘이 다른 알고리즘보다 우월해서가 아니라, 해당 데이터 .. 2022. 11. 23.
[분석 방법론] Anomaly Detection - Isolation Forest 본 포스팅은 고려대학교 산업경영공학부 강필성 교수님의 [Korea University] Business Analytics (Graduate, IME654) 강의 중 03-7: Anomaly Detection - Isolation Forest 영상을 보고 정리한 내용입니다. 1. Isolation Forest 개요 - 기본 가정 : abnormal 데이터는 normal 데이터보다 훨씬 적을 것이고, 매우 다른 속성을 가지고 있을 것 - 방법 : tree를 만들어서 데이터를 Isolate(고립) 시켜봄 + abnormal 데이터는 적은 split으로도 고립시킬 수 있음 + normal 데이터는 밀집되어 있기 때문에 훨씬 많은 split이 수행되어야 함 - 특징 : 임의의 변수를 선택하고, 임의의 데이터 포인.. 2022. 11. 23.
[Python] Visual Studio Code에서 가상환경 만들기 Python 가상환경 및 패키지 설치하는 방법 1. cmd terminal 열기 2. 가상환경 생성 2-1. venv를 사용하는 경우 python -m venv 가상환경이름 2-2. virtualenv를 사용하는 경우 python 버전 지정 가능 virtualenv 가상환경이름 --python=python3.9 3. 가상환경 활성화/비활성화 하는 방법 3-1. cmd terminal에서 활성화 가상환경명\Scripts\activate.bat * 가상환경 디렉토리 안으로 경로 이동한 후에 수행할 것 3-2. Visual Studio Code에서 활성화 Ctrl + Shift + p 입력 > Python: Select Interpreter 선택 > 가상환경 선택 3-3 cmd에서 가상환경 비활성화 deact.. 2022. 3. 2.
[Python] Numpy Broadcasting 개념 Numpy 라이브러리에서 브로드캐스팅(Broadcasting)이란: 산술 연산 대상이 되는 배열(array)들의 모양(shape)이 다른 경우에도, 연산이 가능하도록 배열들의 모양을 처리하는 방법을 의미한다. 더 작은 배열이 큰 배열의 모양에 맞춰지는 방식으로 작동하고, 벡터화를 가능하도록 하여, loop가 python이 아닌 C에서 수행되도록 한다. 브로드캐스팅을 활용하면, 불필요한 사본을 생성하지 않아도 되기 때문에 효율적인 코드를 작성할 수 있다. * 종종 큰 배열에 대한 브로드캐스팅 연산으로 메모리를 비효율적으로 사용하거나, 차원이 커져서 코드 해석이 어려운 경우에는 outer loop를 사용하는 것이 더 좋다. Numpy 공식 문서에서 아래와 같이 해당 개념에 대한 설명을 제공하고 있다. 브로드.. 2022. 2. 24.
[Simulation] SimPy 패키지로 스타벅스 예제 만들기 (2) 지난 포스팅에서 SimPy를 활용하여, 매우 간단한 Simulator를 만들어보았다. 2021.08.29 - [Python] - [Simulation] SimPy 패키지로 스타벅스 예제 만들기 (1) [Simulation] SimPy 패키지로 스타벅스 예제 만들기 (1) 이번 시간에는 스타벅스 시뮬레이션 예제를 만들어보며 SimPy 패키지 활용법을 알아보고자 한다. * 그냥 카페 시뮬레이션인데, 스타벅스 예제라고 이름 붙였다. (●'◡'●) 1. Python SimPy 패키지 프 studying-haeung.tistory.com 이번에는 카페 상황을 약간 바꾸고, 지난 번에는 Customer 클래스 안에 모든 내용을 다 넣었다면, 이번에는 Customer, Activity, Simulator 클래스를 따.. 2021. 8. 29.
반응형