最終決戦! 弊社AI VS Scikit-Learnライブラリ

前回の記事で気象庁からダウンロードした気象データに対して正解率を競い、

弊社AIが全勝ということで終わりました。

 

しかしですよ、こう思った人もいるのではないでしょうか…

アヤメデータで勝たないと意味ないんじゃない?

そうです。最初に負け気味判定だったアヤメデータ。

アヤメデータで勝ってこそ真の勝利

 

そこで弊社AI、ゼロから作り直しました。

ベイズモデルには変わりありませんが、別の理論を採用しました。

 

アヤメデータと気象データの両方についていざ勝負!

 

判定方法はより公平性を期すため、交差検証法の一種であるジャックナイフ法を5回行った時の平均正解率を競うことにしました。

(テスト回数はそれぞれ750回になります。)

また、前処理、チューニングは原則してませんが、敵に塩を送るようですがSVMだけは線形分離だと不利かなと思い非線型カーネルにしています。

 

結果がこちら

f:id:ois-blog:20200207162933p:plain

検証結果

僅差ではありますが、

弊社AIの全勝です!

 

でもこう思った人もいるでしょう、

僅差だし、偶然なんじゃないの?

 

そこで今回は仮説検定にかけてみました。

統計的に”弊社AIの正解率の方が高い”と言えるのか確認しました。

 

有意水準5%のt検定によると、

◯アヤメデータについて

決定木ランダムフォレストについては明らかに弊社AIの方が正解率が高い

ロジスティック回帰SVMについては差があるとは言い切れない

◯気象データについて

SVMのみ明らかに弊社AIの方が正解率が高い

他は差があるとは言い切れない

 

という結果でした。

ほんとに僅差の戦いで、心臓に悪い企画でした笑

しかして圧倒的に負けているのは速度です。

Cythonによる実装を試みる予定なので、今度は速度を記事に取り上げるかも知れません。

 

【続報】ついに勝利!? 弊社AI VS Scikit-Learnライブラリ

初めての連続投稿です。

 

前回”やや負け気味”の判定で終わった

 

弊社AI  VS  Scikit-Learnライブラリ

 

しかし負けたままでは終われません。

負けた直後に弊社AIを強化改善しました。

それとアルゴリズムの致命的なミスを発見しました…。

 

そして前回はScikit-Learn側で用意しているアヤメデータを対象データとしましたが、

今回は公平を期して気象庁の天気データを対象データとしました。

 

気温、日照時間、気圧から天気を判別できるか??

ただし気象庁の天気の判定は”晴後一時雨”などバリエーションが多すぎたので、

”晴後一時雨”→”晴”

のようにシンプルに直してあります。

 

今回は学習データの量は100、50、30で検証しました。

前回と同様1000回計算したときの平均正解率です。

以下が勝敗結果

f:id:ois-blog:20200204173149p:plain

勝敗結果

全勝でした!!

しかし今回は弊社AIも含めどのアルゴリズムも前処理やチューニングしていません。

なのでベストな結果同士を比較できたわけではありませんが、ここに一つベイズモデルの優秀さを示せたと思います。

【訂正】表の学習データですが、上から「50,100,120」となってますが、「100,50,30」の間違いでした。

弊社AI VS Scikit-Learnライブラリ

こんにちは。

今回は対決企画です。

弊社開発の分類用AI(ベイズ確率モデル)とPython機械学習ライブラリとしてお馴染みのScikit-Learnライブラリのアルゴリズムで予測精度を競います。

 

対象のデータはSkit-Learnライブラリから提供されている、有名なアヤメデータ(分類用の花のデータ)です。

 

今回Scikit-Learnからエントリーしてもらうのは

・ロジスティック回帰

SVMサポートベクターマシン

そして最後は最強の刺客

・ランダムフォレスト

 

性能の検証は、データを学習用と予測用に分けて検証するホールドアウト法を使います。今回は学習データの量を変えて、それぞれ1000回予測させたときの正解率の平均値を比較します。

 

では対決結果

f:id:ois-blog:20200204114110p:plain

対決結果

学習データ量が少ない場合は弊社AIがロジスティック回帰やSVMに優っています

データ量が少なくても予測できるのはベイズモデルの強みです。

しかしデータ量が増えてくると逆転されてしまいます。

 

そしてランダムフォレスト。さすが最強の刺客だけあって1回も勝てませんでした。

ランダムフォレスト最強説を唱えるデータサイエンティストがいるのもわかります。

 

Scikit-Learnとの対決はやや負け気味といったところでしょうか。

しかしデータ量が少ない環境ではScikit-Learnロジスティック回帰SVMを上回れたのは良い成果と言えるでしょう。

 

弊社の分類AIはまだ開発したばかりでまだまだ伸びしろがあります。

改良を重ねてより良いモデルを目指します。

 

株価予測AIアプリ

こんにちは。

弊社で開発したAIを使って任意の会社の株価の動きを予測するアプリを作りました。

企業コードを入れることで様々な企業の株価の動きを予測してくれます。

データは6時間おきに自動更新され、最新の情報のもとで予測します。

 

以下、予測例です

f:id:ois-blog:20200129091540j:plain

A社

f:id:ois-blog:20200129091558j:plain

B社

f:id:ois-blog:20200129091619j:plain

C社

f:id:ois-blog:20200129091635j:plain

D社

青線・・・実際の株価

赤線・・・AI予測

 

グラフを見るとAI予測の赤線はしっかりトレンドを捉えていることがわかります。

右端の赤線だけの部分が向こう10日間の予測になります。

 

以上、開発したアプリの紹介でした。

F XをAIで予測!

こんにちは。

今日は弊社で新しく開発したAI(回帰モデル)で実際にFXのデータを予測できるか試してみました。

 

用意したのは毎日の円/ドルデータです。

過去200日まで遡って170日分を学習データ、直近30日分を予測用データとしました。

結果がこちら

f:id:ois-blog:20200120162330p:plain

FXデータとAIの予測

青線・・・学習データ

赤線・・・AIの予測

緑線・・・正解

 

全体としてトレンドは掴めていますね。

予測部分に関しては当たったのか微妙です・・・。

この後下がったとしたら当たっていると言うことになりますね。

 

今回開発したAI、複数の要素からの予測も可能になっています。

いきなりハードルの高いF Xにチャレンジしてみましたが、他のデータにもチャレンジしてみたいと思います。

統計とマーケティング

あけましておめでとうございます。

今年もよろしくお願い致します。

 

新年最初の記事は、統計とマーケティングです。

 

統計ってどんなことに役に立つのか?

.

.

.

そもそも統計ってなんだ?

という方も多いと思うので、今日はざっくりと紹介していきたいと思います。

 

まず統計の話をするにはデータが必要です。

売り上げデータ、視聴者データ、試験データなど、世の中はデータで溢れています

 

これらのデータは自分からはなにも語りませんが、

こちらから積極的に話しかけることで色々なことを教えてくれます。

 

統計をする上で必ず登場するのが統計量

統計量とはデータから算出される値の総称です。

例えば売り上げデータなら、売り上げ合計も統計量、売り上げ平均も統計量です。他にもさまざまな統計量があります。

 

では、より実践的な話をしましょう。

 

販売業において、あるキャンペーンを打ったとしましょう。果たしてキャンペーンの効果があったのかなかったのか、統計が教えてくれます。

 

キャンペーンにより売り上げが上がっていればそれで効果があったといえるのではないか?と思うかもしれませんが、そもそもキャンペーンを打たなくとも売り上げというのは上下するはずで、売り上げの伸びがキャンペーンによるものか、"たまたま"なのか判定する必要があります。

 

その答えは、統計学の中の"仮説検定"が教えてくれます。まずは確かめたいことの逆の仮説をたてます。

キャンペーンは売上に"影響していない"。」そして対抗馬として「キャンペーンは売上に"影響している"」という仮説をたてます。ここで、"影響していない"という前提で話を進めていきます。その結果、実際の売上の伸びが"たまたま"で起こり得る出来事なのかを確率論で判断します。

 

"たまたま"で起こり得ないことが起きている

"影響していない"という前提がおかしい

"影響している"

 

といった流れになります。

もちろん"たまたま"で起こり得ると判定されることもあります。

その場合は、"影響してるとはいいきれない"というなんともどっちつかずな回答になります。

 

このように、統計は人間の直感に対して理論的な根拠を与えてくれます

とは言っても統計も100%の自信では回答できません。

しかし人間の感覚よりもはるかに客観的で確かな回答をしてくれます。

 

ただ単にデータを眺めて直感で判断するのではなく、統計的にデータを眺めると意外な答えが返ってくるかもしれません。

Twitter 男女別データ比較

こんにちは。

今日はTwitterAPIを使って取り出したデータを使ってお話していきたいと思います。

 

TwitterAPIを使えば、

・ツイート本文

・いいね数

リツイート

・投稿日時

・ユーザー情報

など、様々な情報を手に入れることができます。

 

今回は「菅田将暉 ANN」で検索した結果のツイートを男女別に分析してみました。

リツイート、URLを含むツイートははじいています。

 

ツイートごとのいいね数の平均値を男女別に比較してみましょう。

f:id:ois-blog:20191224152753p:plain

いいね数男女別平均値

女性のほうがややいいねが多い傾向があるようです。

 

今度はばらつきの大きさをみてみましょう。

f:id:ois-blog:20191224152928p:plain

男女別ばらつき

女性の方がばらつきが大きいと出ています。

つまり女性の方がいいねが多いものから少ないものまでばらついているということですね。

 

ここまで簡単に男女別にデータ分析をしてきましたが、実はTwitterAPIでは性別はわかりません。そもそもTwitterの性別はアカウントの持ち主からしかわからないようになってます。

 

ではどうやって性別のデータを手に入れたか?

今回はベイズ統計モデルの機械学習を使用しました。

機械学習といっても、教師なし学習なので教師データは要りません

詳しいアルゴリズムは割愛しますが、ツイッターの本文を読み込ませて男女に自動分類させました。

 

実はこの男女の判別こそが今回手がかかっったところであり、上の統計はオマケです笑

ツイートに限らずあらゆるテキストを男女に分類することができ、他の場面でも活躍しそうです。

 

ちなみにこの分類アルゴリズム

f:id:ois-blog:20191224155531p:plain

観測データ

例えばこのようなデータをインプットすると、

f:id:ois-blog:20191224155643p:plain

色分け分類データ

このように3つに分類してくれます。

確かに近しいデータ同士をひとかたまり(クラスター)として分類してくれていますね。

同じように男女を分類しています。

 

では。