アルゴリズム:値が不明な場合の二分探索


11

各ステップのテストで誤った結果が出る可能性がある場合に、バイナリサーチを実行するアルゴリズムが必要です。

背景: 最も適切な12の難易度に生徒を配置する必要があります。現在のアプローチはブルートフォースであり、難易度が増加し、3つの間違いの後で停止する60の4択多項式質問をし、生徒をfloor((score - 1) / 5) + 1最低1のレベルに配置します。

お客様が実際にプログラムを使用する前に最大60の質問を伴うテストに直面すると、お客様の電源が切れるのではないかと懸念しています。そのため、テストで行われる質問の数を最小限に抑えたいと考えています。また、お客様がプレースメントテストを(長いように思われるため)スキップし、プログラムが簡単すぎると思われるためにプログラムを放棄することも懸念しています。

配置の中央値は実際にはレベル2にあるため、学生の50%以上が11未満(つまり、14未満の質問に答える)のスコアです。逸話として、これは彼らが退屈して真剣に質問をするのをやめたためかもしれません(彼らは幼い子供です)。

提案された解決策: 難易度6/7の質問で始まり、質問が正しいか間違っているかに基づいて進行する12項目のバイナリ検索としてテストを実装します。理論的には、これは3〜4問で適切な難易度を見つけることができます。

問題: 既存のテストは3つの間違った答えの後にのみ終了し、60の質問を使用して12レベルから選択することから推測できるように、正しい答えをたどる生徒(25%の確率で行う)または誤って不正解(太った指、誤解した質問など)を与える。二分探索では、これがさらに重要です。最初の質問に正解をたどると、他のすべての質問が間違っていても、難易度の上半分になる可能性があるからです。

では、個々のテストが正確であることを保証できない二分探索の認識されたアルゴリズムはありますか?

単純に私は各ステップで3つまたは5つの質問を最もよく試す可能性があります。また、初期の質問は後の質問よりも最終結果に大きな影響を与えるため、これらの追加の質問を初期のステップにのみ追加し、後のステップには追加しないでください。それ以上のものはありますか?


なぜ事前テストを行うのですか?実際のテストの質問を自分で調整するだけ
スコットステンランド

@ScottStensland、面白い考え。ただし、実際のプログラムは、10個の「レッスン」の12個の「マップ」であり、各レッスンは、8〜15個のHTML5キャンバス「アクティビティ」またはゲームで構成されており、それぞれが非常に多様なデザインです。生徒はマップを進み、各レッスンとマップの後に報酬と賞/証明書を受け取ります。すべてのゲームの後にレベルを絶えず調整していると、それはかなり混乱し、既存のすべてのゲームにフィードバックを組み込み、各ゲームのフィードバックのルールも理解する必要があります。

@キリル、質問を別のセクションに移動/クロスポストする簡単な方法はありますか?

@jimモデレーターに質問を移動するようにフラグを立てたり、この質問をここで削除して、そこに新しい同じ質問を作成したりできます。クロスポスティング(異なるサイトで同時に同じ質問をする)は通常お勧めできません。私がその提案をしたのは、統計/機械学習の比較的単純明快な質問のように思えるからです。
Kirill、2015

回答:


2

問題をベイズ確率の配列として扱います。最初に、子供が各レベルのすぐ下にある1/13の可能性があると仮定します。完全を期すために、子供が1/13の可能性があると仮定します。次に、1)アレイの中央値レベル、つまりそれを超える確率が50%に最も近いレベルを見つけます。2)そのレベルから子供に質問します。3)25%のエラー率を想定して、ベイズのルールを使用して各セルの確率を更新します。1つのセルが十分に高い確率でヒットした場合、またはレベルの質問が不足した場合に、最も可能性の高いレベルを終了して返します。

このアルゴリズムのより厳密な扱いはここにあります。実装する前に読んでおくことをお勧めします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.