2017-09-04〜09-10 やったことと振り返り

決定木による予測でない分析

要因?と言っていいかわからないけど、やった。

  • 目的となる行動とそれ用の説明変数
    • 目的を実行するまでの行動のみであり、それ以降の行動は変数には含めない
    • 期間を設定しないと際限なく行動をとれるので、事前に基礎分析をしておく
    • 上記の例
      • その行動をした会員のうち50%は、入会からN日である。などの傾向
      • サービス提供としてここまでには行動してほしいなど
  • すべての変数について深さ2と3までのノードを見る
  • 一番目の分岐に使われた変数を除外して、同様に傾向をみる

失敗したことは、

  • 多分岐でやったので数量データの分岐が多くて解釈しにくかった
  • 上記においてセグメント別にする時どうすればいいか分からない(むしろ分からないからかけてる
  • つまり、深さ数のパラメータだけでなく分岐数のパラメータも意識するべき

各ノードにおいて、傾向(目的変数の割合の偏り)があるかを確認する。上の分岐と比較したときの差分で見ればよい。 傾向があり数が多い場合はデータマートから分岐条件を元に絞り込んでから詳細を見る。データマートにない変数があれば追加する。

まともに分析っぽいことをして感じたことは、以下のとおり。これからも意識してがんばる。

  • 目的と分析の設計、特に期間設定
  • 説明変数の設計、とりあえず入れてからこれ意味なかったと気づくことが多かった(似ている変数)
  • モデルに当てはめた後の解釈
  • モデルに当てはめること自体の意味の無さ

yukicoder

ABCのDで躓くことが多いので、guideに載っている基本的なことを全部やろうと思った。とりあえず以下の2つを解いてた。

どちらも★1つなので問題なし。問題が1つなのでそれに集中でき、AtCoderの補完として利用し続けたい。

AtCoder ABC

073

Cまで問題なく、Dできず。ARCに出るような人たちの早さ…。 最低限経由しないといけない町の順列列挙するというのは思いついたが、その場合その経由距離の合計しかしていなかった。

最低限以外の町を含めたコストを計算にはワーシャルフロイド法というアルゴリズムを使って解けると解説にあった。PDFのコードをみると2次元配列のDPだった。 DP慣れ全然していない問題が浮き彫りになった反面、なるほどなーとすぐ分かる程度にはなってた。

072

Cまで問題なく、DでTLE。最低限N2での解法を思いついた。ちゃんと考えれば分かる問題だったなと思った。

kaggleとAtCoder

時間が短いAtCoderは習慣づいているが、kaggleなどは全然習慣づいていない。 長期的なものがダメっぽいのは本読みだったり、すぐに実感できないものに多いので忍耐力・集中力なのかな。 と思ったが、手を付ければ集中するのはyukicoderの練習でも実感済みなので、まずは始めるのがよさそう。

まとめ

  • 競プロの習慣化順調
  • 長期的なものも手を付ける
  • 仕事分析、つらいけどためになる