我有两个数据集(A 和 B)。他们每个人都有 1000 个号码。
99% 的时间:A < 5 <= B
但是,有 1% 的时间 B < 5 < A。
如果划分点未知 - 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;