libro
www.tuyano.com
Google Apps Scriptプログラミング [中級編]

Prediction APIによる予測機能を利用する (3/6)

作成:2012-06-16 11:32
更新:2012-06-16 11:32

■PredictionのTrainingを実行する

では、Predictionを使ってみましょう。Predictionの基本的な使い方は、整理すると3つの機能からなります。「トレーニング」「予測」「更新」です。

まずは、トレーニングから行いましょう。Predictionで最初に行うのがトレーニングです。Predictionは、初期状態では何もデータなどがありません。そこで予測用のデータを追加し、Predictionのモデルが予測を行えるように準備してやるのです。

Predictionの機能は、その名の通り「Prediction」というオブジェクトにまとめられています。この中にある「newTraining」というメソッドを呼び出し、「Training」オブジェクトを作成します。
変数 = Prediction.newTraining();
引数も何もありませんから簡単ですね。作成されたTrainingオブジェクトは、文字通りトレーニングを管理するものです。これに、先ほどGoogle Cloud Storageにアップロードした予測データを設定します。
変数 = 《Training》.setId( データファイルのパス );
setIdは、Trainingに予測データのIDを設定するものです。このIDというのは、Cloud Storageにアップロードしたファイルのパスのことだと考えてください。これでTrainingオブジェクトに予測データが設定されます。返り値は、設定されたTrainingオブジェクト自体です。

こうしてTrainingが用意できたら、それをPrediction.Trainingに追加します。
変数 = Prediction.Training.insert( 《Training》 );
PredictionTrainngプロパティには、「TrainingCollection」という、Trainingオブジェクトを管理するコレクションオブジェクトが設定されています。これに「insert」メソッドを使って組み込みます。返り値は組み込まれたTrainingオブジェクト自体です。

これで、トレーニングの処理はおしまいです。これにより、用意された予測データによるトレーニングが組み込まれ、利用できるようになります。

では、実際の利用例を下のリスト欄にあげておきましょう。これは、先ほど「my_sample_data」バケットにアップロードした「language_id.txt」を設定したTrainingPredictionに組み込むサンプルです。組み込まれたTrainingオブジェクトを、ActiveSheetの「2B」セルに出力しています。

これを実行するには、まずGoogle Apps ScriptからPrediction APIを使えるようにしておく必要があります。Google Apps Scriptのスクリプトエディタで、<リソース>メニューから<Google APIを使用>を選んでください。そして現れたダイアログで、「Prediction API」の右端のスイッチを「ON」にします。バージョンのポップアップは「v1.2」、名前のフィールドは「Prediction」のままにしておきます。下にある「API Key」のフィールドには、先ほどAPI ConsoleでコピーしておいたAPI Keyをペーストしておきます。

これでPrediction APIGoogle Apps Scriptから使えるようになります。スクリプトを実行する際、認証の要求が現れますので利用を許可してください。許可されたら、改めてスクリプトを実行すると正常に動くようになります。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

function train() {	
  var sheet = SpreadsheetApp.getActiveSheet();
  var datafile = "my_sample_data/language_id.txt";
  var training_input = Prediction.newTraining().setId(datafile); 
  var training_output = Prediction.Training.insert(training_input); 
  sheet.getRange(2,1).setValue("traiing output:");
  sheet.getRange(2,2).setValue(training_output); 
  Logger.log(training_input); 
  Logger.log(training_output); 
} 

※関連コンテンツ

「Google Apps Scriptプログラミング [中級編]」に戻る