2012-01-10 82 views
2

我正在做心臟疾病預測系統的項目。我在這裏使用 「克利夫蘭心臟病數據集」,其中包含13個屬性遺傳算法的特徵選擇

  1. 性別
  2. 胸痛類型
  3. 空腹血糖
  4. Restecg - 休息電圖結果
  5. Exang - 運動誘發心絞痛
  6. 坡度 - 峯值運動ST段的斜率
  7. CA - 熒光染色的主要血管的數量
  8. 塔爾
  9. 特熱什季血壓
  10. 血清膽固醇
  11. Thalach - 最大的心臟速率來實現
  12. Oldpeak - 誘發相對運動休息
  13. 年齡

ST段壓低我發現了一個他們爲此應用遺傳算法並選擇以下屬性的論文

  1. 類型 - 胸痛類型
  2. Rbp裏 - 靜息血壓
  3. EIA - 運動誘發心絞痛
  4. Oldpk - 舊山頂
  5. VSL - 有色船號
  6. 塔爾 - 最大心臟率取得)

然而,他們沒有提到他們用來找到最適合的屬性(適應度函數)的標準。由於我是這個概念的新手,我不知道如何執行任務。誰能幫我?

+0

我會通過電子郵件發送作者,並詢問他們使用了什麼健身功能。有很多方法可以將GA中的健身功能組合起來,並且您使用的健身功能可能會影響您最終選擇的功能。 – 2012-01-10 06:33:54

+0

[此問題可能對您有用](http://stackoverflow.com/questions/7992862/genetic-algorithms-fitness-function-for-feature-selection-algorithm) – 2012-01-10 06:36:26

+0

@timothy非常感謝。希望這篇文章會有所幫助。 – darsha 2012-01-10 06:40:00

回答

1

定義人口及其表示

候選人(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 

希望它能幫助! :)

+0

非常感謝。這真的很有幫助 – darsha 2012-01-10 13:26:14

+0

太好了,我很高興! – helios 2012-01-10 13:53:02

+0

哎呀,還有,你可以使用0/1等布爾屬性。對於像胸部疼痛類型這樣的非標量值來說,也許你可以製作不同的布爾屬性,比如¿has-pain-1? ¿有疼痛-2?等等。 – helios 2012-01-10 13:58:55

0

既然你是研究人員,你應該真的能夠說出你想要達到的目標。 「健身」是一種解決方案與您試圖達到的匹配程度。例如 「健身」在這個原因可能是一個功能,最接近預測。

+0

非常感謝喲的回覆。這正是我想弄明白的。我不知道如何發展健身功能。如果你給我一個幫助我繼續進行的想法 – darsha 2012-01-10 09:06:47

+0

要依賴一個健身功能,你需要能夠描述你正在尋找什麼。只有你可以做到這一點。 – 2012-01-10 09:07:42

0

要了解其他作者使用的健身功能,您可以隨時向他們發送電子郵件。

結合GA中健身功能的方法有很多,您使用的健身功能會影響您最終選擇的功能。所以如果你想和另一組作者一樣獲得相同的功能組合,我只需要問他們。大多數科學家對他們工作感興趣的其他人非常有幫助。

根據我的經驗,有時你可能不會得到答覆 - 所以不要再爲自己的要求而煩惱。根據他們機構的規定,他們甚至可以使用代碼,但直到問你的時候纔會知道。

但是,如果您只是想通過某種方式來減少一組中的功能數量,那麼this question上的答案可能會有所幫助。