2

2 つのデータセット (A & B) があります。それぞれ1000個の数字を持っています。

99%の確率: A < 5 <= B

ただし、B < 5 < A の確率は 1% です。

分割点が不明な場合 - x- 特定のデータセットでどのように決定できxますか?

明らかにMax(A)Min(B)誤解を招くものです。また、範囲全体 (または Min(B) と Max(A) の間だけでも) をループして、最も可能性の高い分割点を推測して特定することは避けたいと思います。

Sample Dataset

A 1
A 1
A 1
A 2
B 2 <--anomoly
A 3
A 3
A 3
A 4
A 5 <--anomoly
B 5 <--division, or `x`
B 5
B 5
B 5
A 6 <--anomoly
B 7
B 8
B 8
B 8
B 9
B 9
B 10
B 10

データセットの別のペアが存在すると仮定します (C & D)。異常の特定のしきい値を考慮した後、C が D になるポイントを見つけるにはどうすればよいですか。

おすすめは何ですか?

これが大まかな「推測」戦略です。「推測」ループなしで同じことをしたいと思います。

$maxProbable = 0;
$pointOfDivision = 0;
for ($i = Min($b); $i <= Max($a); $i++) {
    // get probability $i is in_array($a)
    $countBelow = below($i,$a); // assume function returns count of $a items below $i
    $countAbove = above($i,$b); // assume function returns count of $b items above $i
    $probBelow = $countBelow/count($a);
    $probAbove = $countAbove/count($b);
    if (($probBelow+$probAbove) > $maxProbable) {
        $maxProbable = $probBelow+$probAbove;
        $pointOfDivision = $i;
    }
}
echo $pointOfDivision;
4

1 に答える 1

0

これは、統計と機械学習でよく知られている問題です。多数のラベル付きデータポイントが与えられた場合、新しいデータポイントの最も可能性の高いラベルを決定します。1D の場合、多くの場合、しきい値 x を決定し、「x 未満のものはラベル A を持つ」、「x より大きいものはラベル B を持つ」ということになります。

多くのアルゴリズムがあります。たとえば、ロジスティック回帰ニューラル ネットワーク、またはサポート ベクター マシンを使用できます。アルゴリズムの選択は、データから想定できるものと、利用可能なツールとライブラリによって異なります。たとえば、SVM を自分で実装するのは明らかに難しいようです。

データがどのように生成されたか、またはよく知られている統計分布から得られたものである場合、それほど複雑ではないが適切な解決策への近道があるかもしれません。

于 2013-08-26T14:28:55.423 に答える