チュートリアル: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 に従ってください。