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 (クラシック) のドキュメントは廃止予定であり、今後更新されない可能性があります。
この記事では、R コードの実行をサポートする Machine Learning Studio (クラシック) のモジュールの一覧を示します。 これらのモジュールを使用すると、実稼働環境で R モデルを発行しやすくなり、R 言語コミュニティのエクスペリエンスを利用して実際の問題を解決することができます。
注意
適用対象: Machine Learning Studio (クラシック)のみ
類似のドラッグ アンド ドロップ モジュールは Azure Machine Learning デザイナーで使用できます。
この記事では、Machine Language Studio (クラシック) で R を使用するための一般的な要件についても説明し、既知の問題とヒントを示します。
モジュールの一覧
R 言語モジュールカテゴリには、次のモジュールが含まれています。
- r スクリプトの実行: Machine Learning 実験から r スクリプトを実行します。
- R モデルの作成: カスタムリソースを使用して r モデルを作成します。
R を使用する場合の要件
Machine Learning Studio (クラシック) で R スクリプトを使用する前に、次の要件を確認してください。
CSV またはその他の形式を使用するデータをインポートした場合、R コードからデータを直接 CSV 形式で読み取ることはできません。 代わりに、R モジュールへの入力として使用する前に、データ セットへの変換 を使用してデータを準備します。
r モジュールへの入力として Machine Learning データセットをアタッチすると、データセットは、変数名データセットを使用して、データフレームとして r ワークスペースに自動的に読み込まれます。
ただし、追加のデータフレームを定義したり、R スクリプト内の既定のデータセット変数の名前を変更したりできます。
R モジュールは、プライベートワークスペース内の保護された分離環境で実行されます。 ワークスペース内で、複数のモジュールで使用するためのデータ フレームと変数を作成できます。
ただし、別のワークスペースから R データフレームを読み込むことはできません。また、ワークスペースが Azure セッションで開かれている場合でも、別のワークスペースで作成された変数を読み取ることはできません。 また、Java の依存関係を持つモジュールや、直接ネットワークアクセスを必要とするモジュールを使用することはできません。
R スコアリングタスクの最適化
Machine Learning Studio (クラシック) とワークスペース環境での R の実装には、2つの主要なコンポーネントが含まれています。 1つのコンポーネントによってスクリプトの実行が調整され、もう一方のコンポーネントが高速なデータアクセスとスコア付けを実現します。 スコア付けコンポーネントは、スケーラビリティとパフォーマンスを向上させるために最適化されています。
そのため、Machine Learning Studio (クラシック) の R ワークスペースでは、それぞれ異なる要件に合わせて最適化された2種類のスコアリングタスクもサポートされています。 通常は、実験を作成するときにファイル単位でスコアリングを使用します。 Web サービスの一部としてスコアを付けている場合は、通常、高速スコアリングのために要求応答サービス (RR) を使用します。
R パッケージとバージョンのサポート
Machine Learning Studio (クラシック) には、最も人気のある R パッケージが500以上含まれています。 選択できる R パッケージは、実験で選択する R バージョンによって異なります。
- CRAN R
- Microsoft R Open (MRO 3.2.2 または MRO 3.4.4)
実験を作成するたびに、実験内のすべてのモジュールに対して、実行する1つの R バージョンを選択する必要があります。
バージョンごとのパッケージの一覧
Machine Learning で現在サポートされているパッケージの一覧については、「 Machine Learning でサポートされている R パッケージ」を参照してください。
また、実験の R スクリプトの実行 モジュールに次のコードを追加し、それを実行してパッケージの名前とバージョンを含むデータセットを取得することもできます。 モジュールのプロパティに R バージョンを設定して、目的の環境に適した一覧を生成してください。
data.set <- data.frame(installed.packages())
maml.mapOutputPort("data.set")
重要
Machine Language Studio (クラシック) でサポートされているパッケージは頻繁に変更されます。 R パッケージがサポートされているかどうか不明な場合は、提供されている R コードサンプルを使用して、現在の環境にあるパッケージの完全な一覧を取得します。
R 言語を使用した実験の拡張
カスタム R スクリプトを使用したり R パッケージを追加したりして実験を拡張する方法はたくさんあります。 作業を開始するためのいくつかのアイデアを次に示します。
R コードを使用して、カスタムの算術演算を実行します。 たとえば、差分式を解いたり、乱数を生成したり、モンテカルロ シミュレーションを実行するための R パッケージがあります。
データのカスタム変換を適用します。 たとえば、R パッケージを使用して時系列データに補間を実行したり、言語分析を実行したりすることができます。
さまざまなデータソースを操作します。 R スクリプトモジュールでは、追加の入力セットがサポートされています。これには、データファイルを zip 形式で含めることができます。 Zip データファイルを、そのようなデータソース用に設計された R パッケージと共に使用して、階層データをフラットデータテーブルに平坦化することができます。 また、これらを使用して、Excel およびその他のファイル形式からデータを読み取ることもできます。
評価にはカスタムメトリックを使用します。 たとえば、「 評価」で提供されている関数を使用するのではなく、R パッケージをインポートし、そのメトリックを適用することができます。
次の例では、新しいパッケージをインストールし、実験でカスタム R コードを使用する方法の全体的なプロセスを示します。
R を使用して列を分割する
場合によって、データは機能を抽出するために広範な操作を必要とします。 ID の後に値とメモが含まれるテキストファイルがあるとします。これらはすべてスペースで区切られています。 または、テキストファイルに、コンピューター言語 Studio (クラシック) でサポートされていない文字が含まれているとします。
このようなタスクに特別な機能を提供するいくつかの R パッケージがあります。 Splitstackshape ライブラリパッケージには、各列の区切り記号が異なる場合でも、複数の列を分割するための便利な関数がいくつか含まれています。
次のサンプルは、必要なパッケージをインストールし、列を分割する方法を示しています。 このコードは、 R スクリプトの実行 モジュールに追加します。
#install dependent packages
install.packages("src/concat.split.multiple/data.table_1.9.2.zip", lib=".", repos = NULL, verbose = TRUE)
(success.data.table <- library("data.table", lib.loc = ".", logical.return = TRUE, verbose = TRUE))
install.packages("src/concat.split.multiple/plyr_1.8.1.zip", lib=".", repos = NULL, verbose = TRUE)
(success.plyr <- library("plyr", lib.loc = ".", logical.return = TRUE, verbose = TRUE))
install.packages("src/concat.split.multiple/Rcpp_0.11.2.zip", lib=".", repos = NULL, verbose = TRUE)
(success.Rcpp <- library("Rcpp", lib.loc = ".", logical.return = TRUE, verbose = TRUE))
install.packages("src/concat.split.multiple/reshape2_1.4.zip", lib=".", repos = NULL, verbose = TRUE)
(success.reshape2 <- library("reshape2", lib.loc = ".", logical.return = TRUE, verbose = TRUE))
#install actual packages
install.packages("src/concat.split.multiple/splitstackshape_1.2.0.zip", lib=".", repos = NULL, verbose = TRUE)
(success.splitstackshape <- library("splitstackshape", lib.loc = ".", logical.return = TRUE, verbose = TRUE))
#Load installed library
library(splitstackshape)
#Use library method to split & concat
data <- concat.split.multiple(maml.mapInputPort(1), c("TermsAcceptedUserClientIPAddress", "EmailAddress"), c(".", "@"))
#Print column names to console
colnames(data)
#Redirect data to output port
maml.mapOutputPort("data")
その他のリソース
このチュートリアルでは、まず、カスタム R モジュールを構築する方法について説明します。
この記事では、2つのスコアリングエンジンの違いについて詳しく説明し、実験を web サービスとしてデプロイするときにスコアリング方法を選択する方法について説明します。
この Azure AI Gallery の実験では、トレーニング、スコア付け、評価を行うカスタム R モジュールを作成する方法を示します。
ブロガーで公開されているこの記事は、Machine Learning で独自の評価メソッドを作成する方法を示しています。
R に関するその他のヘルプ
このサイトには、キーワードで検索できるパッケージのカテゴリ別の一覧が表示されます。
追加の R コード サンプル、R とそのアプリケーションのヘルプについては、次のリソースを参照してください。
r Project: r 言語の公式サイト。
Rseek: R リソースの検索エンジン。
ブロガー: r コミュニティにおけるブログの集約です。
Cran: R パッケージの最大のリポジトリ。
クイック r: 優れた r チュートリアルです。
Bioconductor: 生命情報工学の R パッケージの大規模なリポジトリ。