Python 利用遗传算法克服模型中数据集大小的差异

Python 利用遗传算法克服模型中数据集大小的差异,python,algorithm,python-2.7,scipy,genetic-algorithm,Python,Algorithm,Python 2.7,Scipy,Genetic Algorithm,因此,我意识到我在这里提出的问题是巨大而复杂的 尺寸变化的潜在解决方案 在我通过统计论坛和帖子进行的所有搜索中,我没有找到一种科学合理的方法来考虑我遇到的数据类型, 但我已经想出了一个(新颖的?)潜在的解决方案来完美地(在我看来)解释同一模型中的大小数据集 所提出的方法涉及使用遗传算法改变两个数字,定义构成隐含罢工率的数据集大小与罢工率之间的关系 使用的隐含罢工的百分比,模型的目标是最大化以下csv两列中编号1的同源性。(超简化 但希望能证明这一原则) 示例数据 因此,我创建了一个微型模型数据集

因此,我意识到我在这里提出的问题是巨大而复杂的

尺寸变化的潜在解决方案 在我通过统计论坛和帖子进行的所有搜索中,我没有找到一种科学合理的方法来考虑我遇到的数据类型, 但我已经想出了一个(新颖的?)潜在的解决方案来完美地(在我看来)解释同一模型中的大小数据集

所提出的方法涉及使用遗传算法改变两个数字,定义构成
隐含罢工率的数据集大小与罢工率之间的关系
使用的
隐含罢工的百分比
,模型的目标是最大化以下csv两列中编号
1
的同源性。(超简化 但希望能证明这一原则)

示例数据 因此,我创建了一个微型模型数据集,其中包含了一些很好的例子,说明了我目前的方法有哪些不足,以及我如何认为可以使用遗传算法来解决这个问题。如果我们查看上面的数据集,它包含6个独特的类,该算法的最终目标是在调整后的
x/y
秩与第3列(基于零的引用)中的
实现秩
之间创建尽可能高的对应关系。在
uniqueclass1
中,我们有两个相同的
x/y
值,现在,如果与平均值进行比较(注意,平均值不是从该数据集计算出来的),这些值相对较大
x/y
值,但通常认为3000/9610更重要,因此比300/961更可能达到
等级
1
。因此,我想做的是,使用由以下等式定义的对数增长关系,调整x/y,以克服数据集大小的差异:

调整后的xy=((1-exp(-y*α))*x/y))+((1-(1-exp(-y*α)))*平均xy)

其中,
α
是唯一的动态数字

如果我能稍微解释一下我的逻辑,让自己接受(希望如此)建设性的批评。下图显示了数据集大小与调整后x/y的x/y百分比之间的指数增长关系。从本质上讲,上面的方程所说的是,当数据集变大时,
调整后的x/y
中使用的原始
x/y
的百分比变大。剩下的百分比由xy的平均值组成。假设300/961和3000/9610的x/y值分别为75%和25%,调整后的x/y值清楚地表明

为了帮助理解
α的降低,将产生以下关系,其中通过更大的数据集,需要达到相同的xy贡献百分比

逆向增加
α
将产生以下关系,其中通过较小的数据集将需要达到相同的xy贡献百分比

所以我解释了我的逻辑。我也乐于接受代码片段来帮助我克服这个问题。我计划在未来制作大量的遗传/进化算法,并且可以真正使用一个工作示例来区分和使用这些算法,以帮助我理解如何利用python的这些能力。如果需要更多的细节或关于问题或方法的进一步澄清,请询问,我真的希望能够解决这个问题和未来的此类问题

因此,在对克服本文所述问题的可用方法进行了大量讨论之后,我得出结论,最好的方法是使用遗传算法迭代α,以最大化调整后的x/y秩与第3列中达到的秩之间的同源性/对应性。如果有人能在该部门提供帮助,我将不胜感激

所以澄清一下,这篇文章不再是关于方法论的讨论 我希望有人能帮我发明一种遗传算法,使方程结果之间的同源性最大化

调整后的xy=((1-exp(-y*α))*x/y))+((1-(1-exp(-y*α)))*平均xy)

其中
调整后的xy
适用于csv的每一行。最大化同源性可以通过最小化
调整后的xy
的秩(其中秩仅由每个
唯一类
确定)和
达到的秩之间的差异来实现。

最小化该值将使同源性最大化,并从根本上解决不同大小数据集的问题。如果需要更多的信息,请询问,我现在每天查看这个帖子大约20次,所以应该及时回复。非常感谢。

从总体上看,你面临的问题听起来像是一个问题。简言之,更精确的模型有利于方差(对单个训练集中变化的敏感性),更一般的模型有利于偏差(模型适用于许多训练集)

我建议不要把重点放在遗传算法上,而是看一看基于实例的学习和高级回归技术。CMU的Andrew moore页面是一个

尤其是

[编辑]

经过二读,我的第二个理解是:

  • 您有一组具有两个相关属性X和Y的示例数据
  • 当Y较小时,您不希望X/Y占主导地位(被认为不太具有代表性)
  • 因此,您需要使用调整的自适应值来“增强”示例
  • 您希望调整后的_xy与第三个属性R(秩)相关。相关的,例如,每个类,调整后的_xy按R排序

  • 为此,您建议将其作为一个优化问题,搜索给定函数F(X,Y,PARAMS)=调整后的_xy的参数

  • <
    Date,PupilName,Unique class,Achieved rank,x,y,x/y,Average xy
    12/12/2012,PupilName1,UniqueClass1,1,3000,9610,0.312174818,0.08527
    12/12/2012,PupilName2,UniqueClass1,2,300,961,0.312174818,0.08527
    12/12/2012,PupilName3,UniqueClass1,3,1,3,0.333333333,0.08527
    13/12/2012,PupilName1,UniqueClass2,1,2,3,0.666666667,0.08527
    13/12/2012,PupilName2,UniqueClass2,2,0,1,0,0.08527
    13/12/2012,PupilName3,UniqueClass2,3,0,5,0,0.08527
    13/12/2012,PupilName4,UniqueClass2,4,0,2,0,0.08527
    13/12/2012,PupilName5,UniqueClass2,5,0,17,0,0.08527
    14/12/2012,PupilName1,UniqueClass3,1,1,2,0.5,0.08527
    14/12/2012,PupilName2,UniqueClass3,2,0,1,0,0.08527
    14/12/2012,PupilName3,UniqueClass3,3,0,5,0,0.08527
    14/12/2012,PupilName4,UniqueClass3,4,0,6,0,0.08527
    14/12/2012,PupilName5,UniqueClass3,5,0,12,0,0.08527
    15/12/2012,PupilName1,UniqueClass4,1,0,0,0,0.08527
    15/12/2012,PupilName2,UniqueClass4,2,1,25,0.04,0.08527
    15/12/2012,PupilName3,UniqueClass4,3,1,29,0.034482759,0.08527
    15/12/2012,PupilName4,UniqueClass4,4,1,38,0.026315789,0.08527
    16/12/2012,PupilName1,UniqueClass5,1,12,24,0.5,0.08527
    16/12/2012,PupilName2,UniqueClass5,2,1,2,0.5,0.08527
    16/12/2012,PupilName3,UniqueClass5,3,13,59,0.220338983,0.08527
    16/12/2012,PupilName4,UniqueClass5,4,28,359,0.077994429,0.08527
    16/12/2012,PupilName5,UniqueClass5,5,0,0,0,0.08527
    17/12/2012,PupilName1,UniqueClass6,1,0,0,0,0.08527
    17/12/2012,PupilName2,UniqueClass6,2,2,200,0.01,0.08527
    17/12/2012,PupilName3,UniqueClass6,3,2,254,0.007874016,0.08527
    17/12/2012,PupilName4,UniqueClass6,4,2,278,0.007194245,0.08527
    17/12/2012,PupilName5,UniqueClass6,5,1,279,0.003584229,0.08527