チュートリアル:SQL 機械学習を使用して R で予測モデルをトレーニングするためのデータを準備する
適用対象: SQL Server 2016 (13.x) 以降 Azure SQL Managed Instance
この 4 部構成のチュートリアル シリーズのパート 2 では、R を使用してデータベースからデータを準備します。このシリーズの後半では、このデータを利用し、SQL Server Machine Learning Services またはビッグ データ クラスターを使用して R で予測モデルをトレーニングしてデプロイします。
この 4 部構成のチュートリアル シリーズのパート 2 では、R を使用してデータベースからデータを準備します。このシリーズの後半では、このデータを利用して、SQL Server Machine Learning Services を使用して R で予測モデルをトレーニングしてデプロイします。
この 4 部構成のチュートリアル シリーズのパート 2 では、R を使用してデータベースからデータを準備します。このシリーズの後半では、このデータを利用して、SQL Server R Services を使用して R で予測モデルをトレーニングしてデプロイします。
この 4 部構成のチュートリアル シリーズのパート 2 では、R を使用してデータベースからデータを準備します。このシリーズの後半では、このデータを利用して、Azure SQL Managed Instance の Machine Learning Services で R の予測モデルのトレーニングおよびデプロイを行います。
この記事では、次の方法について学習します。
- サンプル データベースをデータベースに復元する
- データベースから R データ フレームにデータを読み込む
- R でカテゴリとしていくつかの列を識別してデータを準備する
第 1 部では、サンプル データベースを復元する方法を学習しました。
パート 3 では、R で機械学習モデルをトレーニングする方法について学習します。
パート 4 では、モデルをデータベースに格納した後、パート 2 と 3 で開発した R スクリプトからストアド プロシージャを作成する方法について学習します。 ストアド プロシージャは、新しいデータに基づいて予測を行うためにサーバーで実行されます。
前提条件
このチュートリアルのパート 2 では、パート 1 とその前提条件を完了していることを前提としています。
データをデータ フレームに読み込む
R でデータを使用するには、データベースからデータ フレーム (rentaldata
) にデータを読み込みます。
RStudio で新しい RScript ファイルを作成し、以下のスクリプトを実行します。 ServerName を実際の接続情報に置き換えます。
#Define the connection string to connect to the TutorialDB database
connStr <- "Driver=SQL Server;Server=ServerName;Database=TutorialDB;uid=Username;pwd=Password"
#Get the data from the table
library(RODBC)
ch <- odbcDriverConnect(connStr)
#Import the data from the table
rentaldata <- sqlFetch(ch, "dbo.rental_data")
#Take a look at the structure of the data and the top rows
head(rentaldata)
str(rentaldata)
次のような結果が表示されます。
Year Month Day RentalCount WeekDay Holiday Snow
1 2014 1 20 445 2 1 0
2 2014 2 13 40 5 0 0
3 2013 3 10 456 1 0 0
4 2014 3 31 38 2 0 0
5 2014 4 24 23 5 0 0
6 2015 2 11 42 4 0 0
'data.frame': 453 obs. of 7 variables:
$ Year : int 2014 2014 2013 2014 2014 2015 2013 2014 2013 2015 ...
$ Month : num 1 2 3 3 4 2 4 3 4 3 ...
$ Day : num 20 13 10 31 24 11 28 8 5 29 ...
$ RentalCount: num 445 40 456 38 23 42 310 240 22 360 ...
$ WeekDay : num 2 5 1 2 5 4 1 7 6 1 ...
$ Holiday : int 1 0 0 0 0 0 0 0 0 0 ...
$ Snow : num 0 0 0 0 0 0 0 0 0 0 ...
データを準備する
このサンプル データベースでは、ほとんどの準備が既に行われていますが、ここでもう 1 つ準備を行います。 以下の R スクリプトを使用して、データ型を "因子" に変更し、"カテゴリ" として 3 つの列を識別します。
#Changing the three factor columns to factor types
rentaldata$Holiday <- factor(rentaldata$Holiday);
rentaldata$Snow <- factor(rentaldata$Snow);
rentaldata$WeekDay <- factor(rentaldata$WeekDay);
#Visualize the dataset after the change
str(rentaldata);
次のような結果が表示されます。
data.frame': 453 obs. of 7 variables:
$ Year : int 2014 2014 2013 2014 2014 2015 2013 2014 2013 2015 ...
$ Month : num 1 2 3 3 4 2 4 3 4 3 ...
$ Day : num 20 13 10 31 24 11 28 8 5 29 ...
$ RentalCount: num 445 40 456 38 23 42 310 240 22 360 ...
$ WeekDay : Factor w/ 7 levels "1","2","3","4",..: 2 5 1 2 5 4 1 7 6 1 ...
$ Holiday : Factor w/ 2 levels "0","1": 2 1 1 1 1 1 1 1 1 1 ...
$ Snow : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
これで、トレーニングのためのデータの準備ができました。
リソースをクリーンアップする
このチュートリアルを続行しない場合は、TutorialDB データベースを削除してください。
次のステップ
このチュートリアル シリーズのパート 2 で学習した内容は次のとおりです。
- R データ フレームにサンプル データを読み込む
- R でカテゴリとしていくつかの列を識別してデータを準備する
TutorialDB データベースのデータを使用する機械学習モデルを作成するには、このチュートリアル シリーズのパート 3 に従ってください。