Rumale 라이브러리는 다양한 머신러닝 알고리즘과 유틸리티를 포함하며, 설치 및 사용법이 간결합니다.
설치 (Installation)
Rumale은 Ruby Gem 형태로 제공되어 쉽게 설치할 수 있습니다.
-
Gemfile에gem 'rumale'을 추가한 후bundle을 실행합니다. -
또는
gem install rumale명령어를 통해 직접 설치할 수 있습니다. -
버전 2.0.0부터는
Numo::NArray대신Numo::NArray Alternative를 의존성으로 사용합니다.
사용 예시 (Usage Examples)
Rumale은 libsvm 형식의 데이터셋 로딩 기능을 제공하며, 실제 데이터셋을 활용한 분류 및 교차 검증 예시를 통해 사용법을 설명합니다.
- 예시 1. Pendigits 데이터셋 분류
pendigits데이터셋을 다운로드한 후,Rumale::Dataset.load_libsvm_file을 사용하여 데이터를 로드합니다.Rumale::KernelApproximation::RBF를 사용하여 특징 맵을 변환하고,Rumale::LinearModel::SVC(Linear SVM)로 분류기를 학습시킵니다.- 학습된 변환기와 분류기는
Marshal.dump를 통해 파일로 저장하고, 테스트 시Marshal.load로 불러와 예측에 활용합니다. - 테스트 데이터에 대한 정확도를 계산하여 모델의 성능을 평가합니다.
- 예시 2. 교차 검증 (Cross-validation)
Rumale::LinearModel::LogisticRegression모델과Rumale::EvaluationMeasure::Accuracy평가 지표를 정의합니다.Rumale::ModelSelection::StratifiedKFold를 사용하여 층화 K-겹 교차 검증 분할기를 설정합니다.Rumale::ModelSelection::CrossValidation객체를 생성하여 교차 검증을 수행하고, 평균 정확도를 계산하여 모델의 일반화 성능을 확인합니다.
성능 향상 (Speedup)
Rumale은 특정 Gem을 활용하여 알고리즘의 실행 속도를 개선할 수 있는 방법을 제공합니다.
-
Numo::Linalg Alternative:
numo-linalg-altGem을 설치하고 로드하면,Numo::NArray Alternative의 행렬 및 벡터 곱셈 연산이 OpenBLAS 라이브러리를 사용하여 최적화됩니다. 이는 행렬 연산이 빈번한 알고리즘의 속도 향상에 기여합니다. -
Parallel:
parallelGem을 설치하고 로드하면,n_jobs파라미터를 지원하는 Rumale의 일부 추정기(예:Rumale::Ensemble::RandomForestClassifier)에서 병렬 처리를 활성화할 수 있습니다.n_jobs: -1설정 시 모든 프로세서를 활용합니다.
관련 프로젝트
-
Rumale::SVM: LIBSVM 및 LIBLINEAR의 Support Vector Machine 알고리즘을 Rumale 인터페이스로 제공합니다. -
Rumale::Torch:torch.rb에 정의된 신경망을 Rumale 인터페이스로 학습 및 추론할 수 있도록 지원합니다.