複数の機械学習モデルでCTR予測をしてみた。nend・nex8のエンジニア・技術ブログ2018-03-26複数の機械学習モデルでCTR予測をしてみた。こんにちは、弊社で2ヶ月間インターンとして働いているr_konumaです。この記事では、2ヶ月間のインターンでやったことをまとめようと思います。他のモデルを使うことで精度が大きく変化するのかを検証しました。大規模なデータベースへのアクセスまず、CTR予測をするためのデータの取得します。notebookから接続し、データをローカルの環境に引っ張ってきます。Prestoに触れました。(それぞれの言語に特徴があるので、処理したいクエリーに合わせて使い分ける必要がありました。)CTR予測をするに当たって、クリックされたデータとクリックされなかったデータの割合には偏りがあったので、そのまま訓練データとして扱うのには適していませんでした。訓練データとしました。引っ張ってきたままのデータでは学習することができないので、次にデータの整形をします。ここは地道な作業になるので、もくもくとデータを綺麗にします。具体的には、ダミー変数に置換したり、正規化を行ったりしました。etc....を見てたりしました。データ中身を眺めてみるせっかくデータを綺麗にしたので、少し中身を見てみました。pythonのライブラリにはpandasがあるので、データを可視化が簡単にできました。具体的には、デバイス比と報酬型広告かどうかの比率をみました。デバイスはiPhoneが一番多く、また報酬型広告の方が多いことがわかりました。(ダウンサンプリングしているので現実の値とは異なります。)クリック数が一番多いのはiPhoneですが、割合をみると全体的に大きな差があるようには感じられませんでした。報酬型かどうかについては、報酬型である方がそうでない場合に比べて2倍違いました。今回はダウンサンプリングをしているので実際は正確に2倍違う訳ではなく、ここからわかることは、報酬型の方がクリックされる可能性があるということくらいです。評価方法には、ROC曲線とAUC値を用いました。それぞれのモデルのROC曲線が違う色で示されており、右下にAUC値がまとめられています。ROC曲線を見てみるとわかるかと思うのですが、どれもさほど大きな変化はありませんでした。下表のように、学習にかかる時間はロジスティック回帰が一番短かったので、今回試したモデルの中では、ロジスティック回帰が一番性能の良いモデルという結果となりました。[sec]まとめ今回試したモデルの中ではロジスティック回帰が一番パフォーマンスのよいモデルである。機械学習モデルを変えるだけでは、精度に大きな影響はない。学習をさせる前に、モデルに対する特徴を理解して適切なモデルをいくつかに絞った方がよい。機械学習モデルに関する理解をした上でライブラリを使わなければせっかくオープンにされている複雑なプログラムも有効に活用できない、というのが今回CTR予測をしてみた感想です。Word2Vec)こんにちは!5日間インターンに参加させて頂いた中島です。Are青山のアドテク会社。アドネットワークやDSPを開発・運用。サーバを止めてみたよ。インターン:実業務体験編インターンでCTR予測をしましたSearchArchiveスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。