classification
, regression
및 recommendation
명령은 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
, recommendation
및 forecasting
)은 다음 자산을 생성합니다.
- 사용할 준비가 된 직렬화된 모델 .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
, 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
하면 모델 작성기에서 생성된 "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 dataset
와 test dataset
를 사용하는 경우, 유효성 검사 단계는 두 부분으로 나뉩니다.
- 첫 번째 부분에서는 모델을 살펴보고 유효성 검사 데이터(=유효성 검사)를 사용하여 가장 성능이 좋은 방법을 선택하기만 하면 됩니다.
- 그런 다음, 선택한 방법(=테스트)의 정확도를 예측합니다.
따라서 데이터 분리는 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
각 명령의 매개 변수에 대한 설명과 함께 명령에 대한 도움말을 출력합니다.
참고하십시오
.NET