본문 바로가기

반응형

분류 전체보기

(369)
Docker container 실행 - docker run (2) 컨테이너의 네트워크 설정 Docker run 명령어는 네트워크 옵션을 다음과 같이 지원합니다. Option Description --add-host=[호스트명:IP 주소] 컨테이너의 /etc/hosts에 호스트명과 IP 주소를 정의 --dns=[IP 주소] 컨테이너용 DNS 서버의 IP 주소 지정 --expose 지정한 범위의 포트 번호를 할당 --mac-address=[MAC 주소] 컨테이너의 MAC 주소를 지정 --hostname, -h 컨테이너 자신의 호스트명 지정 --publish, -p[호스트의 포트 번호:컨테이너의 포트 번호] 호스트와 컨테이너의 포트 매핑 --publish-all, -P 호스트의 임의의 포트를 컨테이너에 할당 다음의 명령은 nginx라는 이름의 이미지를 바탕으로 test라는 ..
Regression - 단순 선형 회귀 회귀 분석 (Regression) 이란 어떤 변수가 다른 변수에 어떻게 영향을 주는지 설명하는 분석 방법으로 영향을 주는 변수 (독립 변수, independent variable) 와 영향을 받는 변수 (종속 변수, dependent/response variable) 로 구성되어 종속 변수 1개, 독립 변수가 1개일 때는 단순 회귀 분석 (simple regression), 독립 변수가 2개 이상일 때는 다중 회귀 분석 (multiple regression) 이라 불립니다. 이번 포스트에서 살펴볼 내용은 회귀 분석에서 가장 기본적인 단순 선형 회귀 모델 (simple linear regression) 입니다. Simple linear regression 단순 회귀 분석은 일반적으로 Classical Li..
Docker container 실행 - docker run (1) 지난 포스트의 다양한 도커 이미지 커맨드를 통해 이미지를 생성했으면 컨테이너를 생성할 수 있습니다. 도커 이미지는 docker에서 서버 기능을 작동시키기 위해 필요한 디렉토리 및 파일들로서 컨테이너 실행 시 이미지에 포함된 파일과 디렉토리의 스냅샷을 생성하고 호스트 OS 상에서 프로세스로 실행됩니다. 이때 docker run 커맨드로 이미지로부터 컨테이너를 생성하고 실행할 수 있습니다. 위의 그림과 같이 docker create 커맨드로 컨테이너를 생성할 수 있으나 create 명령어는 컨테이너를 생성만 할 뿐 실행하지는 않으므로 일반적으로 docker run 을 통해 컨테이너를 생성함과 동시에 실행합니다. 도커 컨테이너와 관련된 대표적인 명령어로는, 1) 정지된 컨테이너를 시작하는 docker cont..
Feature Selection - Recursive Feature Elimination Recursive feature elimination (rfe)는 매우 직관적인 feature selection 방법으로 먼저 전체 feature에 대해 훈련 후 중요하지 않은 feature 들을 제거하면서 원하는 개수의 feature 수만 남기도록 하는 방법입니다. 따라서 원하는 수의 feature 만 사용하는 minimal optimal feature subset 을 구하는 간단한 방법이라 볼 수 있으며 중요하지 않은 feature 를 매 스텝마다 하나씩 줄이면서 모델을 새로 빌딩하는 과정을 반복합니다. Example 파이썬에서는 scikit-learn 패키지의 RFE 함수로 구현할 수 있습니다. Scikit-learn의 메소드이니 만큼 1) 클래스 선언 2) fit 3) transform 의 과정으..
Self-Supervised Learning - SimCLRv2 (2) 이전 포스트 [Machine Learning/Unsupervised Learning] - Self-Supervised Learning - SimCLRv2 (1) Experiment Settings Semi-supervised learning 실험을 위해 ImageNet 데이터셋에서 랜덤하게 뽑힌 1%/10% 데이터를 일부분의 labeled data로 사용합니다. 다른 representation learning 성능 측정 방식과 마찬가지로 고정된 representation위에 linear classifier를 탑재해 훈련시키는 linear evaluation을 수행하였으며 배치 사이즈가 크기 때문에 LARS 옵티마이저를 사용합니다. Self-supervised pretraining을 위해서 4096의 배치..
Feature Selection - Permutation Feature Importance 이번 포스트에서 다룰 permutation feature importance는 모델을 재학습시킬 필요 없이 학습시킨 후에 feature 의 값을 랜덤하게 섞은 이후의 (permute) 성능 감소를 통해 feature importance를 측정하는 방법으로 매우 직관적입니다. 어떠한 feature를 랜덤하게 섞었을 때의 모델의 예측 에러가 증가했다면 중요한 feature로 판단할 수 있고 모델의 예측 에러가 거의 변동이 없다면 중요하지 않은 feature라 판단할 수 있습니다. 훈련된 모델 $f$와 feature matrix $X$, 타겟 변수 $y$, 원래의 에러 $e_{org}=L(y,f(X))$가 있을때, 각 feature $j$에 대한 $X$에서 $j$번째 열을 임의로 섞어 만든 permuted f..
Feature Selection - BORUTA (2) 이전 포스트 [Machine Learning/Data Analysis] - Feature Selection - BORUTA (1) 지난 포스트에서 feature selection 방법 중 하나인 BORUTA 알고리즘에 대해 살펴봤습니다. BORUTA는 본래 R 패키지로 개발된 알고리즘이지만 파이썬에서도 BorutaPy 라는 패키지를 통해 사용할 수 있습니다. BorutaPy BorutaPy는 feature importance를 계산할 수 있는 Random forest, XGBoost 등의 모델과 함께 사용이 가능합니다. BorutaPy의 파라미터는 다음과 같습니다. Parameter Description estimator fit 함수를 통해 feature_importance_ 속성을 가진 모든 regre..
Feature Selection - BORUTA (1) 최적의 머신러닝 모델을 위한 feature selection (특징 추출)은 매우 중요한 작업입니다. Feature의 수가 불필요하게 많게 되면 모델의 과적합이 발생하게 되고 불필요한 feature들은 모델의 예측력에 안좋은 영향을 미치게 됩니다. 직관적인 방법은 feature를 하나씩 제거하였을 때 성능에 거의 영향이 없는 feature를 중요하지 않다고 생각하여 제거하거나 도메일 지식을 활용하여 중요하지 않은 feature를 제거하거나 중요한 feature를 선택할 수 있습니다. 하지만, feature의 개수가 매우 많거나 도메인 지식이 부족한 경우에도 쉽게 feature selection 할 수 있는 방법이 있을까요? 이번 포스트에서는 대표적인 feature selection 방법 중에 하나인 BO..

반응형