利用遗传算法克服模型中不同大小的数据集

 鱼儿什么都知道丶 发布于 2023-02-13 15:02

所以我意识到我在这里提出的问题是庞大而复杂的.

对尺寸变化的潜在解决方案

在我通过统计论坛和帖子搜索的所有内容中,我没有遇到一种科学合理的方法来考虑我遇到的数据类型,但我已经想到一个(新颖的?)潜在的解决方案来完美地解决(在我的想法)对于同一模型中的大型和小型数据集.

所提出的方法涉及使用遗传算法来改变定义构成implied strike速率的数据集的大小implied strike与要使用的百分比之间的关系的两个数字,其中模型的目标最大化1两列中的数字的同源性.以下csv.(超简化但希望证明原理)

示例数据

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

所以我创建了一个很小的模型数据集,其中包含一些很好的例子,说明我当前的方法不足之处,以及我觉得遗传算法可以用来解决这个问题.如果我们查看上面的数据集,它包含6个唯一的类,该算法的最终目标是在调整的排名x/y和第achieved rank3列(基于零的参考)之间创建尽可能高的对应关系.在uniqueclass1我们有两个相同的x/y值,现在这些都是比较大的x/y,如果你用的平均水平进行比较(注意是平均不从这个数据集计算)值,而这将是预期,九千六百十分之三千更显著,因此更有可能有一个常识achieved rank1比961分之300.所以我想做的是adjusted x/y使用等式定义的对数增长关系克服数据集大小的这些差异:

adjusted xy = ((1-exp(-y*?)) * x/y)) + ((1-(1-exp(-y*?)))*Average xy)

?唯一的动态数字在哪里

如果我可以稍微解释一下我的逻辑,并打开自己(希望)建设性的批评.下图显示了数据集大小与调整后的x/y的x/y%之间的指数增长关系.基本上上面的等式所说的是随着数据集变得越大,原始x/y使用的百分比adjusted x/y越大.剩下的百分比由平均xy组成.可假设为300/961 为75%x/y和25%average xy,3000/9610为95%/ 5%,创造了调整后的x/y,这清楚地表明了

数据集大小与调整后的x/y的x/y%之间的指数增长关系

为了帮助理解降低?将产生以下关系,其中需要更大的数据集以实现相同的"%xy贡献"

在此输入图像描述

相反增加 ?将产生以下关系:通过较小的数据集将需要获得相同的"xy贡献的百分比"

在此输入图像描述

所以我解释了我的逻辑.我也对代码片段持开放态度,以帮助我克服这个问题.我计划在未来制作大量的遗传/进化算法,并且可以真正使用一个工作示例来分开和玩耍,以帮助我理解如何利用这种python的能力.如果需要额外的细节或进一步澄清问题或方法,请问,我真的希望能够解决这个问题和未来这种性质的问题.

因此,在对可用于克服此处提出的问题的方法进行大量讨论之后,我得出结论,他最好的方法是迭代α的遗传算法,以便最大化调整的x/y的等级之间的同源性/对应性.第3栏中取得的排名.如果有人能够在该部门提供帮助,我们将非常感激.

所以要澄清一下,这篇文章不再是关于方法论的讨论

我希望有人可以帮助我制作遗传算法,以最大化方程结果之间的同源性

adjusted xy = ((1-exp(-y*?)) * x/y)) + ((1-(1-exp(-y*?)))*Average xy)

adjusted xy适用于CSV的每一行.最大化同源性可以通过最小化等级之间的差异adjusted xy(其中等级仅由每个等级Unique class)Achieved rank. 来实现,并且最小化该值将最大化同源性并且基本上解决了呈现给我的不同大小数据集的问题.如果需要更多信息请询问,我现在每天检查这篇文章大约20次,所以应该及时回复.非常感谢SMNALLY.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有