まゆこのましんラーニング♡#02
こんにちは!ITソリューション事業部のまゆこです。
早くも二回目です。
そもそもマシンラーニングって何でしょう?
ググってみましたが、うーん、イマイチ分かんないです>< まゆこ「GO☆さん教えて下さーい( ;∀;)」
GO☆「む〜ん、つまり我々が無意識に行っているパターン認識をだねぇ〜・・・」
まゆこ「はい?分かんないので、自分で調べます( ;∀;)」
ふむふむ、私が参考にするサイトを見ると・・・ 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/
まゆこ「なんですかこれ?」 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を簡単に試すことができます。
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"
}
}
まゆこ「これってどういうことですか?(‘o’)」 GO☆「いわゆる答え合わせをした結果だね。 かんたんに言うと、まず1段目は"English”(英語)で書かれた文章に対して、
「Prediction API」は
・英語と判断して、“English"に"16.00"票入れました。 ・フランス語と判断して、“French"に"0.00"票入れました。 ・スペイン語と判断して、“Spanish"に"0.00"票入れました。
ってことかな。つまり全問正解ってことだよ。
2段目を見ると、“French"も全問正解だね。
3段目は・・・本当は"Spanish"なのに、“English"とか"French"にも若干票が入ってるから見誤ってるね。」
まゆこ「なるほど〜!!(‘o’)」
5.最後に予想させてみます。
“I am Mayuko.“という文章は何語かを聞いてみます。
APIs Explorerの「prediction.trainedmodels.predict」を使います。 「prediction.hostedmodels.predict」と似てるので、間違わないように注意してください。
データファイルの最初の列(つまり”言語名”)を除いた全ての列(ここでは”各言語で書かれた文章”)を入力します。
※複数列がある場合は、カンマで区切って並べればいいみたいです。
こんな風に入力します。
{
"input":
{
"csvInstance":
[
"I am Mayuko."
]
}
}
するとこんな回答が返ってきました。
"outputLabel": "English",
それは英語だよ!と答えてくれました。
見事正解です!やったー♡
※この記事は、『株式会社ISAO ITソリューション事業部』監修のもとに製作しております。