いう競技プログラミングの練習サイトがあります。Challenge解けるか解けないかくらいのちょうど良い難易度の問題に取り組むことが一番成長につながるはずなので,それぞれ問題の難易度やそれぞれのユーザの習熟度を定量的に評価して推薦システムを作りたい気分になります。これまでの正答数やレーティングが表示されていますが,この2つの値はユーザの習熟度とは必ずしも一致しません。簡単な問題ばかり解いていれば正答数は伸ばせますし*1,レーティング*2は回答者が少なくて簡単な問題を中心に解いていればかなり大きく伸びるためです。そのため,問題の難易度やそれぞれのユーザの習熟度を計算する気の利いた方法が必要です。関連研究sucrose.hatenablog.comtopcoder.g.hatena.ne.jp得られる情報AOJのAPIを利用することで,誰がどの問題に正答したかという情報を得ることができます。いうサイトで有志によって一部の問題に対して人手で難易度が付与されています。難しいところ正答していない問題は,取り組んだけれども実力不足で解けなかったのか,そもそも取り組んでいなかったのかを区別することができません。そのため,あるユーザが問題に取り組むかどうかを表す確率をモデルに組み込むことにしました。考えたモデルは以下のとおりです。個々の問題の取り組む確率です。データから推定します。取り組むときに1,取り組まないときに0をとります。取り組むときに発揮されるパフォーマンスです。ばらつきが乗ったものとしました。個人差はないものとしています。正答したかどうかを表す観測可能な変数です。上回った場合に1になります。問題に取り組む気分にならなかったり,ユーザが発揮したパフォーマンスが問題の難易度を下回ったりした場合には0になります。一部の問題についてはAOJ-ICPCで有志によって人手で値が付与されています。続きkujira16.hateblo.jp参考文献Stanを使った統計モデリングのチュートリアルです。大学1年生の教科書レベルの確率統計が理解できれば1人で読み進められます。予選問題を復習した今年もISUCONには参加する予定で、チームメンバーを集めるとこ...2018-09-23JAG夏合宿2018参加記(スタッフ視点)今年もスタッフとして参加してきました。(1)はてなブログをはじめよう!kujira16さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。