Model Insights 프레임워크를 사용하여 모델 최적화
작성 대상:
- 사용자
- 개발자
모델 인사이트 프레임워크는 데이터 과학자에게 실험을 기반으로 최적의 머신 러닝 모델을 빠르고 정보에 입각한 선택을 할 수 있는 도구를 Data Science Workspace에 제공합니다. 이 프레임워크는 머신 러닝 워크플로의 속도와 효과를 개선할 뿐만 아니라 데이터 과학자의 사용 편의성을 향상시킬 것입니다. 이 작업은 모델 튜닝을 지원하기 위해 각 머신 러닝 알고리즘 유형에 대한 기본 템플릿을 제공하여 수행됩니다. 최종 결과를 통해 데이터 과학자와 시민 데이터 과학자는 최종 고객을 위해 더 나은 모델 최적화 결정을 내릴 수 있습니다.
지표란?
모델을 구현하고 교육한 후 데이터 과학자가 수행할 다음 단계는 모델이 얼마나 잘 작동하는지 찾는 것입니다. 모델이 다른 모델과 비교하여 얼마나 효과적인지를 찾기 위해 다양한 지표가 사용됩니다. 사용된 지표의 몇 가지 예는 다음과 같습니다.
- 분류 정확도
- 커브 아래 영역
- 혼돈 지표
- 분류 보고서
레서피 코드 구성
현재 Model Insights Framework는 다음 런타임을 지원합니다.
레서피에 대한 샘플 코드는 아래의 recipes
경험-플랫폼-dsw-reference🔗 저장소에서 찾을 수 있습니다. 이 저장소의 특정 파일은 이 튜토리얼 전체에서 참조됩니다.
스칼라
레서피에 지표를 가져오는 방법에는 두 가지가 있습니다. 하나는 SDK에서 제공하는 기본 평가 지표를 사용하는 것이고 다른 하나는 사용자 지정 평가 지표를 작성하는 것입니다.
Scala에 대한 기본 평가 지표
기본 평가는 분류 알고리즘의 일부로 계산됩니다. 다음은 현재 구현된 평가자의 몇 가지 기본값입니다.
evaluation.class
com.adobe.platform.ml.impl.DefaultBinaryClassificationEvaluator
com.adobe.platform.ml.impl.DefaultMultiClassificationEvaluator
com.adobe.platform.ml.impl.RecommendationsEvaluator
평가기는 폴더의 애플리케이션.properties🔗 파일에 recipe
있는 레서피에 정의할 수 있습니다. 를 활성화하는 DefaultBinaryClassificationEvaluator
샘플 코드는 다음과 같습니다.
evaluation.class=com.adobe.platform.ml.impl.DefaultBinaryClassificationEvaluator
evaluation.labelColumn=label
evaluation.predictionColumn=prediction
training.evaluate=true
평가자 클래스가 활성화되면 기본적으로 교육 중에 여러 메트릭이 계산됩니다. 기본 지표는 다음 줄을 .application.properties
evaluation.metrics.com=com.adobe.platform.ml.impl.Constants.DEFAULT
evaluation.metrics.com
의 값을 변경하여 특정 지표를 활성화할 수 있습니다. 다음 예에서는 F-Score 지표가 활성화됩니다.
evaluation.metrics=com.adobe.platform.ml.impl.Constants.FSCORE
다음 표에는 각 클래스에 대한 기본 지표가 나와 있습니다. 사용자는 evaluation.metric
열의 값을 사용하여 특정 지표를 활성화할 수도 있습니다.
evaluator.class
evaluation.metric
DefaultBinaryClassificationEvaluator
-Recall
-Conversation Matrix
-F-Score
-Accuracy
-Receiver 작동 특성
-Area 수신기 작동 특성
PRECISION
-
RECALL
-
CONFUSION_MATRIX
-
FSCORE
-
ACCURACY
-
ROC
-
AUROC
DefaultMultiClassificationEvaluator
-리콜
-혼동 매트릭스
-F-점수
-정확도
-수신기 작동 특성
-수신기 작동 특성 아래 영역
PRECISION
-
RECALL
- -
CONFUSION_MATRIX
- -ROC
ACCURACY
FSCORE
AUROC
RecommendationsEvaluator
정규화 할인된 누적 이익
-평균 역수 순위
-지표 K
MEAN_AVERAGE_PRECISION
-
NDCG
-
MRR
-
METRIC_K
Scala에 대한 사용자 정의 평가 지표
사용자 지정 평가기는 파일의 인터페이스를 MLEvaluator.scala
확장하여 제공할 수 있습니다 Evaluator.scala
. 예제 Evaluator.scala 파일에서는 사용자 정의 split()
및 evaluate()
함수를 정의합니다. 함수는 split()
8:2의 비율로 데이터를 무작위로 분할하고 evaluate()
함수는 MAPE, MAE 및 RMSE의 3가지 메트릭을 정의하고 반환합니다.
MLMetric
경우 새 MLMetric
else를 만들 때 for 를 사용하지 "measures"
valueType
마십시오 else 사용자 지정 평가 지표 테이블에 지표가 채워지지 않습니다.metrics.add(new MLMetric("MAPE", mape, "double"))
이것 아님:
metrics.add(new MLMetric("MAPE", mape, "measures"))
레서피 내에서 정의되면 다음 단계는 레서피에서 활성화하는 것입니다. 이 작업은 프로젝트의 resources
폴더에 있는 application.properties 파일에서 수행됩니다. 여기서 evaluation.class
은(는) Evaluator.scala
에 정의된 Evaluator
클래스로 설정됩니다.
evaluation.class=com.adobe.platform.ml.Evaluator
Data Science Workspace에서 사용자는 실험 페이지의 "평가 지표" 탭에서 인사이트를 볼 수 있습니다.
Python/Tensorflow
현재 Python 또는 Tensorflow에 대한 기본 평가 지표가 없습니다. 따라서 Python 또는 Tensorflow에 대한 평가 지표를 가져오려면 사용자 지정 평가 지표를 만들어야 합니다. 이 작업은 Evaluator
클래스를 구현하여 수행할 수 있습니다.
Python에 대한 사용자 지정 평가 지표
사용자 지정 평가 지표의 경우 평가기에 대해 구현해야 하는 두 가지 기본 메서드가 있습니다. split()
및 evaluate()
.
Python의 경우 이 메서드는 Evaluator
클래스의 evaluator.py에 정의됩니다. Evaluator
의 예제는 evaluator.py 링크를 따르십시오.
Python에서 평가 지표를 만들려면 사용자가 evaluate()
및 split()
메서드를 구현해야 합니다.
evaluate()
메서드는 속성이 name
, value
및 valueType
인 지표 개체의 배열을 포함하는 지표 개체를 반환합니다.
split()
메서드의 목적은 데이터를 입력하고 교육 및 테스트 데이터 집합을 출력하는 것입니다. 이 예제에서 split()
메서드는 DataSetReader
SDK를 사용하여 데이터를 입력한 다음 관련 없는 열을 제거하여 데이터를 정리합니다. 여기에서 데이터의 기존 원시 피쳐로부터 추가 피쳐가 생성됩니다.
split()
메서드는 ML 모델을 교육하고 테스트하는 데 사용되는 교육 및 테스트 데이터 프레임을 반환해야 합니다.pipeline()
Tensorflow에 대한 사용자 정의 평가 지표
Tensorflow의 경우 Python과(와) 마찬가지로 Evaluator
클래스의 evaluate()
및 split()
메서드를 구현해야 합니다. evaluate()
의 경우 지표가 반환되어야 하지만 split()
은(는) 기차 및 테스트 데이터 세트를 반환합니다.
from ml.runtime.python.Interfaces.AbstractEvaluator import AbstractEvaluator
class Evaluator(AbstractEvaluator):
def __init__(self):
print ("initiate")
def evaluate(self, data=[], model={}, config={}):
return metrics
def split(self, config={}):
return 'train', 'test'
R
현재 R에 대한 기본 평가 지표가 없습니다. 따라서 R에 대한 평가 지표를 가져오려면 applicationEvaluator
클래스를 레시피의 일부로 정의해야 합니다.
R에 대한 사용자 정의 평가 지표
applicationEvaluator
의 주요 목적은 지표의 키-값 쌍을 포함하는 JSON 개체를 반환하는 것입니다.
이 applicationEvaluator.R을(를) 예로 사용할 수 있습니다. 이 예제에서 applicationEvaluator
은(는) 다음 세 개의 익숙한 섹션으로 분할됩니다.
- 데이터 로드
- 데이터 준비/기능 엔지니어링
- 저장된 모델 검색 및 평가
데이터는 먼저 retail.config.json🔗에 정의된 소스에서 데이터 세트로 로드됩니다. 여기에서 데이터는 기계 학습 모델에 맞게 정리되고 엔지니어링됩니다. 마지막으로, 모델은 데이터 세트 를 사용하여 예측하는 데 사용되며 예측 값과 실제 값에서 메트릭이 계산됩니다. 이 경우 MAPE, MAE 및 RMSE가 정의되고 개체에 반환됩니다 metrics
.
사전 설치 지표 및 시각화 차트 사용
Sensei Model Insights Framework 각 유형의 기계 학습 알고리즘에 대해 하나의 기본 템플릿 을 지원합니다. 아래 표는 일반적인 상위 수준 기계 학습 알고리즘 클래스와 해당 평가 메트릭 및 시각화를 보여줍니다.
-마페
-마제
-마에
- 정밀 회수
- 정확도
- F-점수(구체적으로 F1,F2)
- AUC
- ROC
- 각 클래스에 대해:
- 정밀도-재현율 정확도
- F-점수(특히 F1, F2)
-RI(Rand 지수), ARI(조정된 Rand 지수)
-균질성 점수, 완전성 점수 및 V-측정
-FMI(Fowlkes-Mallows 지수)
-순도
-Jaccard 지수
- 실루엣 계수
- CHI (Calinski-Harabaz 지수)
- DBI (Davies-Bouldin 지수)
- Dunn 지수
-정규화된 할인 누적 이득
-평균 역수 순위
-메트릭 K