定義人口及其表示
候選人(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