Dan*_*nze 9 php sorting algorithm
Daniel Collicott:
Run Code Online (Sandbox Code Playgroud)
如果我理解正确,你想要计算一个项目的最佳销售价值.(或者你试图计算实际值?)
卖家很自然地玩游戏(例如ebay),试图最大化他们的利润.
出于这个原因,我会避免平均/ SD方法:它们对特定销售策略产生的异常值过于敏感.
从博弈论的角度来看,我认为聪明的卖家会通过研究他们的竞争对手及其历史销售额来估计最高的可能销售价格(最大利润):找到最佳点.
出于这个原因,我会记录所有卖家的历史价格直方图,并查看价格的分布,使用接近模式的东西来确定最优价格,即最常见的销售价格.更好的是,我会根据每个卖家的利润(与历史销量成比例)来衡量价格.
我怀疑这会更接近你的最佳市场价值; 如果您正在寻找真正的市场价值,请在下面评论或在我的机器学习公司与我联系
关于@Daniel Collicott帖子中提到的事情的更详细解释:
- >最佳销售价值
- >实际销售价值
- >两者的算法
使用平均值和标准偏差,您的第一个问题非常简单:
$prices = array
(
'bar' => array(12.34, 102.55),
'foo' => array(12.34, 15.66, 102.55, 134.66),
'foobar' => array(12.34, 15.22, 14.18, 20.55, 99.50, 15.88, 16.99, 102.55),
);
foreach ($prices as $item => $bids)
{
$average = call_user_func_array('Average', $bids);
$standardDeviation = call_user_func_array('standardDeviation', $bids);
foreach ($bids as $key => $bid)
{
if (($bid < ($average - $standardDeviation)) || ($bid > ($average + $standardDeviation)))
{
unset($bids[$key]);
}
}
$prices[$item] = $bids;
}
print_r($prices);
Run Code Online (Sandbox Code Playgroud)
基本上您只需要删除低于avg - stDev或高于的出价avg + stDev.
和实际的功能(从我的框架移植):
function Average()
{
if (count($arguments = func_get_args()) > 0)
{
return array_sum($arguments) / count($arguments);
}
return 0;
}
function standardDeviation()
{
if (count($arguments = func_get_args()) > 0)
{
$result = call_user_func_array('Average', $arguments);
foreach ($arguments as $key => $value)
{
$arguments[$key] = pow($value - $result, 2);
}
return sqrt(call_user_func_array('Average', $arguments));
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出(演示):
Array
(
[bar] => Array
(
[0] => 12.34
[1] => 102.55
)
[foo] => Array
(
[1] => 15.66
[2] => 102.55
)
[foobar] => Array
(
[0] => 12.34
[1] => 15.22
[2] => 14.18
[3] => 20.55
[5] => 15.88
[6] => 16.99
)
)
Run Code Online (Sandbox Code Playgroud)
如果您想要做的只是标准化数据集 - 即收敛到反映平均值的集合,那么您可以使用峰度和偏度来表征数据集的结构以帮助识别异常值 - (使用以下方法计算每个点的度量数据集的其余部分旨在最小化 Kurtois 并保留偏度的趋势 - 拒绝极值并重复,直到排除某个值不会显着改变指标为止)。
但你的问题有点有趣:
让我看看我的说法是否正确:您对 foobar 市场的了解并不完善,但您可以获得有关它的有限具体信息。
您希望使用有限的数据集来预测有关市场的隐藏信息。
假设您每天有 1000 个价格;
对于每一天,计算:均值、众数、中位数、标准差、峰度和偏度 - 这可以掌握市场的形状:
比较每日价值将使您能够衡量市场的健康状况。
一旦您获得了几周的趋势数据(随着时间的推移,情况会变得更好),您就可以开始测试真实价格。
如果真实价格在波动,那么要么样本量太小,要么市场运行不正常(即一些参与者支付的价格高于价值,销售低于价值,供应受到限制,购买价格与市场无关)值等)。
我尝试过对二手车价格进行建模(它们不是同质的),但我确实得到了一些合理的收敛 - +/- 10%,但这是在有限的数据集上进行的。它似乎也适用于房价,而不是商品或足球比分。
它永远不会给你一个明确的预测答案,尤其是在拍卖环境中 - 但它应该让你比算术平均值更接近真实价格。
| 归档时间: |
|
| 查看次数: |
2184 次 |
| 最近记录: |