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. 예제를 작업 영역에 복사 하 고 따라 작업을 수행 하는 것이 좋습니다.

  1. 실험에 R 모델 만들기, 모델 학습, 모델 점수 매기기모듈을 추가 합니다.

  2. R 모델 만들기속성 창에서 다음 스크립트를 제공 합니다.

  3. 샘플 실험에는 모델 평가를 위한 그래프를 그리는 데 사용 되는 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)
    
  • 다음 미리 정의 된 함수를 사용 합니다.

    • get.label.columns()모델 학습 모듈에서 클래스 레이블로 선택 된 열을 반환 합니다.

    • get.feature.columns()데이터 집합에서 기능으로 지정 된 열을 선택 합니다.

      기본적으로 레이블 열을 제외한 모든 열은 Studio (클래식)의 기능으로 간주 됩니다. 따라서 특정 열을 기능으로 표시 하려면 메타 데이터 편집을 사용 하거나 R 스크립트 내에서 열 집합을 선택 합니다.

    • 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 인터페이스 학습되지 않은 모델

참고 항목

R 스크립트 실행
R 언어 모듈