Форум врачей-аспирантов

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Добавить ответ в эту темуОткрыть тему
> Теория графов в медицине
med-ick
сообщение 15.10.2017 - 16:20
Сообщение #1





Группа: Пользователи
Сообщений: 12
Регистрация: 15.10.2017
Пользователь №: 30359



Приветствую всех, моя тема косвенно связано с медицинской. а именно в случае медстраховки.
Подскажите, а можно ли в R методом теории графов найти зависимости между 2-мя людьми, как в этом датасете, например найти связи между одинаковыми фамилиями?
Прикрепленные файлы
Прикрепленный файл  dataset.zip ( 21,42 килобайт ) Кол-во скачиваний: 223
 
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
passant
сообщение 15.10.2017 - 17:22
Сообщение #2





Группа: Пользователи
Сообщений: 231
Регистрация: 27.04.2016
Пользователь №: 28223



Цитата(med-ick @ 15.10.2017 - 16:20) *
Приветствую всех, моя тема косвенно связано с медицинской. а именно в случае медстраховки.
Подскажите, а можно ли в R методом теории графов найти зависимости между 2-мя людьми, как в этом датасете, например найти связи между одинаковыми фамилиями?

Что вы понимаете под "связи (во множественном числе!?) между одинаковыми фамилиями"???
Что вы понимаете под "зависимостями между людьми"?
Отличается-ли "зависмости между людьми" и "связи между фамилиями"?
Что за пары приведены в вашем датасете?
При чем тут вообще теория графов?

Сообщение отредактировал passant - 15.10.2017 - 17:23
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
med-ick
сообщение 15.10.2017 - 18:14
Сообщение #3





Группа: Пользователи
Сообщений: 12
Регистрация: 15.10.2017
Пользователь №: 30359



я просто стажер
мне дали задачу
дословно формулировка звучит так
Основная задача: проанализировать выборку мед. страх событий (например аварии с двумя участниками) на возможное мошенничество. Выделить тех клиентов, относительно которых существует подозрение на мошеннические действия; обосновать подозрение.
я спросил , где доп. данные, сказали, решать методом графов.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
ogurtsov
сообщение 15.10.2017 - 18:43
Сообщение #4





Группа: Пользователи
Сообщений: 127
Регистрация: 15.12.2015
Пользователь №: 27760



Цитата(med-ick @ 15.10.2017 - 18:14) *
я просто стажер
мне дали задачу
дословно формулировка звучит так
Основная задача: проанализировать выборку мед. страх событий (например аварии с двумя участниками) на возможное мошенничество. Выделить тех клиентов, относительно которых существует подозрение на мошеннические действия; обосновать подозрение.
я спросил , где доп. данные, сказали, решать методом графов.

Это классическая задача под названием fraud detection. На неразмеченных данных не решается (точнее, теоретически решается, но непонятно как оценивать качество решения).


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 15.10.2017 - 19:13
Сообщение #5





Группа: Пользователи
Сообщений: 1091
Регистрация: 26.08.2010
Пользователь №: 22699



Цитата(med-ick @ 15.10.2017 - 16:20) *
Приветствую всех, моя тема косвенно связано с медицинской. а именно в случае медстраховки.
Подскажите, а можно ли в 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) и уже в нем ищут "цепочки фактов".


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
med-ick
сообщение 16.10.2017 - 11:50
Сообщение #6





Группа: Пользователи
Сообщений: 12
Регистрация: 15.10.2017
Пользователь №: 30359



p2004r, добрый день. Скажите, а чем тогда обосновать выбор этих людей. Я не могу просто сдать и сказать вот они, ловите))
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 16.10.2017 - 19:57
Сообщение #7





Группа: Пользователи
Сообщений: 1091
Регистрация: 26.08.2010
Пользователь №: 22699



Цитата(med-ick @ 16.10.2017 - 11:50) *
p2004r, добрый день. Скажите, а чем тогда обосновать выбор этих людей. Я не могу просто сдать и сказать вот они, ловите))


Тем что они (или их потенциальные родственники) есть и среди "пострадавших" и среди "виновников".

Вы почитали что нибудь по ключевым словам которые я написал в ответе вам?


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
med-ick
сообщение 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 )
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 17.10.2017 - 00:19
Сообщение #9





Группа: Пользователи
Сообщений: 1091
Регистрация: 26.08.2010
Пользователь №: 22699



Цитата(med-ick @ 16.10.2017 - 21:39) *
p2004r, не злитесь, пожалуйста, я просто хотел проверить верно ли я понял Ваш ход мысли. Видимо врно:)

может помочь как мне график спрогать, я просто не знаю как организовать дуги и узлы
как тут
воспроизводимый пример
library(igraph)
g <- barabasi.game(100)
plot( g, vertex.size=0, vertex.label=NA, edge.arrow.size=0 )


Экий вы нежный smile.gif

Ну раз igraph не по зубам рисуйте тогда в http://www.bioconductor.org/packages/relea...izInterface.pdf там всё прозрачно.


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
med-ick
сообщение 17.10.2017 - 14:43
Сообщение #10





Группа: Пользователи
Сообщений: 12
Регистрация: 15.10.2017
Пользователь №: 30359



p2004r, а вы можете вот сказать, в этом массиве данных, когда делаю feature selection в statistica 12, все предикторы хорошо влияют на зависимую переменную. Все до одного
но когда строю модель лог регресии, точность 55%.
Как же так ,если вроде все хорошо влияет\
Вот сами данные
Что не так, почему один метод показывает такое сильное влияние, а второй имеет слабую точность
Эскизы прикрепленных изображений
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  ук.zip ( 1,41 мегабайт ) Кол-во скачиваний: 207
 
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 17.10.2017 - 19:05
Сообщение #11





Группа: Пользователи
Сообщений: 1091
Регистрация: 26.08.2010
Пользователь №: 22699



Цитата(med-ick @ 17.10.2017 - 14:43) *
p2004r, а вы можете вот сказать, в этом массиве данных, когда делаю feature selection в statistica 12, все предикторы хорошо влияют на зависимую переменную. Все до одного
но когда строю модель лог регресии, точность 55%.
Как же так ,если вроде все хорошо влияет\
Вот сами данные
Что не так, почему один метод показывает такое сильное влияние, а второй имеет слабую точность



А размер выборки в >60000 не смущает? smile.gif

Ну сделайте перестановку в каждой переменной и её "уровень p"TM посчитанный в ксиквадрате (а лучше такую перестановку сделать много раз и взять процентиль 5%) возьмите за пороговую величину.

Но лучше конечно взять готовый метод, кластер и дождаться когда library(Boruta) посчитает что достоверно влияет и с какой величиной эффекта.

Если лень, то включайте в модель (начиная сверху своего списка, оно вполне адекватен) предикторы и смотрите на n-fold кроссвалидацию.


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
med-ick
сообщение 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 наблюдений?

простите , что много вопросов, я стажируюсь, поэтому и возникают проблемы.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 18.10.2017 - 22:32
Сообщение #13





Группа: Пользователи
Сообщений: 1091
Регистрация: 26.08.2010
Пользователь №: 22699



А withTentative = T что бы точно всё включило? Ах, да "я не местный люди добрые ... "(С) smile.gif

plot(bor, cex.axis=0.5) и смотреть в каком порядке включать в модель показатели

Тут и не такие "стажеры" пробегали за время существования форума. Ну какая связь между страховкой и медицинской статистикой? Никакой и интереса читателям тоже 0. Более того будь это настоящая экзаменационная задача, то просить кого то её решить за тебя самого просто глупо (пытаться подсовывать эти задачи специалистам "ради лузлов", вообще уподобляться цыганке из анекдотов про гинеколога выносящего мусор после трудового дня).

PS

Если так хочется именно этот датасет разобрать, то надо идти "медленно и печально" разбирать _каждый_ показатель (мне это делать откровенно лень на каком то учебном датасете), и восстанавливать в какой шкале оно на самом деле было измерено. Потом перекодировать этот датасет. Потом в каком нибудь caret строить поиск в пространстве гиперпараметров (включающим и состав предикторов), и смотреть по кроссвалидации лучшую модель (или их ансамбль). Ну или ручками в керасе строить "мега модель всего" со всякими эмбедингами, и опять же крутить состав показателей уже в ней, тоже попутно смотря на получающуюся кроссвалидацию.

Вот так вот "в лоб", датасет дает всего AUC в районе 0.66


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
med-ick
сообщение 19.10.2017 - 00:11
Сообщение #14





Группа: Пользователи
Сообщений: 12
Регистрация: 15.10.2017
Пользователь №: 30359



Не злитесь, это страховая статистика, но по мед.тематики
withTentative = T , что T,что F
дает те же переменные. Я ж пробовал, когда курил мануал к боруте

и в любом случае, ответ на этот вопрос был бы ценен
Цитата
А размер выборки в >60000 не смущает?

этот размер критичен для feature selection или лог.регрессия рассчитана на до 60 000 наблюдений?

простите , что много вопросов, я стажируюсь, поэтому и возникают проблемы.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 
p2004r
сообщение 19.10.2017 - 10:53
Сообщение #15





Группа: Пользователи
Сообщений: 1091
Регистрация: 26.08.2010
Пользователь №: 22699



Цитата(med-ick @ 19.10.2017 - 00:11) *
Не злитесь, это страховая статистика, но по мед.тематики
withTentative = T , что T,что F
дает те же переменные. Я ж пробовал, когда курил мануал к боруте

и в любом случае, ответ на этот вопрос был бы ценен


1. Кто "злиться" то? smile.gif Как "стажер стажеру"ТМ говорю -- тут нет никакой медицинской тематики, это автомобильная страховка.

2. Борута рисует график _величины_ достоверных эффектов. При выборке стремящейся к бесконечности будет достоверным отличие практически _любой_ малости. Решите какой размер эффекта будет включен в модель путем проверки кроссвалидацией метрики качества подогнанной модели.

Но сначала разберитесь с показателями в датасете.

Все ранговое и номинальное надо в онехот (думми) переводить, и тогда уже смотреть борутой что выкидывать, а что оставлять.

И все равно финальная модель будет состав предикторов иметь подобранный по оптимуму кроссвалидации.
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 


Signature
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
 

2 страниц V   1 2 >
Добавить ответ в эту темуОткрыть тему