목록Total (94)
Stats & AI tech blog - '일단 시도함'
이번 포스팅에서는 R for문 등에서 변수를 바꿔가며 동적으로 처리하는 방법에 대해 알아보고자 한다.아래 모든 방법을 다 알 필요는 없고, 몇 가지만 알아둬도 유용하게 사용할 수 있다. 1. !!, !!!`!!`와 `!!!`는 주로 `rlang` 패키지와 함께 사용되며, 비표준 평가(non-standard evaluation, NSE)에서 변수를 언바운딩하는 데 사용된다. `!!`는 단일 변수, `!!!`는 여러 변수를 언바운딩하는 데 사용된다. * 비표준 평가(non-standard evaluation, NSE) : 함수의 인자에 표현식을 할당할 당시에는 평가(계산, 실행)을 수행하지 않고, 함수 내부의 원하는 곳에서 실행하도록 하는 것.library(rlang)var % mutate(new_col ..
오늘은 R에서 내가 만든 함수를 모아 라이브러리(패키지)를 만들어 보려고 한다.자주 쓰는 함수를 모아 놓고 편하게 쓸 수 있을 것 같다. 라이브러리(패키지)를 만드는 순서는 아래와 같다. 1. 패키지 구조 생성2. 패키지 메타데이터 생성3. 함수 파일, 도움말 문서 작성4. 패키지 빌드 및 설치 1. 패키지 구조 생성먼저 패키지를 저장할 디렉토리와 그 안에 필요한 메타 데이터를 생성해야한다.'usethis' 패키지를 사용하면 구조를 자동으로 생성할 수 있다.install.packages("usethis")library(usethis)# 패키지 구조 생성create_package("path/to/your/package") 위 코드를 실행하면 지정된 경로에 폴더(나는 이름을 zim으로 생성)가 생성되고 안..
* ChatGPT를 이용한 논문 해석입니다. 1. Abstract논문의 초록은 불균형 시계열 분류 문제에 대해 다루고 있습니다.특히, 이 논문에서는 정확성보다는 클래스별 최소 재현율(minimum recall)을 최대화하는 시계열 분류기를 학습하는 방법을 제안합니다. 이를 통해 모든 클래스에 동일한 중요성을 부여하는 분류기를 얻을 수 있습니다. 최소 재현율은 미분 가능한 함수가 아니기 때문에 일반적인 그래디언트 기반 학습 방법을 사용할 수 없습니다. 따라서 우리는 최소 재현율 함수의 여러 부드러운 근사치(smooth approximations)를 적용하고 평가합니다. 철저한 실험적 평가를 통해 우리의 접근 방식이 불균형 시계열 분류에서 사용되는 최첨단 방법들의 성능을 개선하고, 정확성의 약간의 손실만으..
이전 포스팅에서 앙상블 기법의 여러 종류에 대해 다루어 보았다.2024.05.20 - [Data Science/Ensemble] - [ML/DL] Ensemble (앙상블 기법) [ML/DL] Ensemble (앙상블 기법)Ensemble (앙상블 기법) 이번 포스팅에서는 분류 예측 문제를 다룰 때 자주 사용되는 앙상블 기법에 대해 알아보고자 한다.앙상블 기법이 무엇인지 개념을 알아보고, 어떤 종류가 있는지 알아보meowstudylog.tistory.com 이번 포스팅에서는 Boosting 기법 중 하나인 GBM (Gradient Boosting Algorithm)에 대해 알아보도록 하겠다. 1. GBM (Gradient Boosting Machine) GBM은 경사하강법(Gradient Desce..
이번 포스팅에서는 R의 caret 패키지로 쉽게 모델을 학습 & 튜닝하는 방법에 대해 알아보겠다. 아래는 모델을 튜닝하기 위해 먼저 고려해야할 요소이다.어떤 모델을 다룰지 선택 ex) SVM모델을 튜닝하기 위해서 어떤 parameters를 사용할 것인지 선택 ex) C, kernel,,학습에 사용할 데이터를 어떻게 resampling 할지 선택 ex) 10-fold Cross Validation 예시로 SVM 분류 모델을 학습 & 튜닝하는 과정에 대해 알아보겠다. 1. Resampling 방법 지정 (trainControl)먼저 caret 패키지의 trainControl 함수를 통해 Resampling 방식을 지정한다.아래 코드는 K-fold Cross Validation을 여러번 반복해서 샘플링하는 ..
이번 포스팅에서는 머신러닝 분류 알고리즘 중 하나인 서포트 벡터 머신(SVM)에 대해 알아보려고 한다.SVM은 Decision Tree나 인공신경망과 함께 자주 사용되는 분류 기법이며, 특히 이진 데이터(binary data) 분류 문제에서 좋은 성능을 보이는 것으로 알려져 있다. 1. 서포트 벡터 머신 (SVM)SVM은 데이터를 분류하는 결정 경계(Decision Boundary)을 정의해서 초평면(hyperplane)을 선택하는 알고리즘이다.SVM에 사용되는 몇 가지 개념을 알아보자. 1.1 결정 경계 (Decision Boundary) / 초평면 (Hyperplane)왼쪽 그림처럼 분류할 집단을 구분하는 속성이 2차원인 경우에는 선(line)으로 두 집단을 구분할 수 있다. 이렇게 집단을 구분하는..
이번 포스팅에서는 통계학에서 중요한 개념인 편향(bias)과 분산(variance)에 대해 알아보고자 한다. 1. 편향과 분산편향이란, 추정 결과가 한쪽으로 치우쳐있는 경향을 말한다.머신러닝에서는 편향을 통해 예측값들이 정답에서 얼마나 멀리 떨어져 있는지를 나타낼 수 있다. 분산이란, 데이터들이 흩어져있는 정도를 의미한다.머신러닝에서는 분산을 통해 어떤 포인트에 대한 모델 예측 결과의 가변성을 나타낸다. 위쪽 첫 번째 과녁은 모든 결과가 원점에 가깝게 모여져 있다. 이런 경우는 낮은 편향, 낮은 분산을 가진다.위쪽 두 번째 그림은 모든 결과가 원점 중심으로 퍼져있다. 이런 경우는 낮은 편향을 가지지만 상대적으로 높은 분산을 가진다. 아래쪽 첫 번째 그림은 모든 결과가 원점에서 떨어진 거리에 가깝게 모여..
Ensemble (앙상블 기법) 이번 포스팅에서는 분류 예측 문제를 다룰 때 자주 사용되는 앙상블 기법에 대해 알아보고자 한다.앙상블 기법이 무엇인지 개념을 알아보고, 어떤 종류가 있는지 알아보도록 하겠다. 1. 앙상블 기법이란?여러 개의 분류 모델을 결합해서 최적의 모델을 만드는 방법을 앙상블 기법이라고 한다. 여러 모델을 결합한 앙상블 모델은 단일 모델보다 더 뛰어난 성능을 보이고, 보다 일반화(generalized)된 모델이기 때문에 과적합(overfitting) 문제를 감소시킨다는 장점이 있다. 이론적으로는 M개의 독립적인 단일 모델을 결합한 앙상블 모델의 오류가 M개 모델 평균 오류의 1/M 수준으로 감소하는데, 현실적으로는 독립성 가정이 지켜지지 않는 경우가 많기 때문에, 앙상블 모델의..
GAN, Generative Adversarial Network (적대적 생성 신경망) 적대적 생성 신경망 (GAN)은 영상, 음성, 자연어 등을 생성하는 생성 모델 분야에서 엄청난 성과를 보여주고 있는 신경망 구조이다. GAN 모델은 단순한 영상 생성 뿐만 아니라, denoising, segmentation 등에도 활용할 수 있다. 이번 포스팅에서는 먼저 생성 모델 (generative model)이 왜 중요한지 알아보고, 적대적 (adversarial) 학습 방법이 무엇인지를 살펴보도록 하겠다. 1. 생성 모델 (Generative Model) 사진 자료를 통해 개와 고양이를 분류하는 문제를 풀고 있다고 생각해보자.이 문제를 해결하려면 앞서 배웠던 컨볼루션 신경망(CNN) 기법을 사용해서 사진의..
LSTM, Long Short Term Memory (장단기 기억 신경망) 이전 포스팅에서 알아봤던 순환신경망(RNN)은 시계열 데이터를 다루는데 특화된 모델이지만 단점이 존재한다.시계열의 시점이 길어질수록 기울기 소실 문제에 취약해진다는 것인데, 이런 경우 시점의 간격이 클수록 앞의 정보가 이후 시점으로 충분히 전달되지 않을 수 있다. 이런 순환신경망의 단점을 보완하기 위해 제시된 신경망이 장단기 기억 신경망(LSTM) 이다.LSTM은 순환신경망의 한 종류로, 정보의 기억과 망각을 적절히 제어할 수 있도록 cell의 구조를 변형한 신경망이다. 1. LSTM의 Gate 먼저 일반적인 순환신경망의 문제가 왜 발생하는지 알아보겠다. 첫 번째 시점의 input(x1)으로 파란 물감을 입력하고 이후 두 번..