다음을 통해 공유


ML.NET CLI 명령 참조

classification, regressionrecommendation 명령은 ML.NET CLI 도구에서 제공하는 기본 명령입니다. 이러한 명령을 사용하면 자동 기계 학습(AutoML)과 해당 모델을 실행/채점하는 예제 C# 코드를 사용하여 분류, 회귀 및 권장 사항 모델을 위한 우수한 품질의 ML.NET 모델을 생성할 수 있습니다. 또한 모델을 학습시키는 C# 코드가 생성되어 모델의 알고리즘과 설정을 조사합니다.

비고

이 문서에서는 현재 미리 보기로 제공되며 자료가 변경될 수 있는 ML.NET CLI 및 ML.NET AutoML을 참조합니다.

개요

사용 예:

mlnet regression --dataset "cars.csv" --label-col price

ML 작업 명령(mlnet, classification, regression, recommendationforecasting)은 다음 자산을 생성합니다.

  • 사용할 준비가 된 직렬화된 모델 .zip("최상의 모델")입니다.
  • 모델을 생성한 실행/점수를 매기는 C# 코드입니다.
  • 해당 모델을 생성하는 데 사용되는 학습 코드가 포함된 C# 코드입니다.

처음 두 자산은 최종 사용자 앱(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

명령 옵션

ML 작업 명령(mlnet, ,classification, regressionrecommendationforecasting)은 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 하면 모델 작성기에서 생성된 "mbconfig" 파일을 기반으로 모델이 학습됩니다. 이 명령이 작동하려면 학습 데이터가 "mbconfig" 파일과 동일한 디렉터리에 있어야 합니다.

-training-config <training-config> (REQUIRED)

--log-file-path <log-file-path>

-v, --verbosity <verbosity>

데이터 세트

--dataset | -d (문자열)

이 인수는 다음 옵션 중 하나에 대한 파일 경로를 제공합니다.

  • A: 전체 데이터 세트 파일: 이 옵션을 사용하고 사용자가 --test-dataset--validation-dataset를 제공하지 않는 경우 교차 검증(k-fold 등) 또는 자동 데이터 분할 방법을 내부적으로 사용하여 모델을 검증합니다. 이 경우 사용자는 데이터 세트 파일 경로를 제공해야 합니다.

  • B: 학습 데이터 세트 파일: 사용자가 모델 유효성 검사를 위한 데이터 세트를 제공하고 있는 경우(--test-dataset 및 선택적으로 --validation-dataset 사용), --dataset 인수는 "학습 데이터 세트"만 포함함을 의미합니다. 예를 들어 모델의 품질 유효성을 검사하고 정확도 메트릭을 얻기 위해 80개의% -20% 접근 방식을 사용하는 경우 "학습 데이터 세트"는 데이터의 80개% 가지며 "테스트 데이터 세트"에는 20개의% 데이터가 있습니다.

테스트 데이터 세트

--test-dataset | -t (문자열)

테스트 데이터 세트 파일을 가리키는 파일 경로입니다. 예를 들어 정확도 메트릭을 얻기 위해 정기적인 유효성 검사를 할 때 80% - 20% 방법을 사용하는 경우.

사용하는 --test-dataset경우, --dataset 또한 필요합니다.

--test-dataset--validation-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 또는 string)

이 인수를 사용하면 데이터 세트의 헤더에 설정된 열 이름 또는 데이터 세트 파일의 열 숫자 인덱스(열 인덱스 값이 0에서 시작됨)를 사용하여 특정 목표/대상 열(예측하려는 변수)을 지정할 수 있습니다.

이 인수는 분류회귀 문제에 사용됩니다.

항목 열

--item-col (int 또는 string)

항목 열에는 사용자가 평가하는 항목 목록이 있습니다(항목은 사용자에게 권장됨). 이 열은 데이터 세트의 헤더에 설정된 열 이름 또는 데이터 세트 파일의 열 숫자 인덱스(열 인덱스 값은 0에서 시작)를 사용하여 지정할 수 있습니다.

이 인수는 권장 사항 작업에만 사용됩니다.

등급 열

--rating-col (int 또는 string)

등급 열에는 사용자가 항목에 제공하는 등급 목록이 있습니다. 이 열은 데이터 세트의 헤더에 설정된 열 이름 또는 데이터 세트 파일의 열 숫자 인덱스(열 인덱스 값은 0에서 시작)를 사용하여 지정할 수 있습니다.

이 인수는 권장 사항 작업에만 사용됩니다.

사용자 열

--user-col (int 또는 string)

사용자 열에는 항목에 등급을 부여하는 사용자 목록이 있습니다. 이 열은 데이터 세트의 헤더에 설정된 열 이름 또는 데이터 세트 파일의 열 숫자 인덱스(열 인덱스 값은 0에서 시작)를 사용하여 지정할 수 있습니다.

이 인수는 권장 사항 작업에만 사용됩니다.

열 무시

--ignore-columns (문자열)

이 인수를 사용하면 데이터 세트 파일의 기존 열을 무시하여 학습 프로세스에서 로드 및 사용되지 않도록 할 수 있습니다.

무시하려는 열 이름을 지정합니다. ', '(공백이 있는 쉼표) 또는 '(공백)를 사용하여 여러 열 이름을 구분합니다. 공백이 포함된 열 이름(예: "로그인됨")에 따옴표를 사용할 수 있습니다.

예제:

--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 | -v (문자열)

표준 출력의冗長성 수준을 설정합니다.

허용되는 값은 다음과 같습니다.

  • q[uiet]
  • m[inimal] (기본적으로)
  • diag[nostic] (로깅 정보 수준)

기본적으로 CLI 도구는 작업 중이고 가능한 경우 남은 시간 또는 완료된 시간의 % 언급하는 등 작업 시 최소 피드백(minimal)을 표시해야 합니다.

도움말

-h |--help

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

참고하십시오