R 모델 만들기
사용자 지정 리소스를 사용하여 R 모델 만들기
범주: 데이터 변환/조작
참고
적용 대상: Machine Learning Studio (클래식)
이 콘텐츠는 Studio (클래식)에만 해당 됩니다. Azure Machine Learning 디자이너에는 비슷한 끌어서 놓기 모듈이 추가 되었습니다. 이 문서에서는 두 가지 버전을 비교 하는방법에 대해 자세히 알아보세요.
모듈 개요
이 문서에서는 Azure Machine Learning Studio (클래식)에서 r 모델 만들기 모듈을 사용 하 여 r 스크립트에서 학습 되지 않은 모델을 만드는 방법을 설명 합니다.
Azure Machine Learning 환경의 R 패키지에 포함 된 모든 학습자 모델을 기반으로 할 수 있습니다.
모델을 만든 후에는 모델 학습 을 사용 하 여 Azure Machine Learning의 다른 학습자 같은 데이터 집합에 대 한 모델 학습을 수행할 수 있습니다. 모델을 사용 하 여 예측을 만드는 학습 된 모델을 점수 매기기 모델 에 전달할 수 있습니다. 그런 다음 학습된 모델을 저장할 수 있으며 점수 매기기 워크플로를 웹 서비스로 게시할 수 있습니다.
경고
현재는 R 모델의 점수가 매겨진 결과를 전달 하 여 모델을 평가 하거나 모델 교차 유효성 검사를 수행할 수 없습니다. 모델을 평가 해야 하는 경우 사용자 지정 R 스크립트를 작성 하 고 r 스크립트 실행 모듈을 사용 하 여 실행할 수 있습니다.
R 모델 만들기 를 사용 하 여 사용자 지정 r 모듈을 저장 하 고 다시 사용 하는 것 외에도 r을 사용 하 여 모델링 및 데이터 관리 프로세스의 고유한 구현을 만들고, 압축 형식으로 파일을 작업 영역에 업로드 한 다음 사용자 지정 모듈로 패키지를 등록할 수 있습니다. 자세한 내용은 사용자 지정 R 모듈을 참조 하세요.
R 모델 만들기를 구성 하는 방법
이 모듈을 사용 하려면 R에 대 한 중급 또는 전문 지식이 필요 합니다. 이 모듈은 Azure Machine Learning에 이미 설치 된 R 패키지에 포함 된 모든 학습자의 사용을 지원 합니다.
Azure AI Gallery 의이 샘플은 인기 있는 패키지를 사용 하 여 2 클래스 naive Bayes 분류자를 구현 e1070
합니다. + Create R Model. 예제를 작업 영역에 복사 하 고 따라 작업을 수행 하는 것이 좋습니다.
R 모델 만들기 의 속성 창에서 다음 스크립트를 제공 합니다.
강사 r 스크립트: 여기에서 제공 하는 r 스크립트는 모델을 학습 하는 데 사용 됩니다. 실험을 실행 하면 모델 학습 모듈에 배포 됩니다.
Scorer r 스크립트:이 입력에 대해 제공 하는 r 스크립트는 점수 매기기 전용입니다. 실험을 실행 하면 모델 점수 매기기 모듈에 배포 됩니다.
샘플 실험에는 모델 평가를 위한 그래프를 그리는 데 사용 되는 Python 스크립트 실행 모듈도 포함 되어 있습니다. 이 모듈은 웹 서비스에 게시할 때 선택 사항 이지만 실험을 개발할 때 유용 합니다.
- Python 스크립트에서 차트를 보려면 Python 모듈을 마우스 오른쪽 단추로 클릭 하 고 Python 장치 를 선택한 다음 시각화 를 선택 합니다.
- 모델 메트릭만 보려면 Python 모듈을 마우스 오른쪽 단추로 클릭 하 고 Python 데이터 집합 을 선택한 다음 시각화 를 선택 합니다.
선택적 Python 모듈의 코드는 모델 평가를 위한 python 모듈을 참조 하세요.
학습 스크립트
다음 예제에서는 교육 담당자 R 스크립트 에서 사용할 수 있는 코드 형식을 보여 줍니다.
이 스크립트는 R 패키지를 로드 하 고, 패키지의 학습자를 사용 하 여 모델을 만들며, r 모델 만들기 에 제공 된 미리 정의 된 상수 및 함수를 사용 하 여 기능 및 레이블 열을 구성 합니다.
library(e1071)
features <- get.feature.columns(dataset)
labels <- as.factor(get.label.column(dataset))
train.data <- data.frame(features, labels)
feature.names <- get.feature.column.names(dataset)
names(train.data) <- c(feature.names, "Class")
model <- naiveBayes(Class ~ ., train.data)
첫 번째 줄은 사용하려는 Naïve Bayes 분류자 알고리즘이 포함된 R 패키지, e1071 을 로드합니다. 이 패키지는 Azure 기계 학습 환경에 미리 설치된 패키지 중 하나이므로 패키지를 다운로드하거나 설치하지 않아도 됩니다.
다음 줄은 데이터 집합에서 기능 열과 레이블 열을 가져온 다음 라는 새 R 데이터 프레임으로 결합 합니다
train.data
.features <- get.feature.columns(dataset) labels <- as.factor(get.label.column(dataset)) train.data <- data.frame(features, labels) feature.names <- get.feature.column.names(dataset)
다음 미리 정의 된 함수를 사용 합니다.
결합 된 데이터 집합의 이름은의 열 이름으로 지정 되며
train.data
, 임시 이름이Class
레이블 열에 대해 만들어집니다.names(train.data) <- c(feature.names, "Class")
코드의 마지막 줄은 데이터 프레임의 변수 (기능) 및 결과 (레이블)의 함수로 Naive Bayes 분류자 알고리즘을 정의 합니다
train.data
.model <- naiveBayes(Class ~ ., train.data)
모델 만들기, 학습 및 점수 매기기 스크립트 전체에서 변수 이름을 사용 해야 합니다
model
.
점수 매기기 스크립트
다음 코드는 Scorer r 스크립트 에서 제공 하는 r 코드의 형식을 보여 줍니다.
library(e1071)
probabilities <- predict(model, dataset, type="raw")[,2]
classes <- as.factor(as.numeric(probabilities >= 0.5))
scores <- data.frame(classes, probabilities)
첫 번째 줄은 패키지를 로드합니다.
두 번째 줄은 필요한 변수 이름으로 지정 된 학습 스크립트의 학습 된 모델을 사용 하 여 점수 매기기 데이터 집합에 대 한 예측 확률을 계산 합니다
model
.세 번째 줄은 예측된 클래스 레이블을 할당할 때 확률에 임계값을 0.5로 적용합니다.
마지막 줄에서는 클래스 레이블과 확률을 출력 데이터 프레임인
scores
로 결합합니다.모델 점수 매기기 모듈에 전달 되는 데이터 프레임에는 이름이 있어야 합니다
scores
.
선택적 Python 평가 스크립트
Azure AI Gallery의 샘플 실험에는 모델 평가를 위한 메트릭 및 차트를 생성 하는 데 사용 되는 다음 Python 스크립트가 포함 되어 있습니다.
def azureml_main(dataframe):
import matplotlib
matplotlib.use("agg")
from sklearn.metrics import accuracy_score, precision_score, recall_score, roc_auc_score, roc_curve
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
scores = dataframe.ix[:, ("Class", "classes", "probabilities")]
ytrue = scores["Class"]
ypred = np.array([float(val) for val in scores["classes"]])
probabilities = scores["probabilities"]
accuracy, precision, recall, auc = \
accuracy_score(ytrue, ypred),\
precision_score(ytrue, ypred),\
recall_score(ytrue, ypred),\
roc_auc_score(ytrue, probabilities)
metrics = pd.DataFrame();
metrics["Metric"] = ["Accuracy", "Precision", "Recall", "AUC"];
metrics["Value"] = [accuracy, precision, recall, auc]
# Plot ROC Curve
fpr, tpr, thresholds = roc_curve(ytrue, probabilities)
fig = plt.figure()
axis = fig.gca()
axis.plot(fpr, tpr, linewidth=8)
axis.grid("on")
axis.set_xlabel("False positive rate")
axis.set_ylabel("True positive rate")
axis.set_title("ROC Curve")
fig.savefig("roc.png")
return metrics,
사용자 지정 R 모델 워크플로를 웹 서비스로 게시
실험을 실행 한 후에는 전체 실험을 웹 서비스로 게시할 수 있습니다.
Studio (클래식) 실험에서 웹 서비스를 만드는 방법에 대 한 업데이트 된 지침은 연습 5 단계: Azure Machine Learning 웹 서비스 배포 를 참조 하세요.
기본적으로 웹 서비스는 레이블 열을 포함하여 학습 데이터의 모든 입력 열이 제공될 것으로 예상합니다. 데이터 집합에서 입력 데이터 원본과 모델 점수 매기기 모듈 사이 에 있는 Select 열의 인스턴스를 추가 하 여 예측 하려는 레이블을 제외할 수 있습니다.
기술 정보
R 모델 만들기 모듈은 Cran R만 사용 하도록 지원 합니다. 다른 버전의 R을 선택 하거나 Microsoft R Open을 사용할 수 없습니다.
모델은 모듈을 처음 실행하고 나면 캐시되고, 모듈은 입력 스크립트에 변경이 수행될 때까지 후속 실행에서 호출되지 않습니다. R 스크립트에서 다음 중 하나를 사용하는 경우 이 동작을 고려하세요.
- 난수를 생성하는 함수
- 난수를 생성하는 함수
- 기타 비결정적 함수
이 모듈을 사용 하 여 만든 사용자 지정 R 모델은 다음 모듈에서 사용할 수 없습니다.
R 모델은 자동으로 범주 데이터의 기능 표준화를 수행하거나 누락 값을 처리하지 않습니다. 이러한 변수를 처리하는 작업은 R 스크립트 학습 및 점수 매기기에서 수행해야 합니다.
미리 정의 된 함수의 표
사용 | Description |
---|---|
get.feature.columns(dataset) |
모든 기능 열을 가져옵니다. |
get.label.column(dataset, label.type=TrueLabelType) |
형식이 제공된 경우 레이블 열을 가져옵니다. 사용 가능한 형식 목록은 상수 섹션을 참조하세요. |
get.label.column.names(dataset) |
모든 레이블 열의 이름을 가져옵니다. |
get.label.column.name(dataset, label.type=TrueLabelType) |
형식이 제공된 경우 레이블 열의 이름을 가져옵니다. 사용 가능한 형식 목록은 상수 섹션을 참조하세요. |
get.label.column.types(dataset) |
모든 레이블 열의 형식을 가져옵니다. |
get.feature.column.names(dataset) |
모든 기능 열의 이름을 가져옵니다. |
dataset < - set.score.column(dataset, score.type, column.name) |
형식이 지정된 경우 점수 열을 설정합니다. 사용 가능한 형식 목록은 상수 섹션을 참조하세요. |
dataset < - set.feature.channel(dataset, channel.name, column.names) |
이름이 지정된 경우 기능 채널을 설정합니다. 사용 가능한 이름 목록은 상수 섹션을 참조하세요. |
미리 정의 된 상수 테이블
상수 | 설명 |
---|---|
TrueLabelType | True 레이블 열 이름 |
ScoredLabelType | 점수를 매긴 레이블 열 형식 |
RawScoreType | 원시 점수 열 유형 |
CalibratedScoreType | 보정 점수 열 형식 |
ScoredProbabilitiesMulticlassColumnTypePattern | 다중 클래스 분류자의 점수를 매긴 확률 열 형식을 준비하는 패턴 |
BayesianLinearRegressionScoresFeatureChannel | Bayes 선형 회귀 점수가 있는 기능 채널의 이름 |
BinaryClassificationScoresFeatureChannel | 이진 분류 점수가 있는 기능 채널의 이름 |
MulticlassClassificationScoresFeatureChannel | 다중 클래스 분류 점수가 있는 기능 채널의 이름 |
OrdinalRegressionScoresFeatureChannel | 서수 회귀 점수가 있는 기능 채널의 이름 |
RegressionScoresFeatureChannel | 회귀 점수가 있는 기능 채널의 이름 |
예제
기계 학습 실험에서이 모듈을 사용 하는 방법에 대 한 추가 예제는 Azure AI Gallery를 참조 하세요.
예상 입력
속성 | 유형 | 설명 |
---|---|---|
강사 R 스크립트 | 스크립트 | 데이터 집합을 입력으로 사용하고 학습되지 않은 모델을 출력하는 R 스크립트입니다. |
점수 기록자 R 스크립트 | 스크립트 | 모델과 데이터 집합을 입력으로 사용하고 스크립트에 지정된 점수를 출력하는 R 스크립트입니다. |
출력
속성 | 유형 | 설명 |
---|---|---|
모델 | ILearner 인터페이스 | 학습되지 않은 모델 |