今天的文章要讲的是Percentiles(百分位数)跟Percentile Ranks(百分位数排名)
以下是这次的测试资料
・这种聚合方式会回传一个或多个百分位数,这些百分位数所代表的是一定百分比的观察值出现的点,例如第95个百分位数是大於观察值的95%的值。
・百分位数通常用於查找异常值。在正态分布中,第0.13和第99.87个百分位数代表与平均值的三个标准差,任何超出三个标准偏差的数据通常被视为异常。
・预设会回传[ 1, 5, 25, 50, 75, 95, 99 ]的百分位数。(第25、50、75位数就是第1四分位数、中位数、第3四分位数)
・回传的数值是近似值
aggs query:
{
"aggs": {
"grades_outlier": {
"percentiles": {
"field": "grades.eng"
}
}
}
}
结果:
"aggregations" : {
"grades_outlier" : {
"values" : {
"1.0" : 43.0,
"5.0" : 43.0,
"25.0" : 69.0,
"50.0" : 82.5,
"75.0" : 98.0,
"95.0" : 100.0,
"99.0" : 100.0
}
}
}
也可以透过可变参数percents决定回传的百分位数
aggs query:
{
"aggs": {
"grades_outlier": {
"percentiles": {
"field": "grades.eng",
"percents": [0.13 ,90, 91, 92, 93, 93, 95, 99.5, 99.87]
}
}
}
}
结果:
"aggregations" : {
"grades_outlier" : {
"values" : {
"0.13" : 43.0,
"90.0" : 99.8,
"91.0" : 99.92,
"92.0" : 100.0,
"93.0" : 100.0,
"93.0" : 100.0,
"95.0" : 100.0,
"99.5" : 100.0,
"99.87" : 100.0
}
}
}
也可以使用脚本调整,调整的内容取决於使用者的目的,这边简单的做个范例
aggs query
{
"aggs": {
"grades_outlier": {
"percentiles": {
"field": "grades.eng",
"percents": [0.13 ,90, 91, 92, 93, 93, 95, 99.5, 99.87],
"script": {
"lang": "painless",
"source": "doc['grades.eng'].value - 20"
}
}
}
}
}
结果:
"aggregations" : {
"grades_outlier" : {
"values" : {
"0.13" : 23.0,
"90.0" : 79.8,
"91.0" : 79.92,
"92.0" : 80.0,
"93.0" : 80.0,
"93.0" : 80.0,
"95.0" : 80.0,
"99.5" : 80.0,
"99.87" : 80.0
}
}
}
#脚本的内容就别太在意,这边只是简单的告诉大家可以使用脚本依据使用者的目的调整结果
想知道更多实际应用方使可以参考:
https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-percentile-aggregation.html#_script_10
这种聚合方式则和Percentiles相反,是推算数值大约为多少百分位数
回传的数值是近似值
aggs query:
{
"aggs": {
"grades_rp": {
"percentile_ranks": {
"field": "grades.eng",
"values": [40] #指定要推测的数值
}
}
}
}
结果:
"aggregations" : {
"grades_rp" : {
"values" : {
"40.0" : 6.4102564102564115
}
}
}
一样可以使用脚本调整
{
"aggs": {
"grades_rp": {
"percentile_ranks": {
"field": "grades.eng",
"values": [40],
"script": {
"source": "doc['grades.eng'].value - 10"
}
}
}
}
}
结果:
"aggregations" : {
"grades_rp" : {
"values" : {
"40.0" : 12.820512820512823
}
}
}
可以应用在算PR值
今天的文章就到这边,谢谢大家
Twinkle Tray是一款支持多显示器的屏幕亮度调节工具,让你可以在一块屏幕上调节所有的显示器亮...
各位前辈们好,我想询问这题怎麽解~ 我查了很多资料还是不知道怎麽解 谢谢各位前辈 一部路由器有A、B...
不罗嗦! 直接上图 基本上要先在odoo原生的Xml找到你要放置新栏位的位置, 然後使用xpath语...
这个得上一篇:https://ithelp.ithome.com.tw/articles/10258...
Function of timer and compare functionality of ha...