ML.NET CLI 명령 참조
classification
, regression
및 recommendation
명령은 ML.NET CLI 도구에서 제공하는 주 명령입니다. 이 명령을 사용하면 AutoML(자동화된 Machine Learning)을 사용하여 분류, 회귀, 권장 사항 모델을 위한 좋은 품질의 ML.NET 모델과 해당 모델을 실행/채점할 예제 C# 코드를 생성할 수 있습니다. 또한 모델을 학습할 C# 코드를 생성하여 모델의 알고리즘과 설정을 조사할 수 있습니다.
참고 항목
이 문서에서는 현재 미리 보기 상태인 ML.NET CLI 및 ML.NET AutoML을 참조하며 자료는 변경될 수 있습니다.
개요
예제 사용법:
mlnet regression --dataset "cars.csv" --label-col price
mlnet
ML 작업 명령(classification
, regression
, recommendation
및 forecasting
)은 다음과 같은 자산을 생성합니다.
- 사용 준비가 된 Serialize된 모델 .zip("최적 모델")
- 생성된 모델을 실행/채점할 C# 코드입니다.
- 해당 모델을 생성하기 위해 사용한 학습 코드가 포함된 C# 코드입니다.
처음 두 개의 자산은 ML 모델로 예측을 수행하기 위해 최종 사용자 앱(ASP.NET Core 웹앱, 서비스, 데스크톱 앱 등)에서 직접 사용할 수 있습니다.
세 번째 자산인 학습 코드는 사용자에게 생성된 모델을 학습하기 위해 CLI에서 사용한 ML.NET API 코드를 표시하므로, 사용자는 특정 알고리즘 및 모델 설정을 살펴볼 수 있습니다.
예제
분류 문제에 가장 간단한 CLI 명령(AutoML은 제공된 데이터에서 대부분의 구성을 추론):
mlnet classification --dataset "customer-feedback.tsv" --label-col Sentiment
회귀 문제에 대한 다른 간단한 CLI 명령:
mlnet regression --dataset "cars.csv" --label-col Price
학습 데이터 세트, 테스트 데이터 세트 및 추가 사용자 지정 명시적 인수로 분류 모델을 만들고 학습시킵니다.
mlnet classification --dataset "/MyDataSets/Population-Training.csv" --test-dataset "/MyDataSets/Population-Test.csv" --label-col "InsuranceRisk" --cache on --train-time 600
명령 옵션
mlnet
ML 작업 명령(classification
, regression
, recommendation
, forecasting
및 train
)은 제공된 데이터 세트와 ML.NET CLI 옵션을 기반으로 여러 모델을 학습시킵니다. 이러한 명령은 또한 최상의 모델을 선택하고, 모델을 직렬화된 .zip 파일로 저장하고, 채점 및 학습을 위한 관련 C# 코드를 생성합니다.
분류 옵션
mlnet classification
을 실행하면 분류 모델이 학습됩니다. ML 모델에서 데이터를 2개 이상의 클래스(예: 감정 분석)로 범주화하려면 이 명령을 선택합니다.
mlnet classification
--dataset <path> (REQUIRED)
--label-col <col> (REQUIRED)
--cache <option>
--has-header (Default: true)
--ignore-cols <cols>
--log-file-path <path>
--name <name>
-o, --output <path>
--test-dataset <path>
--train-time <time> (Default: 30 minutes, in seconds)
--validation-dataset <path>
-v, --verbosity <v>
-?, -h, --help
회귀 옵션
mlnet regression
을 실행하면 회귀 모델이 학습됩니다. ML 모델에서 숫자 값을 예측(예: 가격 예측)하게 하려면 이 명령을 선택합니다.
mlnet regression
--dataset <path> (REQUIRED)
--label-col <col> (REQUIRED)
--cache <option>
--has-header (Default: true)
--ignore-cols <cols>
--log-file-path <path>
--name <name>
-o, --output <path>
--test-dataset <path>
--train-time <time> (Default: 30 minutes, in seconds)
--validation-dataset <path>
-v, --verbosity <v>
-?, -h, --help
권장 사항 옵션
mlnet recommendation
을 실행하면 권장 사항 모델이 학습됩니다. ML 모델에서 등급(예: 제품 권장 사항)에 따라 사용자에게 항목을 추천하게 하려면 이 명령을 선택합니다.
mlnet recommendation
--dataset <path> (REQUIRED)
--item-col <col> (REQUIRED)
--rating-col <col> (REQUIRED)
--user-col <col> (REQUIRED)
--cache <option>
--has-header (Default: true)
--log-file-path <path>
--name <name>
-o, --output <path>
--test-dataset <path>
--train-time <time> (Default: 30 minutes, in seconds)
--validation-dataset <path>
-v, --verbosity <v>
-?, -h, --help
잘못된 입력 옵션으로 인해 CLI 도구는 유효한 입력 목록과 오류 메시지를 내보냅니다.
예측 옵션
mlnet forecasting
을 실행하면 시계열 예측 모델이 학습됩니다. ML 모델이 기록 데이터(예: 판매 예측)를 기반으로 값을 예측하도록 하려면 이 명령을 선택합니다.
mlnet forecasting
--dataset <dataset> (REQUIRED)
--horizon <horizon> (REQUIRED)
--label-col <label-col> (REQUIRED)
--time-col <time-col> (REQUIRED)
--cache <Auto|Off|On>
--has-header
--log-file-path <log-file-path>
--name <name>
-o, --output <output>
--test-dataset <test-dataset>
--train-time <train-time>
-v, --verbosity <verbosity>
학습 옵션
mlnet train
을 실행하면 Model Builder에서 생성된 "mbconfig" 파일을 기반으로 모델을 학습시킵니다. 이 명령이 작동하려면 학습 데이터가 "mbconfig" 파일과 동일한 디렉터리에 있어야 합니다.
-training-config <training-config> (REQUIRED)
--log-file-path <log-file-path>
-v, --verbosity <verbosity>
데이터 세트
--dataset | -d
(문자열)
이 인수는 다음 옵션 중 하나에 대한 파일 경로를 제공합니다.
A: 전체 데이터 세트 파일: 이 옵션을 사용하고 사용자가
--test-dataset
및--validation-dataset
를 제공하지 않는 경우 교차 유효성 검사(k겹 등) 또는 자동화된 데이터 분할 접근 방식이 모델 유효성 검사를 위해 내부적으로 사용됩니다. 이 경우에 사용자는 데이터 세트 파일 경로를 제공해야 합니다.B: 학습 데이터 세트 파일: 사용자가 모델 유효성 검사를 위한 데이터 세트도 제공하는 경우(
--test-dataset
및 선택적으로--validation-dataset
사용),--dataset
인수는 "학습 데이터 세트"만 갖는다는 것을 의미합니다. 예를 들어, 모델 품질의 유효성을 검사하고 정확도 메트릭을 획득하기 위해 80% - 20% 접근법을 사용할 경우 “학습 데이터 세트”는 데이터의 80%, “테스트 데이터 세트”는 데이터의 20%를 차지하게 됩니다.
테스트 데이터 세트
--test-dataset | -t
(문자열)
테스트 데이터 세트 파일을 가리키는 파일 경로(예: 정확도 메트릭을 획득하기 위해 정규 유효성 검사 수행 시 80% - 20% 접근법을 사용하는 경우)
--test-dataset
를 사용한다면 --dataset
도 필요합니다.
--유효성 검사-데이터 세트가 사용되지 않을 경우 --test-dataset
인수는 옵션입니다. 이 경우, 사용자는 세 개의 인수를 사용해야 합니다.
유효성 검사 데이터 세트
--validation-dataset | -v
(문자열)
유효성 검사 데이터 세트 파일을 가리키는 파일 경로입니다. 어떠한 경우에도 유효성 검사 데이터 세트는 옵션입니다.
validation dataset
를 사용할 경우 동작은 다음과 같아야 합니다.
test-dataset
및--dataset
인수도 필요합니다.validation-dataset
데이터 세트는 모델 선택에 대한 예측 오류를 예상하기 위해 사용됩니다.test-dataset
는 최종 선택된 모델의 일반화 오류를 평가하는 데 사용됩니다. 이상적으로, 테스트 세트는 “자격 증명 모음”에 보관되어야 하며 데이터 분석이 끝날 때만 꺼내야 합니다.
기본적으로 validation dataset
및 test dataset
를 사용할 경우 유효성 검사 단계는 다음 두 부분으로 나뉩니다.
- 첫 번째 부분에서는 모델을 살펴 보고 유효성 검사 데이터(=유효성 검사)를 사용하는 가장 효과적인 접근법을 선택합니다.
- 그런 다음, 선택한 접근법의 정확도를 추정합니다(=테스트).
따라서 데이터는 80/10/10 또는 75/15/10으로 분리될 수 있습니다. 예시:
training-dataset
파일에는 데이터의 75%가 있어야 합니다.validation-dataset
파일에는 데이터의 15%가 있어야 합니다.test-dataset
파일에는 데이터의 10%가 있어야 합니다.
어떠한 경우에도 이러한 백분율은 이미 분할된 파일을 제공할 CLI를 사용하는 사용자가 결정합니다.
레이블 열
--label-col
(int 또는 문자열)
이 인수를 사용하면 특정 목표/대상 열(예측하려는 변수)은 데이터 세트 헤더에 설정된 열 이름이나 데이터 세트 파일에서 열의 숫자 인덱스(열 인덱스 값은 0에서 시작)를 사용하여 지정할 수 있습니다.
이 인수는 ‘분류’ 및 ‘회귀’ 문제에 사용됩니다.
항목 열
--item-col
(int 또는 문자열)
항목 열에는 사용자가 평가하는 항목(사용자에게 권장되는 항목)의 목록이 있습니다. 이 열은 데이터 세트 헤더에 설정된 열 이름이나 데이터 세트 파일에서 열의 숫자 인덱스(열 인덱스 값은 0에서 시작)를 사용하여 지정할 수 있습니다.
이 인수는 ‘권장 사항’ 작업에만 사용됩니다.
등급 열
--rating-col
(int 또는 문자열)
등급 열에는 사용자가 항목에 부여하는 등급의 목록이 있습니다. 이 열은 데이터 세트 헤더에 설정된 열 이름이나 데이터 세트 파일에서 열의 숫자 인덱스(열 인덱스 값은 0에서 시작)를 사용하여 지정할 수 있습니다.
이 인수는 ‘권장 사항’ 작업에만 사용됩니다.
사용자 열
--user-col
(int 또는 문자열)
사용자 열에는 항목에 등급을 부여하는 사용자의 목록이 있습니다. 이 열은 데이터 세트 헤더에 설정된 열 이름이나 데이터 세트 파일에서 열의 숫자 인덱스(열 인덱스 값은 0에서 시작)를 사용하여 지정할 수 있습니다.
이 인수는 ‘권장 사항’ 작업에만 사용됩니다.
열 무시
--ignore-columns
(문자열)
이 인수를 사용하면 훈련 프로세스에서 로드되어 사용되지 않도록 데이터 세트 파일에서 기존 열을 무시할 수 있습니다.
무시하려는 열 이름을 지정합니다. ', '(공백이 있는 쉼표) 또는 ' '(공백)을 사용하여 여러 열 이름을 구분합니다. 공백이 있는 열 이름에 큰따옴표를 사용할 수 있습니다(예: "logged in").
예시:
--ignore-columns email, address, id, logged_in
헤더 있음
--has-header
(bool)
데이터 세트 파일에 헤더 행이 있는지 지정합니다. 가능한 값은 다음과 같습니다.
true
false
사용자가 이 인수를 지정하지 않은 경우 ML.NET CLI에서 이 속성을 검색하려고 합니다.
학습 시간
--train-time
(문자열)
기본적으로 최대 탐색/학습 시간은 30분입니다.
이 인수는 프로세스에서 여러 트레이너와 구성을 검색하는 최대 시간(초 단위)을 설정합니다. 단일 반복에 지정된 시간이 너무 짧을 경우(예를 들어 2초) 구성된 값이 초과될 수 있습니다. 이 경우에 실제 시간은 단일 반복에서 하나의 모델 구성을 생성하는 데 필요한 시간입니다.
반복에 필요한 시간은 데이터 세트의 크기에 따라 다를 수 있습니다.
캐시
--cache
(문자열)
캐싱을 사용할 경우 전체 학습 데이터 세트는 메모리에 로드됩니다.
중소 규모의 데이터 세트의 경우, 캐시를 사용하면 학습 성능을 크게 개선할 수 있습니다. 즉, 캐시를 사용하지 않을 때보다 학습 시간을 단축할 수 있습니다.
단, 대규모 데이터 세트의 경우 메모리에 모든 데이터를 로드하면 메모리가 부족해져 좋지 않은 영향을 끼칠 수 있습니다. 대규모 데이터 세트 파일로 학습하고 캐시를 사용하지 않을 경우 ML.NET은 학습하는 동안 더 많은 데이터를 로드해야 할 때 드라이브에서 데이터 청크를 스트리밍하게 됩니다.
다음 값을 지정할 수 있습니다.
on
: 학습 시 캐시를 사용하도록 강제 적용합니다.
off
: 학습 시 캐시를 사용하지 않도록 강제 적용합니다.
auto
: AutoML 추론에 따라 캐시는 사용되거나 사용되지 않습니다. 일반적으로, 중/소 규모의 데이터 세트는 캐시를 사용하고 대규모 데이터 세트는 사용자가 auto
선택을 사용할 경우 캐시를 사용하지 않습니다.
--cache
매개 변수를 지정하지 않는다면 캐시 auto
구성이 기본적으로 사용됩니다.
속성
--name
(문자열)
생성된 출력 프로젝트 또는 솔루션의 이름입니다. 지정된 이름이 없을 경우 sample-{mltask}
이 사용됩니다.
ML.NET 모델 파일(.ZIP 파일)도 같은 이름을 갖게 됩니다.
출력 경로
--output | -o
(문자열)
생성된 출력을 저장할 루트 위치/폴더입니다. 기본값은 현재 디렉터리입니다.
Verbosity
--verbosity | -v
(문자열)
표준 출력의 자세한 정도를 설정합니다.
허용된 값은 다음과 같습니다.
q[uiet]
m[inimal]
(기본값)diag[nostic]
(로깅 정보 수준)
기본적으로 CLI 도구는 작동 중인지와 가능하다면 남은 시간 또는 완료된 시간 비율을 언급하는 등 일부 최소 피드백(minimal
)을 표시해야 합니다.
도움말
-h |--help
각 명령의 매개 변수에 대한 설명과 함께 명령에 대한 도움말을 출력합니다.
참고 항목
.NET