算法 请教,多参考项的随机分组?

6233843 · 2014年06月03日 · 最后由 love93hate 回复于 2018年08月27日 · 2600 次阅读

问题大概是这样的:有这样一群人,分别来自A,B,C地区,毕业于M,N,O等大学,综合评价分别是优、良、差,性别当然是男和女 -_- 1.如何考虑学校,地区,综合评价,性别把他们更分散的分成几组?比如不要同一学校扎堆,同一地区扎堆等 2.是否存在一种算法,可以让我再加入/减少其他参考项,比如年龄分为老中青 3.这种问题是否由典型例题,比如斐波那契数列就来自兔子 向大家请教

我也在知乎请教大家了 http://www.zhihu.com/question/23999896

共收到 9 条回复

先使用 k-means 把这群人分为若干个群,在每个群中随机分组。

觉得首先要准确定义“随机”这个概念。

如果“随机”的意思是说,每组内,有属性A的一样多,有属性B的一样多。

先按地区,分成三个数组A1,A2,A3 对于A1,按照M,N,O分组。

这样就能展成一个多叉树。叶子节点是数组,数组内的元素含有相同元素。

把所有叶子节点连在一起,变成一个数组A_final

假设分为n组。

对A_final的index,做摸运算就ok了。

似乎能行。。。我再想想。

#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]这个数组里面随机抽一个,然后分组,这样能保证人数是平均的。

机器学习交易——如何使用回归预测股票价格?最近翻译了一篇文章,本人对机器学习应用在量化投资上很感兴趣,希望可以和社区大神一起交流学习。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册