定义人口及其表示
候选人(GA的群)是属性的不同子集。每个子集都可以是一组与火炉病相关的一组属性。
所以我知道你有不同的度量值的属性和被测人员患有炉膛病的指标。
您可以使用每个属性的位轻松表示属性的子集。所以10000000000000将是只有第一个属性的子集。 11000 ...只有两个第一...等等。
找到适应度函数
如何说,如果候选人(属性的子集)是心脏疾病好坏的指标。如果它与疾病直接相关,我会说它是好的。因此,对于那些指标数目较高的患者,他们患有疾病,而对于所有数量较少的患者则没有该疾病。
TODO: find a correlation measure... :) (I'll edit the answer)
具有比必要条件更多的指标的子集是不好的。因此,如果来自子集的属性不相关,则必须得分更差。
TODO: find a way to introduce this.
两个方向
而且,我会考虑两个方向。举例来说,如果一个属性的数量很低,那么这个属性可能与炉底疾病有关。所以我会用26位。每个指标有两位。一个使用属性值,另一个使用负值。
找到健身措施
有了统计数据,你可以告诉我们,如果一个任意的属性集有利于发现心脏疾病或没有。
根据每个属性,每个患者将是第一个,第二个等等。例如血压。压力较小的将是第一个,压力较大的将是最后一个。因此,如果血压高度相关,那些高值的人将会患病,而低压者则不会。
因此,一组属性的好成绩是根据您拥有的数据可以做多少正确的诊断。如果你有属性A和B,他们的评分作为好的指标会随着高数量的病人和与之相关的炉床病人的数量而增加,并且会随着低数量和炉床病人(不相关或矛盾)的数量而减少。
对于一个唯一属性
我可以订购基于该属性的患者。然后我可以看到他们哪一个有疾病。如果那些数字较高的人(在排序的右边)有疾病,那么与其相关。否则不是。
如果我获得:
ND ND ND ND ND D D D D D D
ND = no disease
D = disease
这是非常非常相关。
所以对于我来说,得分将是ND/D值的排序顺序,在排序患者对这个属性的价值后。
对于一个属性集
当然,你必须给一组属性的得分的(比方说,名单的前三个属性)。因此,我首先应该由他们中的每一个订单的患者:
Ordered by -> Attr1, Attr2, Attr3
Patient1 1st 3rd 10th
Patient2 2nd 11th 2nd
Patient3 6th 1st 3rd
再总结的位置为每一个病人:
Ordered by -> Attr1, Attr2, Attr3
Patient1 1st 3rd 10th -> 1+3+10 = 14
Patient2 2nd 11th 2nd -> 2 + 11 + 2 = 15
Patient3 6th 1st 3rd -> 6+1+3 = 10
然后由付款令患者。
P3, P1, P2
那么,如果他们的疾病状态高度有序的(那些有疾病在右边),则得分高。
例如:
ND ND D -> only patient 2 has disease, highly correlated
D D ND -> patients 3 and 1 has disease, doesn't seem correlated (in fact, it seems contradictory)
所以用于定义评分方法的最后一部分是找到一种方法,说,如果位序列是有序与否:
ND ND ND ND D D D D D D -> high score
D ND D ND D ND D ND D ND -> low score
希望它能帮助! :)
我会通过电子邮件发送作者,并询问他们使用了什么健身功能。有很多方法可以将GA中的健身功能组合起来,并且您使用的健身功能可能会影响您最终选择的功能。 – 2012-01-10 06:33:54
[此问题可能对您有用](http://stackoverflow.com/questions/7992862/genetic-algorithms-fitness-function-for-feature-selection-algorithm) – 2012-01-10 06:36:26
@timothy非常感谢。希望这篇文章会有所帮助。 – darsha 2012-01-10 06:40:00