views4GCPのストレージサービスについてまとめてみた。Exp:49212雑食エンジニア/にわかSF者TweetShareHatena注意この記事は2014年11月25日に更新されたもので、内容が古い可能性がありますのでご注意ください。API入門実行編みなさん、こんにちは。APIの概要のみのご紹介でしたが、今回はいよいよ、実際の例をもとに解説をしていきたいと思います。Explorer*を用いて実行し、ひと通り解説を行います。API入門」は、前・後編の予定でしたが、前・中・後編の3つに分けることになりました。後編では、Javaによるサンプルプログラムをご紹介する予定です。Explorerの基本的な使い方については、こちらの記事をご覧ください。“スペイン語”のどれであるかの予測すを行います。前編で記したように、予測モデルを作成するために、学習データが必要です。下記リンクから学習データをダウンロードしてください。“Spanish”のいずれか)、2カラム目に英語、フランス語、スペイン語のいずれかのテキストが書かれたCSV形式のテキストファイルとなっています。このようなデータを用いて、学習を行い、テキストを渡したときに、そのテキストがどの言語であるかを予測することになります(下図)。GCPプロジェクトの設定まずは、APIを使用するためのGCPプロジェクトの準備を行います。Consoleでプロジェクトを作成し、以下の設定を行ってください。Storageをオンにしてください。browser」を選択し、バケットを作成してください。作成したら、そのバケットの直下にlanguage_id.txtをアップロードしてください。APIを使ってみましょう。Explorerを用いて、各メソッドを実行する手順とその結果を記し、解説をしていきます。insertinsertメソッドでモデルの作成を行います。idは任意の値、storageDataLocationは”バケット名/language_id.txt”ExecuteをクリックResponseに以下のように表示されます。OK”となっていれば、学習が開始されています。学習が完了していないと、予測は行えません。学習が完了しているかは、getメソッドで確認する必要があります。getgetメソッドで、作成したモデルの状態を確認します。insertメソッドで指定したidと同じExecuteをクリックResponseに以下のように表示されます。上の例では、trainingStatusが”DONE”になっているので、学習が完了して、予測を行える状態になっていることが確認できます。学習がまだ完了していない場合は、trainingStatusの値が”RUNNING”と表示されます。その他に、modelInfo内のプロパティを見ると、numberInstancesから406件の学習データが入力されたこと、modelTypeが”classification”となっていることから、分類を行うモデルが作成されたこと、numberLabelsから、3カテゴリの分類を行うモデルであること、classifictionAccuracyから予測精度が98%と見積もられていることがわかります。analyzeanalzyeメソッドで、モデルの分析を行います。insertメソッドで指定したidと同じExecuteをクリックResponseに以下のように表示されます。dataDescriptionの中には、学習データの分析結果が記述されています。outputFeatureを見ると、学習データのうち、ラベルがEnglishであるものが157件、Frenchであるものが149件、”Spanish”であるものが100件であったことがわかります。featuresからは最初(0番目)の特徴量は、textタイプでデータが406件あったことが読み取れます。...となり、それぞれの分析が表示されます。データのタイプによって表示される情報が異なります。(例えば、numericの場合、平均値や分散が表示されます。matrix)の情報が表示されています。混同行列は、予測モデルの評価によく使われるもので、上の例で言うと、正解が”English”であるものを”English”と予測した数、”French”と予測した数、”Spanish”と予測した数、同様に、正解が”French”および”Spanish”だったものについての数が記述されています。以下のような行列になっています。これらの数値がどのように計算されているかは、ドキュメントにあまり詳しく書かれていません。FAQには交差検証(cross-validation)によって、エラーを見積もっているとだけ書かれています。上の表のでは、全てのセルの合計値が学習データの約1割なので、おそらく、データを10分割して、データの9割を学習データとし、残りの1割を未知データとして予測させるということを何回かやって平均値を算出しているのではないかと思います。predictpredictメソッドで、予測を行います。}}ExecuteをクリックResponseに以下のように表示されます。back”というテキストが何語であるかを予測しています。outputLabelが”English”になっているため、”English”であるという予測結果が得られたことがわかります。outputMultiには、それぞれのカテゴリである確率が見積もられています。確率なので、全てのカテゴリの値の総和は1になり、また、ouputLabelはこの確率が最大のものとなります。今回は、”English”が1になっているので、予測結果はかなり確からしいと言えます。listlistメソッドでprojectに紐付いたモデルの一覧を取得します。「GCPプロジェクトの設定」で作成したプロジェクト名ExecuteをクリックResponseに以下のように表示されます。OK”と表示されれば成功です。これを実行すると、再度、学習が始まります。getメソッドで状態を確認して、trainingStatusが”DONE”になれば、モデルが更新され、予測に反映されます。deletedeleteメソッドで、作成したモデルを削除します。insertメソッドで指定したidと同じExecuteをクリックResponseに以下のように表示されます。Content”と表示されます。実際に削除されたかどうかは、listメソッドでモデル一覧を表示することで確認できます。APIのひと通りの使い方を紹介してきました。データさえ用意すれば、簡単に予測を実行できることがお分かりいただけたかと思います。APIは教師付き機械学習アルゴリズムを用いた予測機能を提供してくれます。updateというメソッドが用意されており、getメソッドで得られる正答率、analyzeメソッドで得られる混合行列を見ることで、作成されたモデルの予測精度について考察することもできます。この記事を読んで興味がわいた方は、公開されているデータやお手持ちのデータを使って、試してみてはいかがでしょうか。