Определение населения и его представление
кандидатов (населения ГА) являются различные подмножества атрибутов. Каждое подмножество может быть хорошим набором атрибутов, связанных с болезнью сердца или нет.
Итак, я понимаю, что у вас есть данные с различными мерами для атрибутов и индикатором измеряемого лица, имеющего болезнь сердца или нет.
Вы можете легко представить подмножество атрибутов, используя бит для каждого атрибута. Таким образом, 10000000000000 будет подмножеством только с первым атрибутом. 11000 ... только два первых ... и так далее.
Найти функцию фитнеса
Как сказать, если кандидат (подмножество атрибутов) является хорошим или плохим индикатором заболевания пода. Я бы сказал, что это хорошо, если он напрямую коррелирует с болезнью. Таким образом, для всех пациентов с высоким показателем по этим показателям у них есть заболевание, а у всех пациентов с низкими цифрами болезнь не имеет.
TODO: find a correlation measure... :) (I'll edit the answer)
Подмножество с большим количеством индикаторов, чем необходимо, является плохим. Таким образом, вы должны набирать хуже, если атрибут из подмножества НЕ коррелирован.
TODO: find a way to introduce this.
Два направления
Кроме того, у меня будет учитывать два направления. Например, атрибут может быть связан с болезнью сердца, если он имеет небольшое число. Поэтому я буду использовать 26 бит. Два бита для каждого индикатора. Один использует значение атрибута, а другой - отрицательный.
Поиск: фитнес-мера
С статистическими данными, которые вы могли бы сказать, если произвольный набор атрибутов хорош для обнаружения болезни пода или нет.
Каждый пациент будет первым, вторым и так далее в соответствии с каждым атрибутом. К примеру, артериальное давление. Первый с меньшим давлением будет первым, тот, у кого больше давления, будет последним.
Так что, если артериальное давление сильно связано, те с высокими значениями будут иметь заболевание, в то время как у пациентов с низким давлением не будет.
Таким образом, хорошим набором для набора атрибутов является то, сколько правильных диагнозов вы могли бы сделать, основываясь на данных, которые у вас есть. Если у вас есть атрибуты А и В, их оценка в качестве хороших показателей будет увеличиваться с увеличением числа пациентов с высоким числом и заболеванием очага (связанным) и будет уменьшаться с числом пациентов с низким числом и сердечным заболеванием (не связанным или противоречивым).
Для единственного атрибута
можно заказать пациентов на основе этого атрибута. Тогда я могу видеть, у кого из них болезнь. Если у пациентов с более высоким числом (справа от заказа) есть заболевание, то это связано с ним. В противном случае нет.
Если я получаю:
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, а используемая функция фитнеса может повлиять на функции, которые вы в конечном итоге выбираете. –
[Этот вопрос может быть полезен для вас] (http://stackoverflow.com/questions/7992862/genetic-algorithms-fitness-function-for-feature-selection-algorithm) –
@timothy Большое спасибо. Надеюсь, что сообщение будет полезно. – darsha