ML.NET CLI 명령 참조

classification, regressionrecommendation 명령은 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, recommendationforecasting)은 다음과 같은 자산을 생성합니다.

  • 사용 준비가 된 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, forecastingtrain)은 제공된 데이터 세트와 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 datasettest dataset를 사용할 경우 유효성 검사 단계는 다음 두 부분으로 나뉩니다.

  1. 첫 번째 부분에서는 모델을 살펴 보고 유효성 검사 데이터(=유효성 검사)를 사용하는 가장 효과적인 접근법을 선택합니다.
  2. 그런 다음, 선택한 접근법의 정확도를 추정합니다(=테스트).

따라서 데이터는 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

각 명령의 매개 변수에 대한 설명과 함께 명령에 대한 도움말을 출력합니다.

참고 항목