问题大概是这样的:有这样一群人,分别来自 A,B,C 地区,毕业于 M,N,O 等大学,综合评价分别是优、良、差,性别当然是男和女 -_- 1.如何考虑学校,地区,综合评价,性别把他们更分散的分成几组?比如不要同一学校扎堆,同一地区扎堆等 2.是否存在一种算法,可以让我再加入/减少其他参考项,比如年龄分为老中青 3.这种问题是否由典型例题,比如斐波那契数列就来自兔子 向大家请教
我也在知乎请教大家了 http://www.zhihu.com/question/23999896
先使用 k-means 把这群人分为若干个群,在每个群中随机分组。
觉得首先要准确定义“随机”这个概念。
如果“随机”的意思是说,每组内,有属性 A 的一样多,有属性 B 的一样多。
先按地区,分成三个数组 A1,A2,A3 对于 A1,按照 M,N,O 分组。
这样就能展成一个多叉树。叶子节点是数组,数组内的元素含有相同元素。
把所有叶子节点连在一起,变成一个数组 A_final
假设分为 n 组。
对 A_final 的 index,做摸运算就 ok 了。
似乎能行。。。我再想想。
#2 楼 @yfractal :plus1:
#1 楼 @Alexander #2 楼 @yfractal 感谢回复 1.k-means 我不是很懂,下来看看 2.我用词“随机”可能不是很准确,问题的初衷应该是希望讲人更分散的分成 n 组,我修改了问题本身 我下来试试你的方法,给你反馈
#2 楼 @yfractal 我花了一个图测了一下,在 9 个候选者中,分别有地区 A,B,C,男,女,优良差这三种维度,分成 2 组,3 组,4 组后,效果不错。 有两点反馈: 1.分成 3 组时因为数字 3 分别和地区、优良差这两种维度的个数冲突,导致打散效果不好。不过在真实场景中发生几率不大,可以暂时忽略 2.这种分发不具有随机性,也就是说分多少次结果都是一样的。 不过还是要感谢你。
#5 楼 @6233843 :) 我给出证明或者代码好了。。。不好意思。我实在是太懒了。。。
觉得这个算法可以补救下。。。但不确定是不是你想要的。。。 假设一共有 6 个人,分为两组。 前面是一样的。现在假设“树”已经生成完了,放在一个数组里。
觉得可以这样分组。 [1,2] [3,4],[5,6]
对于 [1,2],用随机方法,决定是把 1 放在第一组,还是第二组,以此类推。这样就有了随机性。
简单来说 k-means 就是定义了“距离”,距离近的就放在一组里面。k-means 需要组数作为参数。还可以定义权重。
我觉得这里的随机是希望越相似的人越不要在一个组。所以,直接用 k-means 算法的结果会跟这个随机的需求相反。
#6 楼 @yfractal "对于 [1,2],用随机方法,决定是把 1 放在第一组,还是第二组,以此类推。这样就有了随机性" 直接随机怕是不行,否则可能出现全在第一组而不再第二组 可以考虑生成一个组号 array,比如由 5 个人,分两组,那么就在 [1,1,1,2,2] 这个数组里面随机抽一个,然后分组,这样能保证人数是平均的。
机器学习交易——如何使用回归预测股票价格?最近翻译了一篇文章,本人对机器学习应用在量化投资上很感兴趣,希望可以和社区大神一起交流学习。