간단한 Airflow 환경 구축 (dockerfile)
·
ML & DL/Practice
WSL2 Ubuntu 환경에서 실행하였습니다. apt 업데이트sudo apt updatesudo apt install sudo프로젝트 폴더 권한 부여sudo chown -R [사용자 계정명] [프로젝트 디렉토리]파이썬 설치sudo apt install python3가상환경 생성 (프로젝트 디렉토리에서)sudo apt install python3-venvpython3 -m venv venvsource venv/bin/activateairflow 라이브러리 설치pip install apache-airflowairflow 세팅 및 실행 (프로젝트 디렉토리에서)export AIRFLOW_HOME=$PWD/airflowairflow db initsed -i 's/^load_examples = True/load_e..
docker-compose로 Airflow 환경 구축
·
ML & DL/Practice
여기에서 최신 설치 방법을 확인할 수 있습니다. Python1. python 설치 (v3.12)sudo apt update && sudo apt install python3-pip2. airflow library 설치pip3 install apache-airflow Airflow1. .yaml 파일 가져오기curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.10.4/docker-compose.yaml'2. directory 생성 및 그룹 id 설정mkdir -p -m 755 ./dags ./logs ./plugins ./configecho -e "AIRFLOW_UID=$(id -u)" > .env3. 초기 세팅AIRFLOW_UID=500004. 공통..
[Time Sereis Forecasting] One-Step, Multi-Step, Multi-Output
·
ML & DL/Deep Learning
One-Step주어진 과거 데이터를 바탕으로 한 시점 뒤의 미래 값을 예측하는 방법예를 들어, 1시간 간격으로 기록된 데이터가 있다면 0~6시의 데이터를 보고 1시간 뒤인 7시의 데이터를 예측하는 것일반적으로 모델의 예측이 정확하며, 에러가 축적되지 않아 안정적인 예측 가능Multi-Step여러 시점을 동시에 예측하는 방법. 예를 들어, 1시간 간격으로 기록된 데이터가 있다면 0~12시의 데이터를 보고 6시간 뒤인 13~18시 까지의 데이터를 예측하는 것Direct Multi-Step각각의 시점을 별도의 모델로 예측하는 방법예를 들어, t+1, t+2, t+3의 3개의 시점을 예측하고 싶다면 각각의 시점에 대해 독립적으로 모델을 훈련정확도는 높을 수 있지만, 계산 비용이 증가Recursive Multi-..
ReLU Family
·
ML & DL/기초 이론
ReLURectified Linear UnitReLU(x)=max(0,x)LeakyReLULeakyReLUα=max(αx,x)GELUGaussian Error Linear UnitGELU(x)=0.5x(1+tanh(2/π(x+0.044715x3)))PReLUParametric ReLUPReLU(x)=max(0,x)+amin(0,x)ELUExponential Linear Unit$$ ELU_{\alpha} = {α(exp(x)1)if x=0..
[Time Series Forecasting] Sliding Window Dataset
·
ML & DL/Deep Learning
Sliding Window DatasetTime Series Forecasting에 사용되는 Sliding Window Dataset은 연속적인 시계열 데이터를 여러 개의 고정된 크기의 입력과 출력 윈도우로 나누어 Dataset을 구성하는 방법입니다.  다음은 Pytorch로 Dataset 다변량(Multi-Variate) 다중 스텝(Multi-Step) 데이터셋을 구성하기 위한 코드입니다.import torchfrom torch.utils.data import Datasetclass SlidingWindowDataset(Dataset): def __init__(self, train_X, target_variables, input_window, output_window, stride=1): ..
[Time Series Forecasting] LSTM, GRU, CNN, ... PyTorch 구현
·
ML & DL/Deep Learning
LSTMclass LSTMModel(nn.Module): def __init__(self, input_size, hidden_size, num_layers, dropout): super(LSTMModel, self).__init__() self.hidden_size = hidden_size self.num_layers = num_layers self.lstm = nn.LSTM(input_size, hidden_size, num_layers, batch_first=True) self.selu = nn.SELU() # nn.ReLU() self.dropout = nn.Dropout(dropout) self.fc = ..
XGBoost Custom Metric & Evaluation
·
ML & DL/Machine Learning
XGBoost를 학습시키기 위한 라이브러리는 xgboost 라이브러리와 scikit-learn(sklearn) 인터페이스가 있습니다.둘 중 아무거나 사용하여도 상관 없는데, 문제는 기본적으로 제공하는 평가 함수와 목적 함수(손실 함수)이외의 함수를 Custom 할 때 사용 방법에 차이가 있어 기록하고자 글을 작성합니다. Documentation XGBoost기본 학습 코드import xgboost as xgbX_train, y_train = ...X_valid, y_valid = ...dtrain = xgb.DMatrix(X_train, label=y_train)dvalid = xgb.DMatrix(X_valid, label=y_valid)params = { 'eta': 0.1, 'n_jobs..
HDF5 (Hierarchical Data Format 5) - h5py 사용
·
ML & DL/Practice
HDF5 HDF란, 대용량의 데이터를 저장하기 위한 파일 형식으로, 구조화된 배열 데이터를 저장하기에 용이하다. 운영체제의 제약을 거의 받지 않고, 대용량 데이터를 빠르게 저장하고, 쉽게 접근할 수 있게 해주는 고성능 데이터 포맷 형식이다. HDF5를 사용하는 이유 특정 데이터 subset을 처리하기 위해서 전체 데이터셋을 RAM에 읽지 않아, 아주 효율적으로 데이터를 처리할 수 있다. 다른 타입들을 가진 데이터들을 HDF5라는 하나의 파일 안에 저장할 수 있다. h5py python에서는 h5py 라이브러리로 HDF5 파일을 쉽게 다룰 수 있다. [docs] 위에서 HDF5를 사용하는 이유에서 설명했듯이, 위 그림의 오른쪽 부분 처럼 HDF5는 임의의 데이터를 참조했을 때, 해당 데이터가 메모리에 올라..
욱근욱