본문 바로가기

데이터사이언스/머신러닝

(10)
pycaret을 활용한 간편한 모델 Optimization python에서 가장 많이 사용되는 AutoML 라이브러리 중 하나인 pycaret은 간편하게 여러 모델을 비교하고, 성능을 최적화할 수 있다는 장점을 가지고 있다. 1. tune_model 모델의 하이퍼파라미터를 조정하는 가장 기본적 함수로, K-Fold를 사용한다. 각 Fold가 Validation set으로 사용되었을 때, 와 모든 경우에 평균 Metrics를 출력한다. 최적화 매개변수에 정의된 Metric에 따라 가장 적합한 모델이 선택된다. get_metrics 함수를 사용하여 교차 검증 중에 평가된 Metrics에 접근할 수 있다. 사용자 지정 Metrics는 add_metric 및 remove_metric 함수를 사용하여 추가하거나 제거할 수 있다. from pycaret.regression..
Cross-validation 개념과 scikit-learn 예제 https://scikit-learn.org/stable/modules/cross_validation.html 3.1. Cross-validation: evaluating estimator performance Learning the parameters of a prediction function and testing it on the same data is a methodological mistake: a model that would just repeat the labels of the samples that it has just seen would ha... scikit-learn.org scikit-learn 공식 문서의 Cross-validation: evaluating estimator per..
Expactation Maximization Expactation Maximization(EM)이란 latent variable(관측되지 않는 변수)가 존재하는 경우, 확률변수의 모수를 측정하는 방법이다. latent variable로 인해 Maximum likelihood estimation(MLE)을 사용하기 어려운 경우에 주로 쓰인다. 먼저 모수를 측정하는 기본적인 방법인 MLE에 대해서 알아보자. 1. Maximum likelihood estimation(MLE) 동전 던지기의 예를 들어보자. 우리의 목표는 동전 A, B에서 각각 앞면이 나올 확률 $\theta_{A}, \theta_{B}$ 를 예측하는 것이다. 동전 던지기는 5개의 sequence로 이루어져 있고, 각 sequence에서는 동전을 10번씩 던진다. i번째 sequence에..
[scikit-learn] RandomForestClassifier 알아보기 1. RandomForest란? Random Forest는 다수의 decision tree를 통해 데이터를 분류하는데 사용되는 앙상블 기법이다. 무작위성을 더해 분류기를 만들기 때문에 overfitting될 확률이 높은 decision tree의 단점이 개선되었다. 학습시킬때는 주어진 데이터 중 각각의 tree를 만들기 위한 데이터셋을 N개 만든다. N개의 데이터셋을 기반으로 N개의 decision tree를 훈련시킨다. 마지막으로 각 decision tree가 투표한 결과에 따라서 각 데이터를 분류한다. 2. scikt-learn에서의 RandomForestClassifier(텍스트 데이터) 텍스트 데이터의 Conclusion 열을 input으로 넣어 0과 1로 되어있는 label을 예측하도록 했다. ..
[강화학습] CartPole에서 Actor-Critic 구현하기 1. Actor-Critic Actor Critic은 Deep RL에서 정책함수와 가치함수를 모두 학습하는 방식이다. 이 방식은 확률적 정책을 취하기 때문에 결정론적 방식을 사용하는 가치기반 방식에 비해 변화하는 주변 상황에 적용하기 용이하다. 또한 액션 공간이 연속적인 경우에도 적용할 수 있다는 장점이 있다. 2. import 및 hyperparameter 정의 import gym import torch import torch.nn as nn import torch.nn.functional as F import torch.optim as optim from torch.distributions import Categorical #Hyperparameters learning_rate = 0.0002 gam..
BERT와 pytorch를 사용한 binary classification colab 환경에서 BERT와 pytorch를 사용해서 text를 binary classification을 했다. 1. BERT의 기본 구성 https://ebbnflow.tistory.com/151 [BERT] BERT에 대해 쉽게 알아보기1 - BERT는 무엇인가, 동작 구조 ● 언어모델 BERT BERT : Pre-training of Deep Bidirectional Trnasformers for Language Understanding 구글에서 개발한 NLP(자연어처리) 사전 훈련 기술이며, 특정 분야에 국한된 기술이 아니라 모든 자연어.. ebbnflow.tistory.com BERT란 wikipedia와 BookCorpus의 데이터를 사전학습한 transformer 언어모델이다. BERT의 ..
마르코프 프로세스란? 1. 확률 과정(Stochastic Process) 확률 과정 \(S_{t}\)는 시간t의 흐름에 따라 변화하는 random variable의 집합이다. 특정 시간 t에 비가 오거나 오지 않는 상태 s를 예로 들 수 있다. 상태 s와 그 이후의 상태 s'가 주어진다면, s에서 s'으로 상태가 바뀔 가능성은 다음과 같이 나타낼 수 있다. $$ 𝑃𝑠𝑠 ′ = ℙ[𝑆𝑡+1 = 𝑠 ′ |𝑆𝑡 = 𝑠] $$ 상태 전환 행렬 P는 모든 상태 s에서 이후 상태 s'으로 바뀔 가능성을 정의한다. 행렬 P에서 행은 현재 상태, 열은 다음 상태를 나타내고 값은 해당 전환이 일어날 확률을 나타낸다. 행렬 모든 값의 합은 1이 된다. 2. 마르코프 성질 마르코프 성질은 미래는 과거 상태의 영향을 받지 않고, 현재에 의해서만 ..
RNN과 LSTM 이해하기 1. RNN의 정의 RNN(Recurrent Neural Networks, 순환신경망)은 음성, 문자 등 순차적 데이터 처리에 적합한 모델이다. 내부의 연결이 순환적이라는 특징을 가지고 있다. 2. RNN의 구조 RNN은 위 그림처럼 입력 벡터 $x$와 출력 벡터 $y$, 은닉층 cell로 구성되어 있다. 여기서 cell은 이전의 값을 기억하려고 하는 메모리 역할을 수행하므로 이를 메모리 셀이라고도 한다. 은닉층의 메모리 셀은 이전 시점 t-1에서 셀에서 나온 값을 현재 시점 t에서 자신의 입력으로 사용하는 재귀적 활동을 하고 있다. 여기서 메모리 셀이 출력층 $y$ 방향으로 보내는 값, 다음 시점의 자기 자신에게 보내는 값은 은닉 상태(hidden state)라고 한다. RNN을 표현할 때는 왼쪽처럼 ..