R 스크립트 실행

중요

Machine Learning Studio(클래식)에 대한 지원은 2024년 8월 31일에 종료됩니다. 해당 날짜까지 Azure Machine Learning으로 전환하는 것이 좋습니다.

2021년 12월 1일부터 새로운 Machine Learning Studio(클래식) 리소스를 만들 수 없습니다. 2024년 8월 31일까지는 기존 Machine Learning Studio(클래식) 리소스를 계속 사용할 수 있습니다.

ML Studio(클래식) 설명서는 사용 중지되며 나중에 업데이트되지 않을 수 있습니다.

Machine Learning Studio(클래식) 실험에서 R 스크립트를 실행합니다.

범주: R 언어 모듈

참고

적용 대상: Machine Learning Studio(클래식)

유사한 끌어서 놓기 모듈은 Azure Machine Learning 디자이너에서 사용할 수 있습니다.

모듈 개요

이 문서에서는 Machine Learning Studio(클래식)에서 R 스크립트 실행 모듈을 사용하여 실험에서 R 코드를 호출하고 실행하는 방법을 설명합니다.

이 모듈에 R 코드를 추가하여 Studio(클래식)에서 사용할 수 없는 다양한 사용자 지정 작업을 수행할 수 있습니다. 예를 들면 다음과 같습니다.

  • 사용자 지정 데이터 변환 만들기
  • 예측 평가에 고유한 메트릭 사용
  • Studio(클래식)에서 독립 실행형 모듈로 구현되지 않은 알고리즘을 사용하여 모델 빌드

Studio에서 지원되는 R 버전(클래식)

Studio(클래식)는 CRAN에서 사용할 수 있는 R의 일반적인 배포와 모든 기본 R 패키지와 Revo 패키지를 포함하는 MRO(Microsoft R Open)를 모두 지원합니다.

실험에서 사용할 R 버전을 지정할 수 있습니다. 그러나 다른 버전의 R은 작업 영역에 설치할 수 없습니다.

R 배포를 선택하기 전에 필요한 패키지를 결정하는 것이 좋습니다. 일부 패키지는 CRAN R 및 Microsoft R Open과 호환되지 않습니다.

참고

현재 R 모델 만들기 모듈은 특정 버전의 R로 제한됩니다. 따라서 실험에서 사용자 지정 R 모델을 사용하는 경우 동일한 실험의 R 스크립트 실행 모듈도 동일한 R 버전을 사용해야 합니다. 다음 문서에서 지원되는 R 버전을 찾습니다. R 패키지는 Machine Learning Studio(클래식)에서 지원됩니다.

지원되는 R 패키지

Machine Learning R 환경에는 이미 500개가 넘는 R 패키지가 설치되어 있습니다. 물론 모든 항목이 기본적으로 로드되는 것은 아니지만 R 코드의 일부로 쉽게 로드할 수 있습니다.

모든 현재 패키지 목록을 얻으려면 R 스크립트 실행 모듈에 다음 코드를 추가하고 모듈을 실행합니다.

data.set <- data.frame(installed.packages())
maml.mapOutputPort("data.set")

이 항목에서는 Machine Learning 지원되는 패키지와 CRAN R 및 Microsoft R Open과의 호환성을 나열합니다. Machine Learning Studio(클래식)에서 지원하는 R 패키지를 참조하세요.

새 R 패키지 설치

R 스크립트 실행 모듈을 사용하여 작업 영역에 새 R 패키지를 설치합니다. 패키지는 압축된 형식으로 업로드해야 합니다. 실험이 Azure 런타임 환경에 로드되면 패키지가 압축을 풀고 실험 작업 영역의 R 환경에 추가됩니다. 자세한 내용은 새 R 패키지를 설치하는 방법을 참조하세요.

압축을 풀고 있는 패키지는 실험이 실행 되지 않을 때 작업 영역에 유지되지 않습니다. 이러한 이유로 사용하려는 추가 R 패키지는 작업 영역 또는 Azure Storage에서 압축된 형식으로 사용할 수 있어야 합니다.

각 모듈이 런타임에 다른 컨테이너에 로드될 수 있으므로 R 스크립트 실행 모듈의 별도 인스턴스에서 패키지를 공유할 수 없습니다. 그러나 R 개체를 데이터 세트로 노출하여 모듈 간에 공유할 수 있습니다. 자세한 내용은 모듈 간에 R 개체 전달을 참조하세요.

샘플 실험

Azure AI 갤러리에는 사용자 지정 R 스크립트의 여러 예가 있습니다.

  • 학생 성과: 사용자 지정 R 스크립트를 사용하여 여러 모델에 대한 평가 결과를 단일 데이터 세트로 결합합니다. 또한 이 샘플에서는 R 스크립트 실행 모듈의 R 코드를 사용하여 시간에 따라 바뀌는 열 16개를 컴퓨팅합니다.

  • 유방암: R 스크립트 실행 모듈의 사용자 지정 코드를 사용하여 긍정적인 예제를 복제하고 메트릭을 결합합니다.

  • 시계열 예측: 이 샘플에서는 R 스크립트를 실행하여 사용자 지정 메트릭을 생성한 다음 행 추가 모듈을 사용하여 단일 테이블로 결합합니다.

R 스크립트 실행을 구성하는 방법

R 스크립트 실행 모듈을 구성하려면 작업 영역에서 실행할 R 코드와 선택적 입력 집합을 제공합니다.

스크립트 번들 입력에 첨부할 압축된 보관 파일에서 준비하는 경우 추가 R 코드가 포함된 파일을 추가할 수도 있습니다.

추가 패키지를 설치하려면 압축된 보관 파일에 포함하세요.

  1. R 스크립트 실행 모듈을 실험에 추가합니다. 이 모듈은 R 언어 모듈 그룹의 Machine Learning Studio(클래식)에서 찾을 수 있습니다.

  2. 스크립트에 필요한 입력을 커넥트. 입력에는 데이터, 압축된 파일 형식으로 작업 영역에 추가한 R 패키지 및 추가 R 코드가 포함될 수 있습니다.

    • Dataset1: 첫 번째 입력은 기본 데이터 세트를 연결하는 위치입니다(선택 사항). 입력 데이터 세트의 형식을 CSV, TSV 또는 ARFF 파일로 지정하거나 Machine Learning 데이터 세트를 연결할 수 있습니다.

    • Dataset2: 두 번째 입력(선택 사항)은 두 번째 데이터 세트의 추가를 지원합니다. 또한 이 데이터 세트는 CSV, TSV 또는 ARFF 파일로 포맷되거나 Machine Learning 데이터 세트에 연결할 수 있습니다.

    • 스크립트 번들: 선택 사항인 세 번째 입력은 .ZIP 형식의 파일을 사용합니다. 압축된 파일에는 여러 파일 및 여러 파일 형식이 포함될 수 있습니다. 예를 들어 압축된 보관 파일에는 스크립트 파일의 R 코드, 스크립트에서 사용할 R 개체, .ZIP 형식에 포함된 R 패키지 또는 지원되는 형식 중 하나의 데이터 세트가 포함될 수 있습니다.

  3. R 스크립트 텍스트 상자에 R 스크립트 를 입력합니다. 입력 노드에서 데이터 세트를 사용하는 가장 쉬운 방법입니다.

    시작하는 데 도움이 되도록 R 스크립트 텍스트 상자에 편집하거나 바꿀 수 있는 다음 샘플 코드가 미리 채워집니다.

    # Map 1-based optional input ports to variables
    dataset1 <- maml.mapInputPort(1) # class: data.frame
    dataset2 <- maml.mapInputPort(2) # class: data.frame
    
    # Contents of optional Zip port are in ./src/
    # source("src/yourfile.R");
    # load("src/yourData.rdata");
    
    # Sample operation
    colnames(dataset2) <- c(dataset1['nombre_columna'])$nombre_columna;
    data.set = dataset2;
    
    # You'll see this output in the R Device port.
    # It'll have your stdout, stderr and PNG graphics device(s).   
    
    # Select data.frame to be sent to the output Dataset port
    maml.mapOutputPort("data.set"); 
    

    입력을 사용하고 출력에 쓰는 방법에 대한 자세한 내용은 이 항목의 R 코드 샘플을 참조하세요.

    참고

    외부 도구에서 잘 실행되는 R 코드는 Azure ML 실험에서 실행하려면 작은 변경이 필요할 수 있습니다. 예를 들어 CSV 형식으로 제공하는 입력 데이터를 코드에서 사용하려면 데이터 세트로 명시적으로 변환해야 합니다. R 언어에서 사용되는 데이터 및 열 형식도 Machine Learning 사용되는 데이터 및 열 형식과는 몇 가지 면에서 다릅니다. 자세한 내용은 기술 참고 사항 섹션을 참조하세요.
    R 스크립트 실행 모듈은 R 환경의 샌드박스에서 실행되고 있습니다. 이 모듈에서는 HTTP/SQL 연결을 설정하지 않는 것이 좋습니다.

  4. 임의 시드: R 환경 내에서 임의 시드 값으로 사용할 값을 입력합니다. 이 매개 변수는 R 코드에서 set.seed(value)를 호출하는 경우와 동일합니다.

  5. R 버전: 작업 영역에서 로드할 R 버전을 선택합니다.

    • CRAN R 3.1.0: 포괄적인 R 보관 네트워크 웹 사이트는 오픈 소스 R 언어에 대한 리포지토리입니다. 자세한 내용은 CRAN 웹 사이트를 참조하세요.

    • Microsoft R Open 3.2.2: MRO는 Microsoft Corporation의 향상된 R 배포입니다. 오픈 소스 R 엔진을 기반으로 하는 오픈 소스 플랫폼이며 동일한 버전의 R에서 작동하는 모든 R 패키지, 스크립트 및 애플리케이션과 완벽하게 호환됩니다. 그러나 MRO는 고성능 다중 스레드 수학 라이브러리의 사용으로 인해 표준 R 분포에 비해 향상된 성능을 제공합니다. 자세한 내용은 Microsoft R Open을 참조하세요.

    • 다른 버전의 R은 작업 영역에 설치할 수 없습니다.

    • Machine Learning 여러 버전의 R을 지원하지만 모든 실험에서 하나의 버전만 사용할 수 있습니다.

  6. 실험을 실행하거나 R 스크립트 실행 모듈을 선택하고 선택한 실행을 클릭합니다.

결과

모듈은 여러 출력을 반환할 수 있습니다.

  • 데이터 세트를 다시 가져오기 위해 R 코드는 단일 R data.frame을 반환해야 합니다.
  • Machine Learning Studio(클래식) 로그 영역에 표시되는 R 그래픽 디바이스에 이미지를 표시할 수 있습니다.
  • 이미지를 유지하려면 파일을 작성하거나 테이블 형식으로 직렬화할 수 있습니다.
  • 작업 영역에 개체를 저장할 수 있습니다.
  • R의 표준 메시지 및 오류는 모듈의 로그로 반환됩니다.

(1) 결과 데이터 세트

이 출력에는 모듈의 R 코드에 의해 생성된 데이터 프레임이 포함됩니다.

하나의 데이터 프레임만 출력할 수 있습니다. 다른 테이블 형식 개체는 R 함수를 사용하여 데이터 프레임으로 변환해야 합니다. 모듈의 R 코드에 의한 데이터 프레임 출력은 자동으로 내부 데이터 테이블 형식으로 변환됩니다.

  • 반환된 개체가 Studio(클래식)와 호환되는지 확인하려면 True를 반환해야 하는 를 사용합니다 is.data.frame.

  • 다른 R 개체를 반환하려면 개체를 바이트 배열로 직렬화하거나 원하는 데이터를 data.frame으로 반환하는 함수를 사용합니다.

(2) R 디바이스

R 디바이스는 R 인터프리터를 사용하여 콘솔 출력(표준 출력 및 표준 오류)과 PNG 그래픽 표시를 모두 지원합니다.

  • R 콘솔로 전송된 메시지(표준 출력 및 표준 오류)를 보려면 실행이 완료된 후 모듈을 마우스 오른쪽 단추로 클릭하고 R 디바이스를 선택하고 시각화를 선택합니다.

  • R 디바이스 포트에서 생성된 그래픽을 보려면 실행이 완료된 후 모듈을 마우스 오른쪽 단추로 클릭하고 R 디바이스를 선택하고 시각화를 선택합니다.

예를 들어 다음 이미지는 몇 줄의 R 코드에 의해 생성됩니다.

Example word cloud

Azure AI 갤러리에서 이 샘플과 관련 샘플을 찾을 수 있습니다.

  • R 스크립트 실행 모듈에서 생성된 이미지를 저장하려면 이미지를 마우스 오른쪽 단추로 클릭하고 로컬 복사본을 저장합니다. 또는 R 그래픽 디바이스 함수 중 하나를 호출하여 이 예제에 설명된 대로 실험과 연결된 Azure Blob Storage 계정에 이미지 파일을 쓸 수 있습니다.

샘플 R 스크립트 및 R 팁

다양한 방식으로 사용자 지정 R 스크립트를 사용하여 실험을 확장할 수 있습니다. 이 섹션에서는 몇 가지 일반적인 작업에 대한 샘플 코드를 제공합니다.

R 스크립트를 입력으로 추가

R 스크립트 실행 모듈은 미리 준비하고 ZIP 파일의 일부로 작업 영역에 업로드하는 경우 임의의 R 스크립트 파일을 입력으로 사용할 수 있도록 지원합니다.

  1. R 코드가 포함된 ZIP 파일을 작업 영역에 업로드하려면 새로 만들기, 데이터 세트, 로컬 파일에서 선택 및 Zip 파일 옵션을 차례로 클릭합니다.

  2. 압축된 패키지를 Studio(클래식)에 업로드한 후 저장된 데이터 세트 목록에서 압축된 파일을 사용할 수 있는지 확인한 다음 데이터 세트를 스크립트 번들 입력 포트에 연결합니다.

  3. 압축된 파일에 Machine Learning Studio(클래식)에 아직 설치되지 않은 R 패키지가 포함된 경우 R 스크립트 실행 모듈에서 사용자 지정 코드의 일부로 R 패키지를 설치해야 합니다. ZIP 파일에 포함된 모든 파일은 실험 런타임 중에 사용할 수 있습니다.

    스크립트 번들 파일에 디렉터리 구조가 포함 되어 있는 경우 그 구조가 유지됩니다. 그러나 디렉터리 src 를 경로 앞에 추가하도록 코드를 변경해야 합니다.

이미지, 모델 및 기타 개체 생성

이미지 또는 다른 임의의 R 개체를 생성해야 하는 경우 이 예제와 같이 바이트 배열로 직렬화한 다음 data.frame으로 serialize할 수 있습니다.

as.data.frame(as.integer(serialize(g,con=NULL)));   

라이브러리의 Graph 데이터 프레임은 https://igraph.org/r/ 데이터 프레임으로 serialization을 지원하지 않습니다. 대신 패키지의 get.data.frame 함수를 igraph 사용하여 에지 및 꼭짓점 정보를 데이터 프레임에 넣습니다.

vertices <- get.data.frame(g, what="vertices")   

그런 다음 R 스크립트 실행 모듈에서 가져올 수 있는 data.frame으로 그래프 개체를 반환할 수 있습니다.

edges <- get.data.frame(g, what="edges")  

입력에서 읽고 출력에 쓰기

다음 예제에서는 입력 및 출력 포트를 사용하는 방법을 보여 줍니다. 입력 데이터를 테이블로 읽고 테이블의 복사본을 자체에 추가하여 테이블 크기를 효과적으로 두 배로 늘렸습니다. 그런 다음 결과를 출력 포트로 전송합니다.

# Map existing dataset to first input port  
dataset1 <- maml.mapInputPort(1) # class: data.frame  
# Concatenate dataset1 to dataset 1  
newdataset = rbind(dataset1, dataset1)  
# Send the combined dataset to the output port  
maml.mapOutputPort("newdataset");  

ZIP 파일을 입력으로 읽습니다.

이 예제에서는 압축된 형식으로 Machine Learning Studio(클래식)에 데이터 세트를 추가한 다음 R 스크립트 실행 모듈에 대한 입력으로 데이터를 사용하는 방법을 보여 줍니다.

  1. CSV 형식으로 데이터 파일을 만들고 이름을 "mydatafile.csv"로 지정합니다.
  2. .ZIP 파일을 만들고 보관 파일에 CSV 파일을 추가합니다.
  3. 압축된 데이터 세트의 압축을 풀기에서 설명한 대로 압축된 파일을 Machine Learning 작업 영역에 업로드.
  4. 결과 데이터 세트를 R 스크립트 실행 모듈의 ScriptBundle 입력에 연결합니다. 즉, 아직 압축을 풀지 마십시오!
  5. 다음 코드를 사용하여 압축된 파일에서 CSV 데이터를 읽습니다. 나중에 오류를 방지하려면 필요한 경우 데이터 파일에 사용되는 인코딩을 지정합니다.
mydataset=read.csv("src/newdata.csv",encoding="UTF-8");  
nrow(mydataset);  
ncol(mydataset);  
# Map new dataset to the first output port  
maml.mapOutputPort("mydataset");  

참고

R 스크립트 실행 모듈에 전달된 모든 데이터는 R 코드에 사용할 형식으로 변환 data.frame 됩니다. 이는 CSV 파일, ARFF 파일 등을 포함하여 Machine Learning 사용하는 데이터와 DataTable format 호환되는 모든 데이터에 적용됩니다.

행 복제

이 샘플에서는 샘플의 균형을 맞추기 위해 데이터 세트의 양수 샘플을 20단계로 복제하는 방법을 보여 줍니다.

dataset <- maml.mapInputPort(1)
data.set <- dataset[dataset[,1]==-1,]  
pos <- dataset[dataset[,1]==1,]  
for (i in 1:20) data.set <- rbind(data.set,pos)  
row.names(data.set) <- NULL
maml.mapOutputPort("data.set")  

Arules 패키지에 따라 사용자 지정 학습자 호출

여기에 설명된 대로 새 R 패키지를 .ZIP 파일로 업로드하여 Machine Learning 작업 영역에 설치할 수 있습니다. 다음 코드에서는 업로드된 패키지를 사용하는 방법을 보여 줍니다.

  1. arules 작업 영역에 패키지와 arulesViz 패키지가 이미 추가되었다고 가정합니다.

  2. R 스크립트 실행모듈의 세 번째 입력 포트에 업로드된 .ZIP 파일을 커넥트.

  3. R 스크립트 텍스트 상자에서 다음을 사용하여 R 언어 패키지Arules에서 제공하는 사전 연결 규칙 알고리즘을 호출하고 시장 바구니 분석 작업에 학습자를 적용합니다.

library("arules")  
library("arulesViz")  
dataset <- read.transactions(file="src/SalesReport.csv", rm.duplicates= TRUE,     format="single",sep=",",cols =c(1,2))
#dataset <- sapply(dataset,as.factor)  
basket <- apriori(dataset,parameter = list(sup = 0.5, conf = 0.9,target="rules"));  
inspect(basket)  
# if this is not NULL i.e. if there are rules
plot(basket)

사용자 지정 Naïve Bayes 학습자 호출

이 예제에서는 Studio(클래식)에 포함되지 않은 R 라이브러리를 호출하는 방법을 보여 줍니다.

  1. 라이브러리가 포함된 e1071 압축된 파일을 작업 영역에 업로드.

  2. R 스크립트 실행모듈의 세 번째 입력 포트에 업로드된 .ZIP 파일을 커넥트.

  3. R 스크립트 텍스트 상자에서 다음 코드를 사용하여 Naïve Bayes 학습자를 구현합니다.

    library(e1071)  
    features <- get.feature.columns(dataset)  
    labels   <- 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 득점자 호출

라이브러리에서 만든 e1071 기존 모델이 있는 경우 라이브러리에서 제공하는 사용자 지정 득점자를 호출할 e1071 수 있습니다.

그러나 R 스크립트 실행 모듈의 별도 인스턴스에서 채점을 수행하려면 라이브러리를 포함하는 e1071 압축된 파일을 채점 모듈에 대한 입력으로 제공하고 라이브러리를 로드해야 합니다. 각 모듈이 컨테이너에서 독립적으로 실행하기 때문입니다.

library(e1071)  
features <- get.feature.columns(dataset)  
scores <- predict(model, features)  

단일 실험 내에 포함된 모든 R 모듈은 동일한 버전의 R 런타임을 사용해야 합니다. 한 모듈에서 CRANR을 사용하고 다른 모듈에서 Microsoft R Open을 사용하는 등 R 버전을 혼합할 수 없습니다.

그래픽 파일 작성

Studio(클래식)는 R 디바이스 출력 포트를 사용하여 PNG 파일 표시를 지원하지만 결과를 보고에 사용할 Azure Storage Blob의 PDF 파일로 생성할 수 있습니다.

이 예제에서는 R 스크립트를 실행 하여 차트를 PDF 파일로 생성하는 방법을 보여 줍니다.

  1. R 스크립트를 실험에 추가합니다.

  2. R 스크립트의 일부로 기본 PDF 파일을 만들고 R 스크립트 실행 모듈에서 PDF 파일의 Base64로 인코딩된 문자열을 반환합니다.

    d <- maml.mapInputPort(1)  
    d$dteday <- as.numeric(d$dteday)  
    pdf()  
    plot(d)  
    dev.off()  
    library(caTools)  
    b64ePDF <- function(filename) {  
                maxFileSizeInBytes <- 5 * 1024 * 1024 # 5 MB  
                return(base64encode(readBin(filename, "raw", n = maxFileSizeInBytes)))  
    }  
    
    d2 <- data.frame(pdf = b64ePDF("Rplots.pdf"))  
    
    maml.mapOutputPort("d2");    
    
  3. 이 출력을 데이터 내보내기 모듈에 전달하고 이진 값을 Azure Blob Storage에 저장합니다.

R 스크립트 실행 모듈 간에 R 개체 전달

내부 serialization 메커니즘을 사용하면 R 스크립트 실행 모듈 인스턴스 간에 R 개체를 전달할 수 있습니다. 이 예제에서는 두 개의 R 스크립트 실행 모듈 간에 명명된 A R 개체를 이동하려는 것으로 가정합니다.

  1. 실험에 첫 번째 R 스크립트 실행 모듈을 추가하고 R 스크립트 텍스트 상자에 다음 코드를 입력하여 직렬화된 개체를 A 모듈의 출력 데이터 테이블에 열로 만듭니다.

    serialized <- as.integer(serialize(A,NULL))  
    data.set <- data.frame(serialized,stringsAsFactors=FALSE)
    maml.mapOutputPort("data.set")
    

    직렬화 함수는 Machine Learning 지원하지 않는 R Raw 형식으로 데이터를 출력하기 때문에 정수 형식으로의 명시적 변환이 필요합니다.

  2. R 스크립트 실행 모듈의 두 번째 인스턴스를 추가하고 이를 이전 모듈의 출력 포트에 연결합니다.

  3. R 스크립트 텍스트 상자에 다음 코드를 입력하여 입력 데이터 테이블에서 개체 A 를 추출합니다.

    dataset <- maml.mapInputPort(1)  
    A <- unserialize(as.raw(dataset$serialized))  
    

새 R 패키지 설치

Machine Learning 기본적으로 설치되지 않은 R 패키지를 추가할 수 있습니다. 새 패키지를 추가하려면 다음 단계가 필요합니다.

  • 패키지에 대한 Windows 이진 파일을 압축된 형식으로 가져옵니다.
  • 원하는 패키지 및 모든 종속성을 .ZIP 확장이 있는 새 단일 압축 보관 파일에 압축합니다.
  • 압축된 파일을 작업 영역에 데이터 세트로 업로드.
  • 새 데이터 세트를 R 스크립트 실행 모듈에 커넥트.
  • 모듈에서 R 스크립트를 사용하여 패키지를 설치합니다.

다음 절차에서는 새 패키지를 해당 종속성과 함께 추가합니다.

  1. Machine Learning 가져오려는 패키지의 압축된 파일을 다운로드합니다. 압축된 파일의 Windows 버전을 가져와야 합니다.

    참고

    작업 영역에서 사용하려는 R 패키지를 이미 추출한 경우 패키지를 다시 압축하거나 R 패키지를 Studio(클래식)에 업로드할 수 있을 때 원래 ZIP 파일을 제공해야 합니다.

  2. 종속성을 확인하고 패키지에 Azure ML Studio(클래식)에 없는 다른 패키지가 필요한 경우 압축된 형식으로 다운로드하여 보관 파일에 추가합니다.

  3. 업로드할 패키지의 압축된 파일과 해당 종속성을 마우스 오른쪽 단추로 클릭하고 보내기를 클릭한 다음 압축(압축) 폴더를 선택합니다.

    압축된 폴더에는 대상 패키지가 포함된 압축된 파일이 하나 이상 포함되어야 하며 필요한 패키지가 포함된 추가 zip 파일이 포함되어야 합니다.

  4. 모든 패키지(선택적 R 코드 파일 또는 데이터 파일)가 포함된 단일 ZIP 파일을 Studio(클래식) 작업 영역에 업로드.

    데이터 세트를 업로드하는 것처럼 이 작업을 수행합니다. 새로 만들기를 클릭하고 데이터 세트를 클릭한 다음 로컬 파일 에서 및 Zip 파일 옵션을 선택합니다.

  5. 저장된 데이터 세트 목록을 열고 내 데이터 세트를 클릭한 다음 압축된 파일을 사용할 수 있는지 확인합니다.

  6. 실험으로 끌어온 다음 데이터 세트를 마우스 오른쪽 단추로 클릭하고 시각화 를 선택하여 압축된 폴더에 포함된 파일을 봅니다. 콘텐츠 목록에 표시되는 파일 이름은 패키지를 설치할 때 참조해야 하는 이름입니다.

    예를 들어 이름이 3개인 R 패키지001.zip002.zip가 포함된 파일을 NewRPackage.zip업로드했다고 가정합니다003.zip. 데이터 세트 목록에서 데이터 세트NewRPackage.zip의 이름은 콘텐츠001.zip002.zip와 함께 , 및 003.zip.

  7. 데이터 세트(NewRPackage.zip)를 스크립트 번들 입력 포트로 커넥트.

    이 시점에서 외부 압축 폴더는 경로 src의 작업 영역 샌드박스로 추출됩니다. 이제 다음 패키지를 사용할 수 있습니다.

    • src\001.zip
    • src\002.zip
    • src\003.zip
  8. R 패키지를 설치하려면 해당 zip 파일에서 각 패키지를 추출한 다음 포함된 라이브러리를 로드합니다.

    예를 들어 파일에 src\001.zip 사용자 지정 R 패키지 code001가 포함되어 있다고 가정하면 다음 스크립트를 실행합니다.

    # install R package contained in src\001.zip  
    install.packages("src/001.zip", lib = ".", repos = NULL, verbose = TRUE)  
    library(code001, lib.loc=".", verbose=TRUE)
    
  9. 필요한 패키지에 대해 설치 프로세스를 반복합니다.

    # install R package contained in src\002.zip  
    install.packages("src/002.zip", lib = ".", repos = NULL, verbose = TRUE)  
    library(code002, lib.loc=".", verbose=TRUE)  
    # install R package contained in src\003.zip  
    install.packages("src/003.zip", lib = ".", repos = NULL, verbose = TRUE)  
    library(code003, lib.loc=".", verbose=TRUE)  
    

    참고

    설치 중인 여러 패키지 중 종속성이 있는 경우 먼저 필수 패키지를 설치해야 합니다. 그렇지 않으면 오류가 발생할 수 있습니다.

실험이 실행될 때 Azure 작업 큐로 전송되는 작업 영역에 필요한 모든 패키지가 포함되도록 하려면 모든 R 패키지 설치를 실험의 일부로 수행해야 합니다.

실험이 실행된 후 또는 세션을 닫은 후에는 작업 영역의 패키지가 유지되지 않습니다. 그러나 압축된 파일로 업로드한 패키지는 실험을 다시 실행할 때 신속하게 추출하고 사용할 수 있습니다.

기술 정보

Studio에서 R 성능 최적화(클래식)

현재 기본 메모리는 14 GB입니다. R 스크립트 실행 모듈을 사용하여 매우 큰 데이터 프레임을 조작하려고 하면 메모리 부족 오류 메시지가 표시될 수 있습니다.

R 스크립트에서 사용하는 메모리의 크기를 늘리려면 스크립트의 시작 부분에 다음과 비슷한 줄을 사용해야 합니다.

memory.limit(56000)  

사용자 지정 R 코드는 56GB RAM이 있는 A8 가상 머신을 사용하여 Azure에서 실행되는 64비트 R 인터프리터에 의해 실행됩니다. R 코드의 속도를 높이기 위해 사전 설치된 컴파일러 패키지에 제공된 Just-In-Time 컴파일러 를 사용할 수 있습니다.

R과 Studio 간에 데이터 형식 변환(클래식)

다음 표에서는 R의 데이터 형식이 Machine Learning 데이터 형식에 해당하는 방법을 보여 있습니다.

R 형식 Studio(클래식) 형식
Integer 정수
Double Double
복합 복합

이 형식은 모듈의 하위 집합에서만 지원됩니다.
논리 부울
문자 String
Raw 지원되지 않음
Difftime TimeSpan
요소 범주
data.frame 데이터 세트

R의 lists 데이터 형식 열에 있는 요소의 형식과 크기가 다를 수 있으므로 이 열은 변환할 수 없습니다. 예를 들어 R 스크립트 실행 모듈에서 사용하는 경우 다음과 같은 유효한 R 코드가 실패합니다.

data.set <- data.frame(r=I(list(list(1,2,3),list(4,5))))  
maml.mapOutputPort("data.set")  

날짜/시간 값 변환

Machine Learning Studio(클래식)는 R과 다른 날짜/시간 형식을 사용합니다. 분석하는 데이터에 날짜 또는 시간 데이터가 포함된 경우 기존 R 코드를 Studio(클래식)로 이식할 때 다음과 같은 변환 요구 사항을 알고 있어야 합니다.

Machine Learning Studio(클래식)에서 R로 변환

DateTime 열은 POSIXct 벡터로 변환됩니다. 그러나 결과 벡터의 각 개별 요소는 1970-01-01T00:00:00 이후의 시간(초)입니다.

이 변환에서 표준 시간대는 조정되지 않습니다.

R에서 Studio로 변환(클래식)

POSIXct 벡터는 UTC 시간대의 DateTime 열로 변환됩니다.

예를 들어, 2011-03-27 01:30:00 PDT는 2011-03-27T08:30:00Z로 변환됩니다. 여기서 Z는 UTC로 된 시간을 표시합니다.

R 스크립트 실행 모듈 내에서 시간을 사용할 때는 타임스탬프를 명시적으로 지정해야 합니다. R 스크립트 실행 모듈에서 호스팅되는 R 인터프리터는 로컬 표준 시간대 정의에 액세스할 수 없습니다.

네트워킹

보안상 R 스크립트 실행 모듈의 R 코드에서 시작되거나 종료되는 모든 네트워킹은 Azure에 의해 차단됩니다. 또한 매우 드문 예외 상황을 제외하면 R 스크립트 실행에서 로컬 포트로의 액세스도 차단됩니다.

병렬 실행

현재 여러 스레드를 사용한 병렬 실행은 지원되지 않습니다.

예상 입력

Name Type Description
Dataset1 데이터 테이블 입력 데이터 집합 1입니다.
Dataset2 데이터 테이블 입력 데이터 세트 2
스크립트 번들 Zip R 원본 집합입니다.

모듈 매개 변수

Name 범위 Type 기본값 Description
R 스크립트 모두 StreamReader R 스크립트 원본을 가리키는 StreamReader를 지정합니다.
무작위 초기값 >=0 정수 R 환경 내에서 사용할 임의 초기값을 정의합니다.

\"set.seed(value)\"과 동일합니다.

이 매개 변수는 선택 사항입니다.

출력

Name Type Description
결과 데이터 집합 데이터 테이블 출력 데이터 세트
R 장치 데이터 테이블 R 인터프리터의 콘솔 출력 및 PNG 그래픽 장치입니다.

추가 정보

R 언어 모듈
R 모델 만들기
모듈 범주 및 설명
Python 언어 모듈