Shunsuke Ohashi

Results 17 comments of Shunsuke Ohashi

AGC-A用撤退率考慮モデルは撤退率をグリッドサーチする必要がありますが、問題数が少ないのでたぶん問題ないはず。

ABCが8問に増えたのがちょうどいい機会ですから、このタイミングでこれをやろうかなと思っています。 このまま放っておくと本来なら同じ推定難易度になってほしい問題が8問体制では高めに推定されてしまって不合理なので。

これに good first が付いてるのに気が付きました。推定方法に自信がないときは @amylase にメンションいただければ一緒に議論できます。 統計に自信ニキ/ネキのみなさんはむしろ色々教えて下さい。

実はユーザーの最新のレーティングがあれば事足りるので、DBを拡張してそれを保存してしまうという手もあります。この方針だと * 再計算時に取得するデータが最新AGCの順位表と全ユーザーのレーティング一覧だけとなり負荷が軽くなり、 * 現在公式のAPIをproxyしてレーティングを取得している部分を置き換えられる というメリットがありますね。

> AtCoderのレート表記は、99.9%の確率でそのレート以上の実力があることを保証する数字 というのは、コンテストによるパフォーマンス測定にはばらつきがあるという前提のもとで、たくさんコンテストに出てないうちはレーティングの推定量には大きなばらつきがあるのでそのばらつきのぶんだけ割り引こうという話で、実はこれはいわゆるリセマラ排除補正のことです。これを取り除くには単に内部レーティングを使用すればよく、Recommendationではすでにそのようにしているので、この点だけを持ってより難しい問題に寄せたほうがいいという結論にはなりません。 でも、例えば練習で問題を解いているときはコンテスト中よりも長い時間をかけられるのが一般的ですから、そのぶんだけより難しい問題に挑戦できるという考え方はありえます。他にもいろいろな要素が本番と練習では異なるので50%という具体的な値にはあまり意味がないようにも思え、実際に使ってみた感覚に頼る必要があるのかもしれません。 個人的には50%だと程よい手応えの問題が出てくるのですが20%はとても手が出ない問題が多く、kenkooooさんの感覚に近い印象を持っています。

手元で試しに計算してみましたが、AGC-Aなどの過大評価問題やそもそもコンテスト時間が長くて一問に時間をかけられるようなところ(APC、3時間企業コン決勝など)がたくさん出てきて、コンテスト種類が異なると割と比較不能な感じがありますね…… いいアイデアだと思ったけどそうでもないっぽいです。

導出がおかしそうです。 以下 A = C * discrim * |σ| と置きます A * (d - r) + log(t_end) の次元は時間の対数なので、これの誤差は対数正規分布ではなく正規分布に従うはずです。 つまり、2行目で対数正規分布の密度関数に突っ込んでるところが怪しいと思います。 代わりに正規分布の密度関数に突っ込むとすると、全体としてやりたい操作は正規分布のフィッティングになります。 いきなり計算する前に少し式を整理します。 今考えているモデルは、レーティング r の人の回答時間が t のときに t は log(t) =...

「考えうる改善」で説明されているところは要するにコンテスト時間中に正答しなかった人のデータをどう扱うかという話で、これは #820 でも言及しましたが、過去に #290 で潜在変数を導入する作戦を試みていまいちうまく行ってません。打ち切り(truncation / censoring)の扱いにはいろいろな作法があるのでもしかしたら他にいい方法があるのかもしれません。

難易度の定義を「**コンテスト終了までに**正解できる確率」と読むのはかなり筋が良さそうで感動しています。というのもこれによって解答時間と難易度のモデルを結びつけることができるからです。 特に、これと累積正規分布をロジスティック分布で近似して導出した最後の式はかなり夢を感じていて、σ をなんとかして固定するなりグリッドサーチで決めるなりすれば、discrim, d * discrim を重みとする線形モデルですから、正解時間の情報を利用して難易度が推定できそうです(今よりかなり正確になることが期待されます)。 σ は AtCoder の勝率予測式と早解き勝負の勝率予測式の整合性を取ることにすれば、 (何かしらの式)= ln(6) / 400 を使って固定できそうです。

難易度の定義を時間に結びつける話だと実は #808 の内容もやや関連していて(私はこういうきれいなモデルが出てくるとは思っていませんでしたが)、切片を t_end ではなく 3600 [sec] にするなどするのも意味があるかもしれません。 こう考えると、切片を固定するのは時間を正確に予測するためというよりは、難易度との整合性を図るためという感じがしますね。 (コンテスト時間の長さそのものによって解答時間モデルの切片が変化するとは考えられないので。これは本質的には問題とコンテスト参加者のみに依存するはずです)