免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5827 | 回复: 15
打印 上一主题 下一主题

[算法] 剔除几个数求变异系数 [复制链接]

论坛徽章:
14
巨蟹座
日期:2013-11-19 14:09:4615-16赛季CBA联赛之青岛
日期:2016-07-05 12:36:0515-16赛季CBA联赛之广东
日期:2016-06-29 11:45:542015亚冠之全北现代
日期:2015-07-22 08:09:472015年辞旧岁徽章
日期:2015-03-03 16:54:15巨蟹座
日期:2014-12-29 08:22:29射手座
日期:2014-12-05 08:20:39狮子座
日期:2014-11-05 12:33:52寅虎
日期:2014-08-13 09:01:31巳蛇
日期:2014-06-16 16:29:52技术图书徽章
日期:2014-04-15 08:44:01天蝎座
日期:2014-03-11 13:06:45
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-08-16 08:55 |只看该作者 |倒序浏览
30可用积分
有一组数据,假设已经排序过,为 x1,x2,x3,……xn
有一个公式 y = n * (x1^2 + x2^2 + x3^2 + …… + xn^2) / (x1+x2+x3+……+xn)^2,也就是 y = n * 平方和 / 和的平方
现在想在x集合中去掉一个数(n当然也就是小了1),使得 y 尽可能的更趋于1,去掉哪个好呢?
即:
y1 = n * 平方和 / 和的平方
y2 = (n-1) * 余下数的平方和 / 余下数的和的平方
去掉哪个数才使得y2最靠近数值1.0?

我还有两个附属的疑问
1。如果去掉一个数,我猜这个数要么是x集合中的最大的那个数,要么就是最小的那个数。这个猜测对吗?
2。如果要求去掉一个数,计算出最应该去掉的是a;如果要求去掉两个数,则a一定为其中一个。这个猜测对吗?

最佳答案

查看完整内容

回复 12# bruceteen 眼花了 .. y[ab] = 1 + (-(da+db)^2 * n/(n-2) + 2*da*db + sum(di^2)) / ((da+db) - (n-2)*x)^2 / (n-2)) 是这个。本来以为都是 (da+db) 的 .. 偏导(关于da)出来大概和 -da*N*X - db*N*X - 2*db^2 + 2*db*X + sum 这么个东西同号,所以截面都是单峰的,图像是锥形的,答案是 最小次小;最小最大;最大次大 中的一个 是否一定包含我就不知道了 .. 等高人

论坛徽章:
0
2 [报告]
发表于 2012-08-16 08:55 |只看该作者
本帖最后由 hbmhalley 于 2012-08-16 17:47 编辑

回复 12# bruceteen


    眼花了 ..

    y[ab] = 1 + (-(da+db)^2 * n/(n-2) + 2*da*db + sum(di^2)) / ((da+db) - (n-2)*x)^2 / (n-2))
    是这个。本来以为都是 (da+db) 的 ..
    偏导(关于da)出来大概和 -da*N*X - db*N*X - 2*db^2 + 2*db*X + sum 这么个东西同号,所以截面都是单峰的,图像是锥形的,答案是 最小次小;最小最大;最大次大 中的一个

    是否一定包含我就不知道了 .. 等高人

论坛徽章:
0
3 [报告]
发表于 2012-08-16 09:59 |只看该作者
n倍平方和 > 和的平方,
你可以将x2...xn看做x1+k1....x1+kn-1,当所有k = 0的时候整个 = 1,

结论就是去掉最大的,而且去掉两个的话----没错,也是去掉最后两个

论坛徽章:
14
巨蟹座
日期:2013-11-19 14:09:4615-16赛季CBA联赛之青岛
日期:2016-07-05 12:36:0515-16赛季CBA联赛之广东
日期:2016-06-29 11:45:542015亚冠之全北现代
日期:2015-07-22 08:09:472015年辞旧岁徽章
日期:2015-03-03 16:54:15巨蟹座
日期:2014-12-29 08:22:29射手座
日期:2014-12-05 08:20:39狮子座
日期:2014-11-05 12:33:52寅虎
日期:2014-08-13 09:01:31巳蛇
日期:2014-06-16 16:29:52技术图书徽章
日期:2014-04-15 08:44:01天蝎座
日期:2014-03-11 13:06:45
4 [报告]
发表于 2012-08-16 10:10 |只看该作者
回复 2# ymonster
不对吧,比如 1 2 3 4 5 6 7 8 9 10 的 y值是 1.27273
去掉 10 后的y值是 1.26667
而去掉 1 后的y值是 1.18519
因此去掉 1 比去掉 10 好

论坛徽章:
14
巨蟹座
日期:2013-11-19 14:09:4615-16赛季CBA联赛之青岛
日期:2016-07-05 12:36:0515-16赛季CBA联赛之广东
日期:2016-06-29 11:45:542015亚冠之全北现代
日期:2015-07-22 08:09:472015年辞旧岁徽章
日期:2015-03-03 16:54:15巨蟹座
日期:2014-12-29 08:22:29射手座
日期:2014-12-05 08:20:39狮子座
日期:2014-11-05 12:33:52寅虎
日期:2014-08-13 09:01:31巳蛇
日期:2014-06-16 16:29:52技术图书徽章
日期:2014-04-15 08:44:01天蝎座
日期:2014-03-11 13:06:45
5 [报告]
发表于 2012-08-16 10:21 |只看该作者
比如 1 2 3
原先 y = 3 * (1*1+2*2+3*3) / ((1+2+3)*(1+2+3)) = 1.17
如果去掉 3,则 y = 2 * (1*1+2*2) / ((1+2)*(1+2)) = 1.11
如果去掉 1,则 y = 2 * (2*2+3*3) / ((2+3)*(2+3)) = 1.04
可见去掉 1 的话,可以使得 y 最靠近数值1.0

论坛徽章:
4
天秤座
日期:2013-10-18 13:58:33金牛座
日期:2013-11-28 16:17:01辰龙
日期:2014-01-14 09:54:32戌狗
日期:2014-01-24 09:23:27
6 [报告]
发表于 2012-08-16 10:25 |只看该作者
定性分析一下,只是个人理解,不保证正确:

y = n * (x1^2 + x2^2 + x3^2 + …… + xn^2) / (x1+x2+x3+……+xn)^2

先做简单变形: 如果y需要趋于1,则可以认为:

(x1^2 + x2^2 + x3^2 + …… + xn^2) / (x1+x2+x3+……+xn)^2  -> 1/n

那么我们将上式展开:

(x1^2 + x2^2 + ... + xn^2) / (x1(x1+x2+...+xn) + x2(x1+..xn) +...+xn(x1+...xn))

上式分子分母都可以看做是axb的二次项,其中分子为n项,分母为n^2项。

现在看,如果我们希望整个展开式结论趋向1/n,那么最好的策略就是,让每个二次项的乘积结果趋于一致/平均。

(优先剔除偏离"平均数"较远的值,至于是哪一种平均数,估计得定量分析吧。)

那么,如果x1, x2, ... xn均为正数,那么应该剔除“远离”“平均数”的那个值。

负数貌似更加复杂,等着大拿定量分析吧。

论坛徽章:
0
7 [报告]
发表于 2012-08-16 10:49 |只看该作者
bruceteen 发表于 2012-08-16 10:21
比如 1 2 3
原先 y = 3 * (1*1+2*2+3*3) / ((1+2+3)*(1+2+3)) = 1.17
如果去掉 3,则 y = 2 * (1*1+2*2)  ...


呃...是我做运算的时候弄错了...手头木有笔,回去算下试试

论坛徽章:
0
8 [报告]
发表于 2012-08-16 13:00 |只看该作者
本帖最后由 hbmhalley 于 2012-08-16 15:42 编辑

设 x = sum(xi)/n , di = xi-x

y = n * sum(xi^2) / sum(xi)^2
  = n * ((x+d1)^2 + .. + (x+dn)^2) / (n*x)^2
  = n * (n*x^2 + 2*x*sum(di) + sum(di^2)) / (n*x)^2
  = n * (n*x^2 + sum(di^2)) / (n*x)^2
  = 1 + sum(di^2) / (n*x^2)

y[a] = 1 + (sum(di^2) - da^2) / ((n-1) * (x - da/(n-1))^2)
     = 1 + (-da^2 + sum(di^2)) / ((da - (n-1)*x)^2 / (n-1))


ps: da^2 <= sum(di^2) ; da < (n-1)x   

剩下的不细写了,把杂碎去掉,导一下得出 随 da 递增 y[a] 递减,所以离平均值越远越好。LSS猜对了
不对 .. 等等
没事,对了

论坛徽章:
14
巨蟹座
日期:2013-11-19 14:09:4615-16赛季CBA联赛之青岛
日期:2016-07-05 12:36:0515-16赛季CBA联赛之广东
日期:2016-06-29 11:45:542015亚冠之全北现代
日期:2015-07-22 08:09:472015年辞旧岁徽章
日期:2015-03-03 16:54:15巨蟹座
日期:2014-12-29 08:22:29射手座
日期:2014-12-05 08:20:39狮子座
日期:2014-11-05 12:33:52寅虎
日期:2014-08-13 09:01:31巳蛇
日期:2014-06-16 16:29:52技术图书徽章
日期:2014-04-15 08:44:01天蝎座
日期:2014-03-11 13:06:45
9 [报告]
发表于 2012-08-16 13:46 |只看该作者
回复 5# liuiang
回复 7# hbmhalley

三个数:1.12, 2.00, 3.00
平均值为 2.04
离平均值最远的数为 3.00

剔除3.00后,Y = 2 * (1.12*1.12+2.00*2.00) / ((1.12+2.00)*(1.12+2.00)) = 1.0795529257067718606180144641683
剔除1.12后,Y = 2 * (2.00*2.00+3.00*3.00) / ((2.00+3.00)*(2.00+3.00)) = 1.04
说明剔除1.12比剔除3.00好一些

可见,“离平均值越远越好”是不正确的

论坛徽章:
4
天秤座
日期:2013-10-18 13:58:33金牛座
日期:2013-11-28 16:17:01辰龙
日期:2014-01-14 09:54:32戌狗
日期:2014-01-24 09:23:27
10 [报告]
发表于 2012-08-16 14:15 |只看该作者
回复 8# bruceteen


    至于是哪一种平均数,估计得定量分析吧!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP