まゆこのましんラーニング♡#02

こんにちは!ITソリューション事業部のまゆこです。

早くも二回目です。

そもそもマシンラーニングって何でしょう?

image2

ググってみましたが、うーん、イマイチ分かんないです>< まゆこ「GO☆さん教えて下さーい( ;∀;)」

 

IMG_4195

GO☆「む〜ん、つまり我々が無意識に行っているパターン認識をだねぇ〜・・・」

 

IMG_4193

まゆこ「はい?分かんないので、自分で調べます( ;∀;)」

ふむふむ、私が参考にするサイトを見ると・・・ http://www.apps-gcp.com/predictionapi-introduction-1/ このサイトでは、3カ国で書かれた文章を分析させて、コンピューターに言語当てをさせる実験をしています。

スゴイ!なんか未来を予想する、夢のようなツールなんですね!とにかく実践してみましょう。

 

1.まず、解析させるデータを用意します。

情報はできるだけ多い方がいいみたいなんですが、今回のサンプルデータは400件程度です。

↓サンプルデータです。 https://cloud.google.com/prediction/docs/language_id.txt

これは英語、フランス語、スペイン語が書かれた文章データで、 [言語名],[各言語で書かれた文章] といったレイアウトでできています。

ファイル作成で気をつけることをまとめると・・・ ・最初の列には”答え”を書く。サンプルでいうと、”英語”とか”フランス語”とか”スペイン語”です。 ・次の列からは”答え”を導くための情報を書く。複数列あってもいいみたいです。 ・列はカンマで区切る。 ・ヘッダは不要。 以上です。

 

2.次に、ファイルをGoogleストレージにアップします。

ここからGoogle Developers Consoleというサイトで作業をします。 https://console.developers.google.com/

IMG_4199

まゆこ「なんですかこれ?」 GO☆「Google環境で開発する際に使う開発者向けのツールだよ。まぁ使ってみないとわかんないと思うよ!」

会社用のアカウントでログインし、プロジェクトを作成して、「Prediction API」と「Google Cloud Storage」をオンにしました。 そしてバケットを作成してアップロードします。 何をしているかよく分からないまま進んでいますが・・・ 無事アップロードできました。アップロードはあっという間でした。

 

3.そして、解析開始です。

ここから「Prediction API」を使用します。 「Prediction API」がブラウザから使えるサイトに行きます。 https://developers.google.com/apis-explorer/?&_ga=1.100999174.668741449.1412325898#p/prediction/v1.6/

これは「APIs Explorer」と言って、ブラウザ上でGoogleの各種APIを簡単に試すことができます。

screen01

GO☆「ここに並んでいるのがPrediction APIで、これを使って解析するんだよ。とにかく使ってみよう!」

まずはデータを投入します。 APIs Explorerの「prediction.trainedmodels.insert」を使います。 project(さっきつくったプロジェクトに払い出された番号)とRequest bodyを入力します。 あと、忘れずにAuthorize requests using OAuth 2.0をオンにしましょう。 Request bodyはこれだけ入れればOKです。

{
"id”:”任意のid”
"storageDataLocation”:”バケット名/ファイル名”
}

そして、[Execute]ボタンをポチッ!っと押します。 これで解析が開始されます。

次に、APIs Explorerの「prediction.trainedmodels.get」を使って、解析が完了したかを調べます。 project、id(「prediction.trainedmodels.insert」で定義した任意のidです)を入れて、[Execute]ボタンをポチッ!っと押します。 Responseに"trainingStatus": “DONE"が返っていれば解析完了です。 解析時間は1分もかかりませんでした。

 

4.これが解析結果です!

うまく解析できたのでしょうか? APIs Explorerの「prediction.trainedmodels.analyze」を使って調べます。 これもproject、idを入れて、[Execute]ボタンをポチッ!っと押します。

解析結果はこんな風です。

"confusionMatrix": {

〜 1段目 〜
"English": {
"English": "16.00",
"French": "0.00",
"Spanish": "0.00"
},

〜 2段目 〜
"French": {
"English": "0.00",
"French": "14.14",
"Spanish": "0.00"
},

〜 3段目 〜
"Spanish": {
"English": "0.43",
"French": "0.14",
"Spanish": "10.29"
}

}
IMG_4200

まゆこ「これってどういうことですか?(‘o’)」 GO☆「いわゆる答え合わせをした結果だね。 かんたんに言うと、まず1段目は"English”(英語)で書かれた文章に対して、

「Prediction API」は

・英語と判断して、“English"に"16.00"票入れました。 ・フランス語と判断して、“French"に"0.00"票入れました。 ・スペイン語と判断して、“Spanish"に"0.00"票入れました。

ってことかな。つまり全問正解ってことだよ。

2段目を見ると、“French"も全問正解だね。

3段目は・・・本当は"Spanish"なのに、“English"とか"French"にも若干票が入ってるから見誤ってるね。」

 

IMG_4177

まゆこ「なるほど〜!!(‘o’)」

 

5.最後に予想させてみます。

“I am Mayuko.“という文章は何語かを聞いてみます。

APIs Explorerの「prediction.trainedmodels.predict」を使います。 「prediction.hostedmodels.predict」と似てるので、間違わないように注意してください。

 データファイルの最初の列(つまり”言語名”)を除いた全ての列(ここでは”各言語で書かれた文章”)を入力します。

※複数列がある場合は、カンマで区切って並べればいいみたいです。

こんな風に入力します。

{
"input":
{
"csvInstance":
[
"I am Mayuko."
]
}
}

するとこんな回答が返ってきました。

"outputLabel": "English",

それは英語だよ!と答えてくれました。

IMG_4205

見事正解です!やったー♡

※この記事は、『株式会社ISAO ITソリューション事業部』監修のもとに製作しております。