R スクリプトの実行
重要
Machine Learning Studio (クラシック) のサポートは、2024 年 8 月 31 日に終了します。 その日までに、Azure Machine Learning に切り替えすることをお勧めします。
2021 年 12 月 1 日以降、新しい Machine Learning Studio (クラシック) リソースは作成できません。 2024 年 8 月 31 日まで、既存の Machine Learning Studio (クラシック) リソースを引き続き使用できます。
- ML Studio (クラシック) から Azure Machine Learning への機械学習プロジェクトの移動に関する情報を参照してください。
- Azure Machine Learning についての詳細を参照してください。
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 パッケージを含む Microsoft R Open (MRO) の両方がサポートされています。
実験で使用する R のバージョンを指定できます。 ただし、他のバージョンの R をワークスペースにインストールすることはできません。
R のディストリビューションを選択する前に、必要なパッケージを決定することをお勧めします。一部のパッケージは、CRAN R と Microsoft R Open の両方と互換性がありません。
注意
現時点では、 R モデルの作成 モジュールは、R の特定のバージョンに制限されています。したがって、実験でカスタム R モデルを使用する場合は、同じ実験内のすべての R スクリプト実行 モジュールでも同じ R バージョンを使用する必要があります。 サポートされている R バージョンについては、Machine Learning Studio (クラシック) でサポートされている R パッケージに関する記事を参照してください。
サポートされる 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 パッケージをワークスペースにインストールします。 パッケージは zip 形式でアップロードする必要があります。 実験が Azure ランタイム環境に読み込まれると、パッケージが開梱され、実験ワークスペースの R 環境に追加されます。 詳細については、「新しい R パッケージをインストールする方法」を参照してください。
実験が実行されていない場合、開梱されたパッケージはワークスペースに保持 されません 。 このため、使用する予定の追加の R パッケージは、ワークスペースまたは Azure Storage で zip 形式で使用できる必要があります。
実行時に各モジュールが異なるコンテナーに読み込まれる可能性があるため、 R スクリプト実行 モジュールの個別のインスタンス間でパッケージを共有することはできません。 ただし、R オブジェクトをデータセットとして公開することで、モジュール間で R オブジェクトを共有できます。 詳細については、「 モジュール間で R オブジェクトを渡す」を参照してください。
サンプル実験
Azure AI ギャラリーには、カスタム R スクリプトの多くの例があります。
学生のパフォーマンス: カスタム R スクリプトを使用して、複数のモデルの評価結果を 1 つのデータセットに結合します。 このサンプルではまた、R スクリプトの実行モジュールの R コードを利用し、16 個の時間依存列を計算しています。
乳がん: R スクリプトの実行 モジュールのカスタム コードを使用して、肯定的な例をレプリケートし、メトリックを組み合わせます。
時系列予測: このサンプルでは 、R スクリプトの実行 を使用してカスタム メトリックを生成し、 行の追加 モジュールを使用してそれらを 1 つのテーブルに結合します。
R スクリプトの実行を構成する方法
R スクリプトの実行モジュールを構成するには、省略可能な入力セットと、ワークスペースで実行する R コードを指定します。
追加の R コードを含むファイルを追加することもできます。圧縮されたアーカイブ ファイルでスクリプト バンドル 入力への添付ファイルを準備する場合。
追加のパッケージをインストールするには、圧縮されたアーカイブ ファイルにパッケージを含めます。
R スクリプトの実行モジュールを実験に追加します。 このモジュールは、Machine Learning Studio (クラシック) の R 言語モジュール グループにあります。
スクリプトで必要なすべての入力を接続します。 入力には、データ、zip 形式でワークスペースに追加した R パッケージ、および追加の R コードを含めることができます。
データセット 1: 最初の入力は、メイン データセットをアタッチする場所です (省略可能)。 入力データセットは、CSV、TSV、または ARFF ファイルとして書式設定する必要があります。または、Machine Learningデータセットを接続することもできます。
Dataset2: 2 番目の入力 (省略可能) では、2 つ目のデータセットの追加がサポートされます。 また、このデータセットは CSV、TSV、または ARFF ファイルとして書式設定する必要があります。または、Machine Learningデータセットを接続することもできます。
スクリプト バンドル: 3 番目の入力 (省略可能) は、.ZIP形式のファイルを受け取ります。 ZIP 形式のファイルには、複数のファイルと複数のファイルの種類を含めることができます。 たとえば、圧縮アーカイブには、スクリプト ファイル内の R コード、スクリプトで使用する R オブジェクト、それ自体が.ZIP形式に含まれていた R パッケージ、サポートされている形式の 1 つのデータセットが含まれている場合があります。
[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 接続をセットアップすることはお勧めしません。Random seed (ランダム シード) : ランダム シード値として R 環境内で使用する値を入力します。 このパラメーターは、R コードで
set.seed(value)
を呼び出すのと同じです。R バージョン: ワークスペースに読み込む R のバージョンを選択します。
CRAN R 3.1.0: 包括的な R アーカイブ ネットワーク Web サイトは、オープンソース R 言語のリポジトリです。 詳細については、 CRAN Web サイトを参照してください。
Microsoft R Open 3.2.2: MRO は、Microsoft Corporation からの R の拡張ディストリビューションです。 これは、オープンソース R エンジンに基づくオープンソース プラットフォームであり、同じバージョンの R で動作するすべての R パッケージ、スクリプト、アプリケーションと完全に互換性があります。ただし、MRO は、高パフォーマンスのマルチスレッド演算ライブラリを使用しているため、標準の R 分布と比較してパフォーマンスが向上します。 詳細については、「 Microsoft R Open」を参照してください。
他のバージョンの R をワークスペースにインストールすることはできません。
Machine Learningでは複数のバージョンの R がサポートされていますが、どの実験でも使用できるバージョンは 1 つだけです。
実験を実行するか、[ R スクリプトの実行 ] モジュールを選択し、[ 実行] をクリックします。
結果
モジュールは複数の出力を返すことができます。
- データセットを取得するには、R コードから 1 つの R data.frame が返されます。
- Machine Learning Studio (クラシック) ログ領域に表示される R グラフィックス デバイスに画像を表示できます。
- イメージを永続化するには、ファイルに書き込むか、表形式にシリアル化します。
- ワークスペースにオブジェクトを保存できます。
- R からの標準メッセージとエラーはモジュールのログに返されます。
(1) 結果データセット
この出力には、モジュール内の R コードによって生成されるデータ フレームが含まれます。
出力できるデータ フレームは 1 つだけです。 他の表形式オブジェクトは、R 関数を使用してデータ フレームに変換する必要があります。 モジュールの R コードによるデータ フレーム出力は、内部 データ テーブル 形式に自動的に変換されます。
返されたオブジェクトが Studio (クラシック) と互換性があることを確認するには、
is.data.frame
True を返す必要があります。他のオブジェクトを返すには、オブジェクトをバイト配列にシリアル化するか、または必要なデータを
data.frame
として返す関数を使用してください。
(2) R デバイス
R デバイスは、コンソール出力 (標準出力と標準エラー) と、R インタープリターを使用した PNG グラフィックスの表示の両方をサポートします。
R コンソールに送信されたメッセージ (標準出力と標準エラー) を表示するには、実行が完了したらモジュールを右クリックし、[ R デバイス] を選択し、[ 視覚化] を選択します。
R デバイス ポートで生成されたグラフィックスを表示するには、モジュールの実行が完了したら右クリックし、[ R デバイス] を選択し、[ 視覚化] を選択します。
たとえば、次の図は、わずか数行の R コードによって生成されます。
このサンプルと関連するサンプルは 、Azure AI ギャラリーで確認できます。
- R スクリプトの実行モジュールによって生成されたイメージを保存するには、イメージを右クリックしてローカル コピーを保存します。 または、R グラフィックス デバイス関数の 1 つを呼び出して、 この例で説明するように、実験に関連付けられている Azure BLOB ストレージ アカウントにイメージ ファイルを書き込むことができます。
R スクリプトと R のヒントのサンプル
カスタム R スクリプトを使用して実験を拡張する方法は多数あります。 このセクションでは、一般的なタスクのサンプル コードを示します。
R スクリプトを入力として追加する
R スクリプトの実行モジュールでは、事前に準備して ZIP ファイルの一部としてワークスペースにアップロードされていれば、任意の R スクリプト ファイルを入力として使用できます。
R コードを含む ZIP ファイルをワークスペースにアップロードするには、[新規] をクリックし、[データセット] をクリックしてから、[ローカル ファイルから] を選択し、[ZIP ファイル] オプションを選択します。
zip パッケージを Studio (クラシック) にアップロードした後、圧縮されたファイルが [保存されたデータセット] 一覧で使用可能であることを確認し、データセットを スクリプト バンドル 入力ポートに接続します。
zip ファイルに、Machine Learning Studio (クラシック) にまだインストールされていない R パッケージが含まれている場合は、R スクリプトの実行モジュールのカスタム コードの一部として R パッケージをインストールする必要があります。 ZIP ファイルに含まれるすべてのファイルは、実験の実行時間中に使用できます。
スクリプト バンドル ファイルにディレクトリ構造が含まれる場合、その構造が保持されます。 ただし、ディレクトリ src をパスの前に追加するようにコードを変更する必要があります。
イメージ、モデル、およびその他のオブジェクトを生成する
イメージまたはその他の任意の R オブジェクトを生成する必要がある場合は、バイト配列にシリアル化し、次の例に示すように data.frame としてシリアル化できます。
as.data.frame(as.integer(serialize(g,con=NULL)));
ライブラリのデータ フレームGraph、https://igraph.org/r/データ フレームとしてのシリアル化はサポートされていません。 代わりに、パッケージ内の関数をget.data.frame
igraph
使用して、エッジと頂点の情報をデータ フレームに配置します。
vertices <- get.data.frame(g, what="vertices")
その後、 R スクリプトの実行 モジュールから取得できる data.frame としてグラフ オブジェクトを返すことができます。
edges <- get.data.frame(g, what="edges")
入力からの読み取りと出力への書き込み
次の例では、入力ポートと出力ポートを使用する方法を示します。 入力データをテーブルとして読み取り、テーブルのコピーをそれ自体に追加し、テーブルのサイズを実質的に 2 倍にします。 結果は出力ポートに送信されます。
# 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 ファイルを読み取る
この例では、zip 形式で Machine Learning Studio (クラシック) にデータセットを追加し、そのデータを R スクリプトの実行モジュールへの入力として使用する方法を示します。
- CSV 形式でデータ ファイルを作成し、"mydatafile.csv" という名前を付けます。
- .ZIP ファイルを作成し、CSV ファイルをアーカイブに追加します。
- zip 形式のファイルを Machine Learning ワークスペースにアップロードします。圧縮されたデータセットの展開。
- 結果として得られるデータセットを、R スクリプトの実行モジュールの ScriptBundle 入力に接続します。 言い換えると、まだ開梱しないでください。
- 次のコードを使用して、圧縮されたファイルから 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 パッケージを Machine Learning ワークスペースにインストールするには、.ZIP ファイルとしてアップロードします。 次のコードは、アップロードされたパッケージを使用する方法を示しています。
とパッケージが
arules
arulesViz
既にワークスペースに追加されているとします。アップロードした.ZIP ファイルを R スクリプト実行モジュールの 3 番目の入力ポートにConnectします。
R スクリプト テキスト ボックスで、R 言語パッケージ
Arules
によって提供される priori アソシエーション ルール アルゴリズムを呼び出し、マーケット バスケット分析タスクで学習者を適用するには、次のコマンドを使用します。
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 ライブラリを呼び出す方法を示します。
ライブラリを含む zip 形式のファイルをワークスペースに
e1071
アップロードします。アップロードした.ZIP ファイルを R スクリプト実行モジュールの 3 番目の入力ポートにConnectします。
[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
含む zip ファイルをスコアリング モジュールへの入力として指定し、ライブラリを読み込む必要があります。 これは、各モジュールがコンテナー内で独立して実行されるためです。
library(e1071)
features <- get.feature.columns(dataset)
scores <- predict(model, features)
1 つの実験に含まれるすべての R モジュールは、同じバージョンの R ランタイムを使用する必要があります。 あるモジュールで CRANR を使用し、別のモジュールで Microsoft R Open を使用するなど、R のバージョンを混在させることはできません。
グラフィックス ファイルを書き込む
Studio (クラシック) では、R デバイス出力ポートを使用した PNG ファイルの表示がサポートされていますが、レポートに使用するAZURE STORAGEの BLOB で結果を PDF ファイルとして生成する場合があります。
この例では、 R スクリプトの実行 を使用してグラフを PDF ファイルとして生成する方法を示します。
R 実行スクリプトを実験に追加します。
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");
この出力を データのエクスポート モジュールに渡し、バイナリ値を Azure BLOB ストレージに保存します。
R スクリプトの実行モジュール間で R オブジェクトを渡す
内部のシリアル化メカニズムを使用することで、R スクリプトの実行モジュールのインスタンス間で R オブジェクトを渡すことができます。 この例は、2 つの R スクリプトの実行モジュール間で A
という名前の R オブジェクトを移動することを想定しています。
最初の R スクリプト実行 モジュールを実験に追加し、[ R スクリプト ] テキスト ボックスに次のコードを入力して、モジュールの出力データ テーブルにシリアル化されたオブジェクト
A
を列として作成します。serialized <- as.integer(serialize(A,NULL)) data.set <- data.frame(serialized,stringsAsFactors=FALSE) maml.mapOutputPort("data.set")
シリアル化関数は R
Raw
形式でデータを出力するため、整数型への明示的な変換が必要です。これは、Machine Learningではサポートされていません。R スクリプトの実行モジュールの 2 番目のインスタンスを追加し、それを前のモジュールの出力ポートに接続します。
[R Script]\(R スクリプト\) テキスト ボックスに次のコードを入力して、入力データ テーブルからオブジェクト
A
を抽出します。dataset <- maml.mapInputPort(1) A <- unserialize(as.raw(dataset$serialized))
新しい R パッケージのインストール
既定ではインストールされていない R パッケージは、Machine Learningに追加できます。 新しいパッケージを追加するには、次の手順が必要です。
- パッケージのWindows バイナリを zip 形式で取得します。
- 目的のパッケージと依存関係を、.ZIP拡張子を持つ新しい 1 つの圧縮アーカイブ ファイルに圧縮します。
- zip ファイルをデータセットとしてワークスペースにアップロードします。
- 新しいデータセットを R スクリプト実行モジュールにConnectします。
- モジュールに R スクリプトを使用してパッケージをインストールします。
次の手順では、依存関係と共に新しいパッケージを追加します。
Machine Learningにインポートするパッケージの zip ファイルをダウンロードします。 zip ファイルのWindowsバージョンを取得してください。
注意
ワークスペースで使用する R パッケージを既に抽出している場合は、R パッケージを Studio (クラシック) にアップロードできる場合は、パッケージを再圧縮するか、元の ZIP ファイルを指定する必要があります。
依存関係がないか確認し、パッケージに Azure ML Studio (クラシック) にまだ含まれていない他のパッケージが必要な場合は、zip 形式でダウンロードし、アーカイブ ファイルに追加します。
アップロードするパッケージの zip ファイルとその依存関係を右クリックし、[ 送信先] をクリックし、[ 圧縮 (zip 形式)] フォルダーを選択します。
ヒント
圧縮フォルダーには、ターゲット パッケージを含む zip ファイルと、必要なパッケージを含む追加の zip ファイルが少なくとも 1 つ含まれている必要があります。
すべてのパッケージ (オプションの R コード ファイルまたはデータ ファイル) を含む 1 つの ZIP ファイルを Studio (クラシック) ワークスペースにアップロードします。
これを行うには、データセットをアップロードします。[ 新規] をクリックし、[ データセット] をクリックし、[ ローカル ファイル と Zip ファイル ] オプションを選択します。
[保存されたデータセット] リストを開き、[マイ データセット] をクリックし、zip 形式のファイルが使用可能であることを確認します。
実験にドラッグし、データセットを右クリックし、[ 視覚化 ] を選択して、zip 形式のフォルダーに含まれるファイルを表示します。 [コンテンツ] リストに表示されるファイル名は、パッケージをインストールするときに参照する必要がある名前です。
たとえば、という名前
NewRPackage.zip
のファイルをアップロードしたとします。このファイルには、という名前001.zip
の 3 つの R パッケージ 、002.zip
および003.zip
. データセットの一覧では、データセットの名前はNewRPackage.zip
、コンテンツ001.zip
002.zip
、および003.zip
.データセット (
NewRPackage.zip
) をスクリプト バンドル入力ポートにConnectします。この時点で、外側の zip フォルダーは、パス
src
内のワークスペース サンドボックスに抽出されます。 これで、次のパッケージを使用できるようになります。src\001.zip
src\002.zip
src\003.zip
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)
必要なパッケージのインストール プロセスを繰り返します。
# 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 パッケージのインストールを実験の一部として実行する必要があります。
ワークスペース内のパッケージは、実験の実行後、またはセッションを閉じた後に保持されません。 ただし、zip 形式のファイルとしてアップロードしたパッケージは、実験を再実行するときに迅速に抽出して使用できます。
テクニカル ノート
Studio (クラシック) での R パフォーマンスの最適化
現在のメモリの既定値は 14 GB です。 R スクリプトの実行モジュールを使用して過度に大規模なデータ フレームを操作しようとすると、メモリ超過エラー メッセージが発生する場合があります。
R スクリプトで使用されるメモリ量を増やすには、スクリプトの先頭で次のような行を使用することができます。
memory.limit(56000)
ユーザー指定の R コードは、56 GB の RAM を備えた A8 仮想マシンを使用して Azure で実行される 64 ビット R インタープリターによって実行されます。 R コードの速度を上げるには、プレインストールされているコンパイラ パッケージに用意されている Just-In-Time コンパイラ を使用できます。
R と Studio の間でのデータ型の変換 (クラシック)
次の表は、R のデータ型がMachine Learningのデータ型にどのように対応しているかを示しています。
R の型 | Studio (クラシック) の種類 |
---|---|
Integer | Integer |
Double | Double |
Complex | Complex この型は、モジュールのサブセットによってのみサポートされます。 |
論理 | ブール型 |
文字 | String |
Raw | サポートされていません |
Difftime | TimeSpan |
factor | カテゴリ |
data.frame | dataset |
R の lists
型の列は、列内の要素の型やサイズが多岐にわたる可能性があるため、変換できません。 たとえば、R スクリプトの実行 モジュールで使用した場合、次の有効な R コードは失敗します。
data.set <- data.frame(r=I(list(list(1,2,3),list(4,5))))
maml.mapOutputPort("data.set")
datetime 値の変換
Machine Learning Studio (クラシック) では、R とは異なる datetime 型が使用されます。分析するデータに日付または時刻データが含まれている場合は、既存の 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 スクリプトの実行からローカル ポートへのアクセスもブロックされます。
並列実行
現在、複数のスレッドを使用した並列実行はサポートされていません。
想定される入力
名前 | Type | 説明 |
---|---|---|
データセット 1 | データ テーブル | 入力データセット 1 |
データセット 2 | データ テーブル | 入力データセット 2 |
スクリプト バンドル | Zip | 一連の R ソース |
モジュールのパラメーター
名前 | Range | Type | Default | 説明 |
---|---|---|---|---|
R スクリプト | Any | StreamReader | R スクリプト ソースを指す StreamReader を指定します。 |
|
ランダム シード | >=0 | Integer | R 環境内で使用するランダム シード値を定義します。 これは、 \"set.seed(value)\" に相当します。このパラメーターは省略可能です。 |
出力
名前 | Type | 説明 |
---|---|---|
結果のデータセット | データ テーブル | 出力データセット |
R デバイス | データ テーブル | R インタープリターからのコンソール出力と PNG グラフィック デバイス |