定义总体及其代表
候选者(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
希望对您有所帮助! :)