はじめに

本記事では、Rで記述された機械学習の関数をVerticaに読み込んで予測を行う方法に関して説明します。
流れは以下の通りになります。
・使用するデータ(irisデータ)を読み込む。
・学習用データからモデルを作成する関数train_funcを実行する。
・作成したモデルを評価用データに適用し予測値を得る関数test_funcを実行する。
・作成した関数をSQLで実行し処理結果を得る。

サンプルスキーマ、データのダウンロード

以下URLよりサンプルファイルをダウンロードします。
https://github.com/vertica/Machine-Learning-Examples

画面右上にある「Clone or Download」をクリックします。


展開される画面の右下にある「Download ZIP」をクリックしてファイルを保存します。

サンプルスキーマの作成、データのロード

ダウンロードしたファイルをVerticaサーバ上の任意のディレクトリに転送します。
転送後、以下コマンドでファイルを解凍します。

解凍後に以下コマンドでサンプルスキーマとテーブルの作成、データロードを実行します。


データの読み込み

今回使用するirisデータには「あやめ」の3品種’setosa’、’versicolor’、’virginica’のSepal(がく片)の長さと幅、及びPetal(花びら)の長さと幅の情報が含まれています。今回は、あらかじめ学習用データ(iris1)と評価用データ(iris2)の2つにあらかじめ分割されたものを用います。
学習用データiris1を表示してみます。

説明変数には、Sepal_Length, Sepal_Width, Petal_Length, Petal_Widthを用います。目的変数はSpeciesであり、3種類の花のうちいずれかとなっています。

Rコード

‘/home/dbadmin/’に、Rファイル’randomforest_model.r’を格納します。
このファイルには学習用関数train_funcと推定用関数test_funcを記述しています。

学習用関数train_funcの例:

推定用関数test_funcの例:

関数の作成

vsqlで関数を作成します。

関数の実行

検証バージョンについて

この記事の内容はVertica 9.3.1で確認しています。

更新履歴