aifou-kfmark / KFMARK

A free app for benchmarking Android 3D games.
662 stars 92 forks source link

请问平均波动算法是方差还是标准差或是其他什么? #70

Open wangkun1234 opened 5 years ago

wangkun1234 commented 5 years ago

如题,您们有空的话帮我解答一下疑问~拜谢!

Septillion commented 5 years ago

是先计算每秒帧率与平均帧率之间的差值,然后在计算全局差值的平均值。

获取 Outlook for iOShttps://aka.ms/o0ukef


收件人: wangkun1234 notifications@github.com 发送时间: 星期三, 十二月 26, 2018 10:29 收件人: Septillion/KFMARK 抄送: Subscribed 主题: [Septillion/KFMARK] 请问平均波动算法是方差还是标准差或是其他什么? (#70)

如题,您们有空的话帮我解答一下疑问~拜谢!

― You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://github.com/Septillion/KFMARK/issues/70, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AFomJqIVKQXGssFE-AzWdf8amVnnS7Qkks5u8t79gaJpZM4ZhTCt.

wangkun1234 commented 5 years ago

因为我们和tx合作测试帧率的时候,他们会用标准差来衡量与平均期望间的差值,后面会考虑更精准的标准差形式来表现平均波动吗?

Septillion commented 5 years ago

会考虑,因为现在的计算方法不太能体现超大波动。有什么推荐的算法吗?

获取 Outlook for iOShttps://aka.ms/o0ukef


收件人: wangkun1234 notifications@github.com 发送时间: 星期三, 十二月 26, 2018 11:08 收件人: Septillion/KFMARK 抄送: Frank Septillion; Comment 主题: Re: [Septillion/KFMARK] 请问平均波动算法是方差还是标准差或是其他什么? (#70)

因为我们和tx合作测试帧率的时候,他们会用标准差来衡量与平均期望间的差值,后面会考虑更精准的标准差形式来表现平均波动吗?

― You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/Septillion/KFMARK/issues/70#issuecomment-449894434, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AFomJmf7Ilox4bJnVfzuiphi_qcgiH1aks5u8ug9gaJpZM4ZhTCt.

wangkun1234 commented 5 years ago

在测帧率上可以采用标准差,因为标准差是指离散程度,即使两组平均fps一样的数据,标准差也可以大大不同,而影响手感的就是这个波动程度或者说fps离散程度。。。我不是搞开发的,具体算法没有啥好推荐。。。实现这个标准差公式会很难吗- -

Septillion commented 5 years ago

难倒是不难,反正都是机器去算。感谢建议,我们内部讨论一下。

获取 Outlook for iOShttps://aka.ms/o0ukef


收件人: wangkun1234 notifications@github.com 发送时间: 星期三, 十二月 26, 2018 11:30 收件人: Septillion/KFMARK 抄送: Frank Septillion; Comment 主题: Re: [Septillion/KFMARK] 请问平均波动算法是方差还是标准差或是其他什么? (#70)

在测帧率上可以采用标准差,因为标准差是指离散程度,即使两组平均fps一样的数据,标准差也可以大大不同,而影响手感的就是这个波动程度或者说fps离散程度。。。我不是搞开发的,具体算法没有啥好推荐。。。实现这个标准差公式会很难吗- -

― You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/Septillion/KFMARK/issues/70#issuecomment-449896572, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AFomJvBAmOa6y3wZdzN899Ym7KCzevkPks5u8u1ugaJpZM4ZhTCt.

wangkun1234 commented 5 years ago

gamebench是用稳定率来评价的,也不知道他们是什么公式算出来的,超过50%稳定率会被评为良好,然而50%稳定率实际体验也比较差,预计要75%能较流畅游戏

wangkun1234 commented 5 years ago

我尝试了几组数据

例1:33,27,33,31,11,48,7,50,平均值为30,平均波动算法:11.25,标准差算法:14.32 例2:44,27,40,13,11,48,7,50,平均值为30,平均波动算法:15.50,标准差算法:16.61 例3:34,30,29,28,27,32,33,27,平均值为30,平均波动算法:2.25,标准差算法:2.55

总结: 1、几组数据下来都是现算法结果优于标准差 2、两种算法的规律是:部分数据较平稳,部分数据与平均值差距较大时,两种算法差距较大(例1);所有单个数据与平均值差距越大,两种算法结果越接近(例2);数据较平稳时差距不大(例3) 3、两种算法体现的内容不一样: 平均差是反应各标志值与算术平均数之间的平均差异。平均差越大,表明各标志值与算术平均数的差异程度越大,该算术平均数的代表性就越小;平均差越小,表明各标志值与算术平均数的差异程度越小,该算术平均数的代表性就越大; 标准差最常使用作为统计分布程度上的测量。标准差定义是总体各单位标志值与其平均数离差平方的算术平均数的平方根,它反映组内个体间的离散程度。

一般统计使用标准差更为广泛,尤其是样本量足够大的情况下,它更能反映数据的离散程度;因为:一个是平方后平均再开方,一个是取绝对值后平均;直接平均对趋势变化不敏感,比如:-1,-9,0,1,9和-4,-6,0,4,6两组数用平均差的话两组算出来都是4,但是第一组的离散程度是要高于第二组的。标准差把离散程度放大之后再收缩,对变异量更为敏感一些,对离散程度的表达也更准确一些

Septillion commented 5 years ago

Gamebench 的稳定性计算方法是看有 % 多少的帧处在帧率中位数(他们不用平均值)的上下 20% 范围内。所以三五帧的波动在他们的算法里就会被忽略掉,如果全局都只有三五帧的波动,稳定性仍然会是 100%,我们觉得这样不太好。

按照你的说法,标准差确实更能体现离散程度。是个非常好的建议。

获取 Outlook for iOShttps://aka.ms/o0ukef


收件人: wangkun1234 notifications@github.com 发送时间: 星期三, 十二月 26, 2018 12:13 收件人: Septillion/KFMARK 抄送: Frank Septillion; Comment 主题: Re: [Septillion/KFMARK] 请问平均波动算法是方差还是标准差或是其他什么? (#70)

我尝试了几组数据

例1:33,27,33,31,11,48,7,50,平均值为30,平均波动算法:11.25,标准差算法:14.32 例2:44,27,40,13,11,48,7,50,平均值为30,平均波动算法:15.50,标准差算法:16.61 例3:34,30,29,28,27,32,33,27,平均值为30,平均波动算法:2.25,标准差算法:2.55

总结: 1、几组数据下来都是现算法结果优于标准差 2、两种算法的规律是:部分数据较平稳,部分数据与平均值差距较大时,两种算法差距较大(例1);所有单个数据与平均值差距越大,两种算法结果越接近(例2);数据较平稳时差距不大(例3) 3、两种算法体现的内容不一样: 平均差是反应各标志值与算术平均数之间的平均差异。平均差越大,表明各标志值与算术平均数的差异程度越大,该算术平均数的代表性就越小;平均差越小,表明各标志值与算术平均数的差异程度越小,该算术平均数的代表性就越大; 标准差最常使用作为统计分布程度上的测量。标准差定义是总体各单位标志值与其平均数离差平方的算术平均数的平方根,它反映组内个体间的离散程度。

一般统计使用标准差更为广泛,尤其是样本量足够大的情况下,它更能反映数据的离散程度;因为:一个是平方后平均再开方,一个是取绝对值后平均;直接平均对趋势变化不敏感,比如:-1,-9,0,1,9和-4,-6,0,4,6两组数用平均差的话两组算出来都是4,但是第一组的离散程度是要高于第二组的。标准差把离散程度放大之后再收缩,对变异量更为敏感一些,对离散程度的表达也更准确一些

― You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/Septillion/KFMARK/issues/70#issuecomment-449900287, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AFomJiNchIGgTuLF91dyEQITsrEkOGFdks5u8vdhgaJpZM4ZhTCt.

wangkun1234 commented 5 years ago

稳定率能体现大部分实际手感,也可以作为一个参考依据,毕竟没有太多本地游戏是常常大范围波动的,所以采用中位数来避免偏大数与偏小数的影响。咱们也可以多提供几个数据以供参考,包括稳定率,fps标准差等等,以供不同需要

wangkun1234 commented 5 years ago

不过我们现在测试的是云端游戏,波动确实很大。。。所以多提供几个数据吧。。。不能被稳定率蒙蔽。。。。

hfeitian2009 commented 5 years ago

我也觉得用标准差算更靠谱。不过也可以用另外一个思路,玩游戏中低于30帧就能明显感觉到卡顿,30帧以上的时候不会有一卡一卡的感觉,可以把低于30帧(或者别的更低帧数)的次数提取出来,另外进行统计。