weixin_39017744 2019-12-02 22:12 采纳率: 83.3%
浏览 133
已采纳

如何通俗易懂地解释遗传程序?最好能用代码加注释说明解释。

比如我希望通过以下数据中的abcsdfg的值得到h值。请结合代码说明,最好是用python。

a b c d e f g h
10 69 1 9 0.9 478.89 431 28.8
28 41 16 11 0.85 490.59 417 7.5
7 12 13 8 0.95 220 209 4.1

不看题直接甩链接不采纳。

  • 写回答

1条回答 默认 最新

  • threenewbee 2019-12-03 16:17
    关注

    不管你用什么算法(包括遗传算法),你要做的首先是有一个等式,比如
    aw1+bw2+cw3+...=h
    这里的abc...就是你的a-g,h就是你的h
    而w1 w2 w3都是权重,也就是说你要优化的未知量
    然后你的算法的目的就是,把所有的样本(也就是你下面的3行)全部放入上面的公式,找到一组w1 w2 w3...,让它算出来的h,和你实际的h,误差最小。
    这样就算完成了。
    于是你再有数据,你就可以套入公式,算出h,并且h会很接近实际的值。
    当然,aw1+bw2+cw3+...=h,这个公式并不好,你一看就知道,它们都是一些经过坐标圆点的直线,为了增加拟和度,你可以加入非线性函数,以及偏置
    比如sigmoid(aw1+b1)+sigmoid(bw2+b2)+sigmoid(cw3+b3)+...=h
    这个就不展开了。

    具体来说遗传算法,它的作用在于我说的优化求这些参数的近似值这个步骤上。也就是光有公式还不行,因为w1 w2 w3...以至于下面那个表达式的b1 b2 b3... 这些未知数的取值是多少,才能让误差小,我们并不知道。
    遗传算法就是一种可以比较有效地寻找这些近似值的办法。
    你可以把这些未知数变成序列 w1 w2 w3 ... b1 b2 b3 ...,这就是dna
    然后你根据这些未知数,去计算一套h,和真实的h比较,计算误差。
    你的方法就是不断对序列杂交、变化,丢弃误差大的序列,保留误差小的,这就是dna的进化。
    最后就求出了这些未知数,计算完成。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。