比如我希望通过以下数据中的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
不看题直接甩链接不采纳。
比如我希望通过以下数据中的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
不看题直接甩链接不采纳。
不管你用什么算法(包括遗传算法),你要做的首先是有一个等式,比如
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的进化。
最后就求出了这些未知数,计算完成。