F@N Ad-Tech Blog

株式会社ファンコミュニケーションズ nend・nex8・viidleのエンジニア・技術ブログ

初めてのデータ分析をした話

こんにちは! インターン始めてもうすぐ5ヶ月になる a_ota です。
時が経つのは早いですね、このあいだ正月だったのに、もう春ですね。お花見したくなります。
大学生活も残り少ないので、たくさん遊ぼうと思います。


さて、前回は、iosアプリについてでしたが、
今回はガラッと変わって、python,SQLでのデータ分析についてです。

SQLでの分析

まずは、アドテクの仕組みを説明していただき、(恥ずかしながら何も知らない状態でした...)
SQLで何かデータを取り出して、excelで図にするところから始めました。
学校の3年の後期の授業で、初めてSQLを扱ったので、まだ知識が新しく覚えていましたが、
こんなに膨大な、しかも実際に使われているデータを扱ったのは初めてだったので、
授業では習わなかった書き方など知ることができました。

pythonでの分析

半月ぐらい経つと、pythonでの分析に変わりました。
ここら辺から、CTR予測、検定、クラスタ分けなど、アドテク独自の言葉や機械学習独自の方法、用語が並ぶようになりました。
後日、友達に尋ねると、授業で習った内容だったようですが、私はほとんど覚えていない用語ばかりだったので、最初のうちは、検索して勉強して、を繰り返していました。

CTR予測

CTR予測とは、広告のクリック率を予測し、ユーザーにより良い広告を提供できるようにするものです。
予測には主に機械学習をつかって精度を上げていったり、一部に起こる不具合の原因を調べたりしました。
実装する内容については、t_sakai さんにご指導いただきながら行いました。今でも苦戦していますが、pythonのライブラリが豊富でとても魅力的でした。


得られた結果の1つを紹介します。


CTR予測として、ロジスティック回帰とGBDTでgrid searchというものを行いました。
grid search とは、いくつかパラメータを与えるとそのモデルの中で最も良い結果になるパラメータの組み合わせを探してくれるものです。とても便利ですね!


まず、ロジスティック回帰では、
f:id:fan_a_ota:20180328181505p:plain


次に、GBDTでは、
f:id:fan_a_ota:20180328181512p:plain


となり、結果としてGBDTの方が良い結果となりました。
時間はかかってしまいましたが、AUCが 0.70 を超えたのは、今回行ったGBDTだけでした。


ここで、評価指標の見方についてですが、
t_sakai さんの記事を貼っておきます。
tech-blog.fancs.com


また、同じような解析を行っていた、同じインターン生の r_konuma くんの記事も貼っておきます。
tech-blog.fancs.com


社内ページ用のコード

社内で使われているページの裏で回っているpythonやMySQLのコードをいじったり、cssを編集してレイアウトを変えたりもしました。
社内サーバーからコードを書き換えるのは少し緊張しましたが、うまく関数化したり工夫することを学べました。
また、cssについては、ハッカソンの時に少しいじったり、学校の課題では締め切りに追われていたので、
今までうまく時間が取れなかったのですが、この機会に、ゆっくり好きなだけデザインを変えることができ、様々なデザインを知れたので楽しかったです。


まとめ

pythonもSQLもほぼ初めての状態からのスタートでした。
分からないところだらけだったけど、意外となんとかなるものなんだな〜、と思いました。


というのも、私にとって今回扱ったものは、難しそうと遠ざけていたのですが、調べればいろんな情報が出回っているし、すでに同じようなことをしている人がたくさんいるので、参考にできるものが多かったです。
もちろん、社員の方々にいろいろ助けてもらいましたし、データがないとそもそも扱えないことだったので、とてもいい経験になりました。
これを機に、これからも気になったものはいろいろチャレンジしていきたいです!

最後に

ランチに誘っていただいた社員の方々ありがとうございました!


機械学習についての知識不足だった私にわかりやすく解説して頂き、
その他業務でもご指導いただいた t_sakai さん、
インターン生の困った時の頼みの綱、 y_kawasaki さん、
他にも困った時の質問に答えていただいた社員の方々、
そして、身の回りのサポートの他、いろんな話を聞いていただいた a_uchida さん、
本当にありがとうございました!!