Теория графов в медицине |
Здравствуйте, гость ( Вход | Регистрация )
Теория графов в медицине |
15.10.2017 - 16:20
Сообщение
#1
|
|
Группа: Пользователи Сообщений: 12 Регистрация: 15.10.2017 Пользователь №: 30359 |
Приветствую всех, моя тема косвенно связано с медицинской. а именно в случае медстраховки.
Подскажите, а можно ли в R методом теории графов найти зависимости между 2-мя людьми, как в этом датасете, например найти связи между одинаковыми фамилиями?
Прикрепленные файлы
|
|
15.10.2017 - 17:22
Сообщение
#2
|
|
Группа: Пользователи Сообщений: 231 Регистрация: 27.04.2016 Пользователь №: 28223 |
Приветствую всех, моя тема косвенно связано с медицинской. а именно в случае медстраховки. Подскажите, а можно ли в R методом теории графов найти зависимости между 2-мя людьми, как в этом датасете, например найти связи между одинаковыми фамилиями? Что вы понимаете под "связи (во множественном числе!?) между одинаковыми фамилиями"??? Что вы понимаете под "зависимостями между людьми"? Отличается-ли "зависмости между людьми" и "связи между фамилиями"? Что за пары приведены в вашем датасете? При чем тут вообще теория графов? Сообщение отредактировал passant - 15.10.2017 - 17:23 |
|
15.10.2017 - 18:14
Сообщение
#3
|
|
Группа: Пользователи Сообщений: 12 Регистрация: 15.10.2017 Пользователь №: 30359 |
я просто стажер
мне дали задачу дословно формулировка звучит так Основная задача: проанализировать выборку мед. страх событий (например аварии с двумя участниками) на возможное мошенничество. Выделить тех клиентов, относительно которых существует подозрение на мошеннические действия; обосновать подозрение. я спросил , где доп. данные, сказали, решать методом графов. |
|
15.10.2017 - 18:43
Сообщение
#4
|
|
Группа: Пользователи Сообщений: 127 Регистрация: 15.12.2015 Пользователь №: 27760 |
я просто стажер мне дали задачу дословно формулировка звучит так Основная задача: проанализировать выборку мед. страх событий (например аварии с двумя участниками) на возможное мошенничество. Выделить тех клиентов, относительно которых существует подозрение на мошеннические действия; обосновать подозрение. я спросил , где доп. данные, сказали, решать методом графов. Это классическая задача под названием fraud detection. На неразмеченных данных не решается (точнее, теоретически решается, но непонятно как оценивать качество решения). |
|
15.10.2017 - 19:13
Сообщение
#5
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
Приветствую всех, моя тема косвенно связано с медицинской. а именно в случае медстраховки. Подскажите, а можно ли в R методом теории графов найти зависимости между 2-мя людьми, как в этом датасете, например найти связи между одинаковыми фамилиями? Слинковать не трудно даже базовыми средствами R. Код df.data <- read.csv2("data.csv", stringsAsFactors = F) merge(data.frame(fio=gsub("^([^ ]+).*", "\\1", df.data[,2]), stringsAsFactors = F) , data.frame(fio=gsub("^([^ ]+).*", "\\1", df.data[,3]), stringsAsFactors = F)) fio 1 Dorofeeva 2 Dorofeeva 3 Dorofeeva 4 Dorofeeva 5 Dorofeeva 6 Dorofeeva 7 Komin 8 Korobov 9 Kotova 10 Kotova 11 Kozlov 12 Mamontov 13 Mamontov 14 Pavlova 15 Pavlova 16 Rogachev 17 Soloviev 18 Vorobyov 19 Vorobyov Есть record linkage средства в списке пакетов. Готовых функций преобразования имен в отчества и т.п. нет. Визуализация делается library(igraph). Но обычно средства "интеллектуальной разведки" вокруг RDF баз всяких базируются. Старинный RelFinder на флеше написанный подключается к sparql точке (на какмлибо триплесторе поднятой) куда загружаются слинкованные таблицы (R умеет в SPARQL) и уже в нем ищут "цепочки фактов". |
|
16.10.2017 - 11:50
Сообщение
#6
|
|
Группа: Пользователи Сообщений: 12 Регистрация: 15.10.2017 Пользователь №: 30359 |
p2004r, добрый день. Скажите, а чем тогда обосновать выбор этих людей. Я не могу просто сдать и сказать вот они, ловите))
|
|
16.10.2017 - 19:57
Сообщение
#7
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
p2004r, добрый день. Скажите, а чем тогда обосновать выбор этих людей. Я не могу просто сдать и сказать вот они, ловите)) Тем что они (или их потенциальные родственники) есть и среди "пострадавших" и среди "виновников". Вы почитали что нибудь по ключевым словам которые я написал в ответе вам? |
|
16.10.2017 - 21:39
Сообщение
#8
|
|
Группа: Пользователи Сообщений: 12 Регистрация: 15.10.2017 Пользователь №: 30359 |
p2004r, не злитесь, пожалуйста, я просто хотел проверить верно ли я понял Ваш ход мысли. Видимо врно:)
Цитата Визуализация делается library(igraph). может помочь как мне график спрогать, я просто не знаю как организовать дуги и узлы как тут воспроизводимый пример library(igraph) g <- barabasi.game(100) plot( g, vertex.size=0, vertex.label=NA, edge.arrow.size=0 ) |
|
17.10.2017 - 00:19
Сообщение
#9
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
p2004r, не злитесь, пожалуйста, я просто хотел проверить верно ли я понял Ваш ход мысли. Видимо врно:) может помочь как мне график спрогать, я просто не знаю как организовать дуги и узлы как тут воспроизводимый пример library(igraph) g <- barabasi.game(100) plot( g, vertex.size=0, vertex.label=NA, edge.arrow.size=0 ) Экий вы нежный Ну раз igraph не по зубам рисуйте тогда в http://www.bioconductor.org/packages/relea...izInterface.pdf там всё прозрачно. |
|
17.10.2017 - 14:43
Сообщение
#10
|
|
Группа: Пользователи Сообщений: 12 Регистрация: 15.10.2017 Пользователь №: 30359 |
p2004r, а вы можете вот сказать, в этом массиве данных, когда делаю feature selection в statistica 12, все предикторы хорошо влияют на зависимую переменную. Все до одного
но когда строю модель лог регресии, точность 55%. Как же так ,если вроде все хорошо влияет\ Вот сами данные Что не так, почему один метод показывает такое сильное влияние, а второй имеет слабую точность
Прикрепленные файлы
|
|
17.10.2017 - 19:05
Сообщение
#11
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
p2004r, а вы можете вот сказать, в этом массиве данных, когда делаю feature selection в statistica 12, все предикторы хорошо влияют на зависимую переменную. Все до одного но когда строю модель лог регресии, точность 55%. Как же так ,если вроде все хорошо влияет\ Вот сами данные Что не так, почему один метод показывает такое сильное влияние, а второй имеет слабую точность А размер выборки в >60000 не смущает? Ну сделайте перестановку в каждой переменной и её "уровень p"TM посчитанный в ксиквадрате (а лучше такую перестановку сделать много раз и взять процентиль 5%) возьмите за пороговую величину. Но лучше конечно взять готовый метод, кластер и дождаться когда library(Boruta) посчитает что достоверно влияет и с какой величиной эффекта. Если лень, то включайте в модель (начиная сверху своего списка, оно вполне адекватен) предикторы и смотрите на n-fold кроссвалидацию. |
|
18.10.2017 - 19:34
Сообщение
#12
|
|
Группа: Пользователи Сообщений: 12 Регистрация: 15.10.2017 Пользователь №: 30359 |
Дано:
Сервер xeon cpu-e5-1650 3600Ghz 64 гигов оперативки library("Boruta") mydat=na.omit(mydat) bor=Boruta(POLICY_IS_REEWED~.,data=mydat) getSelectedAttributes(bor, withTentative = T) после двух часов работы этого кода, [1] "POLICY_BEGI_MOTH" [3] "POLICY_ED_MOTH" "POLICY_SALES_CHAEL" [5] "POLICY_SALES_CHAEL_GROUP" "POLICY_MI_AGE" [7] "POLICY_MI_DRIVIG_EXPERIECE" "VEHICLE_EGIE_POWER" [9] "VEHICLE_I_CREDIT" "VEHICLE_SUM_ISURED" [11] "POLICY_ITERMEDIARY" "ISURER_GEDER" [13] "POLICY_CLM_" "POLICY_CLM_GLT_" [15] "POLICY_PRV_CLM_" "POLICY_PRV_CLM_GLT_" [17] "CLIET_HAS_DAGO" "CLIET_HAS_OSAGO" [19] "POLICY_COURT_SIG" "CLAIM_AVG_ACC_ST_PRD" [21] "POLICY_HAS_COMPLAITS" "POLICY_YEARS_REEWED_" [23] "POLICY_DEDUCT_VALUE" "POLICY_PRICE_CHAGE" те же самые переменные и та же самая история с подгонкой myfit <- glm(POLICY_IS_RENEWED~.,data=mydat_tr, family=binomial(link ="logit")) второй аспект Код А размер выборки в >60000 не смущает? этот размер критичен для feature selection или лог.регрессия рассчитана на до 60 000 наблюдений? простите , что много вопросов, я стажируюсь, поэтому и возникают проблемы. |
|
18.10.2017 - 22:32
Сообщение
#13
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
А withTentative = T что бы точно всё включило? Ах, да "я не местный люди добрые ... "(С)
plot(bor, cex.axis=0.5) и смотреть в каком порядке включать в модель показатели Тут и не такие "стажеры" пробегали за время существования форума. Ну какая связь между страховкой и медицинской статистикой? Никакой и интереса читателям тоже 0. Более того будь это настоящая экзаменационная задача, то просить кого то её решить за тебя самого просто глупо (пытаться подсовывать эти задачи специалистам "ради лузлов", вообще уподобляться цыганке из анекдотов про гинеколога выносящего мусор после трудового дня). PS Если так хочется именно этот датасет разобрать, то надо идти "медленно и печально" разбирать _каждый_ показатель (мне это делать откровенно лень на каком то учебном датасете), и восстанавливать в какой шкале оно на самом деле было измерено. Потом перекодировать этот датасет. Потом в каком нибудь caret строить поиск в пространстве гиперпараметров (включающим и состав предикторов), и смотреть по кроссвалидации лучшую модель (или их ансамбль). Ну или ручками в керасе строить "мега модель всего" со всякими эмбедингами, и опять же крутить состав показателей уже в ней, тоже попутно смотря на получающуюся кроссвалидацию. Вот так вот "в лоб", датасет дает всего AUC в районе 0.66 |
|
19.10.2017 - 00:11
Сообщение
#14
|
|
Группа: Пользователи Сообщений: 12 Регистрация: 15.10.2017 Пользователь №: 30359 |
Не злитесь, это страховая статистика, но по мед.тематики
withTentative = T , что T,что F дает те же переменные. Я ж пробовал, когда курил мануал к боруте и в любом случае, ответ на этот вопрос был бы ценен Цитата А размер выборки в >60000 не смущает?
этот размер критичен для feature selection или лог.регрессия рассчитана на до 60 000 наблюдений? простите , что много вопросов, я стажируюсь, поэтому и возникают проблемы. |
|
19.10.2017 - 10:53
Сообщение
#15
|
|
Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 |
Не злитесь, это страховая статистика, но по мед.тематики withTentative = T , что T,что F дает те же переменные. Я ж пробовал, когда курил мануал к боруте и в любом случае, ответ на этот вопрос был бы ценен 1. Кто "злиться" то? Как "стажер стажеру"ТМ говорю -- тут нет никакой медицинской тематики, это автомобильная страховка. 2. Борута рисует график _величины_ достоверных эффектов. При выборке стремящейся к бесконечности будет достоверным отличие практически _любой_ малости. Решите какой размер эффекта будет включен в модель путем проверки кроссвалидацией метрики качества подогнанной модели. Но сначала разберитесь с показателями в датасете. Все ранговое и номинальное надо в онехот (думми) переводить, и тогда уже смотреть борутой что выкидывать, а что оставлять. И все равно финальная модель будет состав предикторов иметь подобранный по оптимуму кроссвалидации. |
|