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

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

20150828_125443

うそです。エクストリームエンジニアのGO☆です。

★☆ ↓GO☆のYoutube公開中 ★☆

最近上司から「その髪型おもしろいから絶対切るな、切ったらクビ」とパワハラを受けています。ちりちり

さて、今回は夏休み中のまゆちゃんに代わって僕が書きます。 前回は言語当てをしましたが、今回は身長当ての予想をしてみます。

何が違うのでしょうか? その前に、Categorical models(カテゴリモデル)とRegression models(回帰モデル)について説明します。 僕は統計学の専門家ではないので、「Prediction API」に最低限必要なことだけを書きます。ちりちり

 

1.Categorical models(カテゴリモデル)

予想結果が、特定の選択肢(投入したデータの1列目の値)の中から導き出されます。 つまり、”O” or ”X”とか、”良い” or ”普通” or ”悪い”といった予想結果を導きたいときに使います。 前回の言語当ては、このモデルでした。 分析データの1列目(つまり答え)が文字列だと、自動的にこのモデルになります。

 

2.Regression models(回帰モデル)

予想結果が、数値で導き出されます。 回帰分析をして予想値を出しているから回帰モデルなんでしょうね。ちりちり 今回の身長当ては、このモデルです。 分析データの1列目(つまり答え)が数値だと、自動的にこのモデルになります。 但し、1件でも1列目にnullとか文字列が入っているとカテゴリモデルになるので注意が必要です。

 

そんなわけで、今回はRegression models(回帰モデル)で予想します。 それでは実践してみましょう!

体重を入力すると身長を予想してくれるモデルなので、下記のようなファイルをつくります。

[身長],[体重]

Excelを使って2万件作成しました。 体重はランダムに生成して、身長はその体重をもとに、多少ばらつきが出るようにつくりました。 つまり身長と体重に相関関係を持たせています。ちりちり

次に「Prediction API」です。

 

1.「prediction.trainedmodels.insert」でデータ投入、「prediction.trainedmodels.get」で完了を確認します。

2万件ありますが、2列しかないので5分程度で完了しました。 完了のレスポンスに"modelType": “regression"と返ってきたら、回帰モデルです。 ちなみに、“modelType”: “classification"と返ってきたら、カテゴリモデルです。

 

2.「prediction.trainedmodels.analyze」で分析結果を見ます。

カテゴリモデルと違って、“modelDescription"には分析結果が書いてありませんね。

"modelDescription": {
"modelinfo": {
"kind": "prediction#training"
}
}

一方、“dataDescription"の方には、件数(count)の他に、平均(mean)と分散(variance)の値が出ています。

"numeric": {
"count": "20000",
"mean": "171.59",
"variance": "450.77"
}

 

3.「prediction.trainedmodels.predict」で予想します。

体重75Kgは身長何センチか聞いてみます。

{
"input": {
"csvInstance": [
"75"
]
}
}

 

と聞いたら、

"outputValue": "172.528445"

と返ってきました。つまり172.5センチという答えです。 分析データに小数点は入れてなかったので、回帰分析した結果ということですね。 おしまいです。

ちりちり

★☆ ↓GO☆のYoutube公開中 ★☆

 

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