![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#1
|
|
Группа: Пользователи Сообщений: 12 Регистрация: 15.10.2017 Пользователь №: 30359 ![]() |
Приветствую всех, моя тема косвенно связано с медицинской. а именно в случае медстраховки.
Подскажите, а можно ли в R методом теории графов найти зависимости между 2-мя людьми, как в этом датасете, например найти связи между одинаковыми фамилиями?
Прикрепленные файлы
|
|
![]() |
![]() |
![]()
Сообщение
#2
|
|
Группа: Пользователи Сообщений: 231 Регистрация: 27.04.2016 Пользователь №: 28223 ![]() |
Приветствую всех, моя тема косвенно связано с медицинской. а именно в случае медстраховки. Подскажите, а можно ли в R методом теории графов найти зависимости между 2-мя людьми, как в этом датасете, например найти связи между одинаковыми фамилиями? Что вы понимаете под "связи (во множественном числе!?) между одинаковыми фамилиями"??? Что вы понимаете под "зависимостями между людьми"? Отличается-ли "зависмости между людьми" и "связи между фамилиями"? Что за пары приведены в вашем датасете? При чем тут вообще теория графов? Сообщение отредактировал passant - 15.10.2017 - 17:23 |
|
![]() |
![]() |
![]()
Сообщение
#3
|
|
Группа: Пользователи Сообщений: 12 Регистрация: 15.10.2017 Пользователь №: 30359 ![]() |
я просто стажер
мне дали задачу дословно формулировка звучит так Основная задача: проанализировать выборку мед. страх событий (например аварии с двумя участниками) на возможное мошенничество. Выделить тех клиентов, относительно которых существует подозрение на мошеннические действия; обосновать подозрение. я спросил , где доп. данные, сказали, решать методом графов. |
|
![]() |
![]() |
![]()
Сообщение
#4
|
|
Группа: Пользователи Сообщений: 127 Регистрация: 15.12.2015 Пользователь №: 27760 ![]() |
я просто стажер мне дали задачу дословно формулировка звучит так Основная задача: проанализировать выборку мед. страх событий (например аварии с двумя участниками) на возможное мошенничество. Выделить тех клиентов, относительно которых существует подозрение на мошеннические действия; обосновать подозрение. я спросил , где доп. данные, сказали, решать методом графов. Это классическая задача под названием fraud detection. На неразмеченных данных не решается (точнее, теоретически решается, но непонятно как оценивать качество решения). ![]() |
|
![]() |
![]() |
![]()
Сообщение
#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) и уже в нем ищут "цепочки фактов". ![]() |
|
![]() |
![]() |
![]()
Сообщение
#6
|
|
Группа: Пользователи Сообщений: 12 Регистрация: 15.10.2017 Пользователь №: 30359 ![]() |
p2004r, добрый день. Скажите, а чем тогда обосновать выбор этих людей. Я не могу просто сдать и сказать вот они, ловите))
|
|
![]() |
![]() |
![]()
Сообщение
#7
|
|
![]() Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 ![]() |
p2004r, добрый день. Скажите, а чем тогда обосновать выбор этих людей. Я не могу просто сдать и сказать вот они, ловите)) Тем что они (или их потенциальные родственники) есть и среди "пострадавших" и среди "виновников". Вы почитали что нибудь по ключевым словам которые я написал в ответе вам? ![]() |
|
![]() |
![]() |
![]()
Сообщение
#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 ) |
|
![]() |
![]() |
![]()
Сообщение
#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 там всё прозрачно. ![]() |
|
![]() |
![]() |
![]() ![]()
Сообщение
#10
|
|
Группа: Пользователи Сообщений: 12 Регистрация: 15.10.2017 Пользователь №: 30359 ![]() |
p2004r, а вы можете вот сказать, в этом массиве данных, когда делаю feature selection в statistica 12, все предикторы хорошо влияют на зависимую переменную. Все до одного
но когда строю модель лог регресии, точность 55%. Как же так ,если вроде все хорошо влияет\ Вот сами данные Что не так, почему один метод показывает такое сильное влияние, а второй имеет слабую точность
Прикрепленные файлы
|
|
![]() |
![]() |
![]()
Сообщение
#11
|
|
![]() Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 ![]() |
p2004r, а вы можете вот сказать, в этом массиве данных, когда делаю feature selection в statistica 12, все предикторы хорошо влияют на зависимую переменную. Все до одного но когда строю модель лог регресии, точность 55%. Как же так ,если вроде все хорошо влияет\ Вот сами данные Что не так, почему один метод показывает такое сильное влияние, а второй имеет слабую точность А размер выборки в >60000 не смущает? ![]() Ну сделайте перестановку в каждой переменной и её "уровень p"TM посчитанный в ксиквадрате (а лучше такую перестановку сделать много раз и взять процентиль 5%) возьмите за пороговую величину. Но лучше конечно взять готовый метод, кластер и дождаться когда library(Boruta) посчитает что достоверно влияет и с какой величиной эффекта. Если лень, то включайте в модель (начиная сверху своего списка, оно вполне адекватен) предикторы и смотрите на n-fold кроссвалидацию. ![]() |
|
![]() |
![]() |
![]()
Сообщение
#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 наблюдений? простите , что много вопросов, я стажируюсь, поэтому и возникают проблемы. |
|
![]() |
![]() |
![]()
Сообщение
#13
|
|
![]() Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 ![]() |
А withTentative = T что бы точно всё включило? Ах, да "я не местный люди добрые ... "(С)
![]() plot(bor, cex.axis=0.5) и смотреть в каком порядке включать в модель показатели Тут и не такие "стажеры" пробегали за время существования форума. Ну какая связь между страховкой и медицинской статистикой? Никакой и интереса читателям тоже 0. Более того будь это настоящая экзаменационная задача, то просить кого то её решить за тебя самого просто глупо (пытаться подсовывать эти задачи специалистам "ради лузлов", вообще уподобляться цыганке из анекдотов про гинеколога выносящего мусор после трудового дня). PS Если так хочется именно этот датасет разобрать, то надо идти "медленно и печально" разбирать _каждый_ показатель (мне это делать откровенно лень на каком то учебном датасете), и восстанавливать в какой шкале оно на самом деле было измерено. Потом перекодировать этот датасет. Потом в каком нибудь caret строить поиск в пространстве гиперпараметров (включающим и состав предикторов), и смотреть по кроссвалидации лучшую модель (или их ансамбль). Ну или ручками в керасе строить "мега модель всего" со всякими эмбедингами, и опять же крутить состав показателей уже в ней, тоже попутно смотря на получающуюся кроссвалидацию. Вот так вот "в лоб", датасет дает всего AUC в районе 0.66 ![]() |
|
![]() |
![]() |
![]()
Сообщение
#14
|
|
Группа: Пользователи Сообщений: 12 Регистрация: 15.10.2017 Пользователь №: 30359 ![]() |
Не злитесь, это страховая статистика, но по мед.тематики
withTentative = T , что T,что F дает те же переменные. Я ж пробовал, когда курил мануал к боруте и в любом случае, ответ на этот вопрос был бы ценен Цитата А размер выборки в >60000 не смущает?
этот размер критичен для feature selection или лог.регрессия рассчитана на до 60 000 наблюдений? простите , что много вопросов, я стажируюсь, поэтому и возникают проблемы. |
|
![]() |
![]() |
![]()
Сообщение
#15
|
|
![]() Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 ![]() |
Не злитесь, это страховая статистика, но по мед.тематики withTentative = T , что T,что F дает те же переменные. Я ж пробовал, когда курил мануал к боруте и в любом случае, ответ на этот вопрос был бы ценен 1. Кто "злиться" то? ![]() 2. Борута рисует график _величины_ достоверных эффектов. При выборке стремящейся к бесконечности будет достоверным отличие практически _любой_ малости. Решите какой размер эффекта будет включен в модель путем проверки кроссвалидацией метрики качества подогнанной модели. Но сначала разберитесь с показателями в датасете. Все ранговое и номинальное надо в онехот (думми) переводить, и тогда уже смотреть борутой что выкидывать, а что оставлять. И все равно финальная модель будет состав предикторов иметь подобранный по оптимуму кроссвалидации. ![]() |
|
![]() |
![]() |
![]()
Сообщение
#16
|
|
Группа: Пользователи Сообщений: 12 Регистрация: 15.10.2017 Пользователь №: 30359 ![]() |
Цитата Все ранговое и номинальное надо в онехот (думми) переводить, и тогда уже смотреть борутой что выкидывать, а что оставлять. т.е. есть переменная 1- очень плохой водитель 2.плохой 3.хороший 4. очень хороший мне из одного столбца нужно сделать 4 столбца? очень плохой водитель 1-да, 0 -нет https://ru.wikipedia.org/wiki/%D0%A4%D0%B8%...%BD%D0%B0%D1%8F в statistica 12 можно сделать эти думми переменные? POLICY_SALES_CHAEL_GROUP это номинативная переменная, кодирован канал выдачи мед. полиса Сообщение отредактировал med-ick - 19.10.2017 - 12:11 |
|
![]() |
![]() |
![]()
Сообщение
#17
|
|
![]() Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 ![]() |
т.е. есть переменная 1- очень плохой водитель 2.плохой 3.хороший 4. очень хороший мне из одного столбца нужно сделать 4 столбца? очень плохой водитель 1-да, 0 -нет https://ru.wikipedia.org/wiki/%D0%A4%D0%B8%...%BD%D0%B0%D1%8F в statistica 12 можно сделать эти думми переменные? POLICY_SALES_CHAEL_GROUP это номинативная переменная, кодирован канал выдачи мед. полиса Да именно так, это называется one hot кодирование или https://en.wikipedia.org/wiki/Dummy_variable_(statistics) Все переменные которые на pairs() выглядят как "решетка-сетка" преобразуются в такой набор. (И более того там есть например первые две в списке, коды которых явно можно вообще склеить вместе (их суммарно уровней меньше получиться чем по отдельности) если будет последующий эмбеддинг делаться). На результат можно напускать методы отбора значимых переменных. ![]() |
|
![]() |
![]() |
![]()
Сообщение
#18
|
|
Группа: Пользователи Сообщений: 12 Регистрация: 15.10.2017 Пользователь №: 30359 ![]() |
Я не хочу в ручную, как в statistica это сделать?))
|
|
![]() |
![]() |
![]()
Сообщение
#19
|
|
![]() Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 ![]() |
Я не хочу в ручную, как в statistica это сделать?)) Написать в техподдержку статистики? ![]() ![]() |
|
![]() |
![]() |
![]()
Сообщение
#20
|
|
Группа: Пользователи Сообщений: 12 Регистрация: 15.10.2017 Пользователь №: 30359 ![]() |
вряд ли)) У меня чуть-чуть не лицензионная, так бы написал, а по-другому разбить никак, там в экселе каком-нибудь.
Есть другие способы? |
|
![]() |
![]() |
![]()
Сообщение
#21
|
|
![]() Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 ![]() |
вряд ли)) У меня чуть-чуть не лицензионная, так бы написал, а по-другому разбить никак, там в экселе каком-нибудь. Есть другие способы? А чем R не подходит? sparse.model.matrix() на формулу и данные размеченные в факторы и в xgb.cv() через xgb.DMatrix() с целевой переменной, лучшую по мета параметрам модель обучить обычным xgboost() и оттуда xgb.importance() достать собственно значимости переменных, с топовыми повторить цикл. Ну или ещё куча способов думми сгенерить из факторов есть. Код Жили-были в одном городишке два ассенизатора ? отец и сын.
Канализации у них там не было, а просто ямы с этим самым. И они это самое вычерпывали ведром и заливали в свою бочку, причем отец, как более опытный специалист, спускался в яму, а сын сверху подавал ему ведро. И вот однажды сын это ведро не удержал и обрушил обратно на батю. Ну, батя утерся, посмотрел на него снизу вверх и сказал ему с горечью: ?Чучело ты, ? говорит, ? огородное, тундра! Никакого толка в тебе не видно. Так всю жизнь наверху и проторчишь?. Сообщение отредактировал p2004r - 19.10.2017 - 15:22 ![]() |
|
![]() |
![]() |
![]()
Сообщение
#22
|
|
Группа: Пользователи Сообщений: 107 Регистрация: 27.12.2015 Пользователь №: 27815 ![]() |
Уважаемые стажёры (им). Вопрос про боруту, rf и порядковые шкалы.
1. Для клинических шкал нужно ли каждую категорию переводить в фиктивные переменные? Пример шкала депрессии madrs, 10 симптомов, каждый от 0 до 6, суммарный балл от 0 до 60. 2. Как поступать, если зависимая переменная является клинической шкалой? Пример шкала тревоги и депрессии hads. Тревога и депрессия меряются отдельно. |
|
![]() |
![]() |
![]()
Сообщение
#23
|
|
![]() Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 ![]() |
Уважаемые стажёры (им). Вопрос про боруту, rf и порядковые шкалы. 1. Для клинических шкал нужно ли каждую категорию переводить в фиктивные переменные? Пример шкала депрессии madrs, 10 симптомов, каждый от 0 до 6, суммарный балл от 0 до 60. 2. Как поступать, если зависимая переменная является клинической шкалой? Пример шкала тревоги и депрессии hads. Тревога и депрессия меряются отдельно. 1. Там сейчас по умолчанию library(ranger) под капотом, и по умолчанию все факторы ordered(). Если в номинальной шкале (обычный factor()) более 40-50 уровней то придется по техническим причинам делать dummy, само оно больше уровней не тянет (что то с реализацией алгоритма). 2. Регрессии борута прекрасно тоже считает (как и модели выживаемости). ![]() |
|
![]() |
![]() |
![]()
Сообщение
#24
|
|
Группа: Пользователи Сообщений: 107 Регистрация: 27.12.2015 Пользователь №: 27815 ![]() |
2p2004r
+сто нефти, спасибо |
|
![]() |
![]() |
![]()
Сообщение
#25
|
|
Группа: Пользователи Сообщений: 12 Регистрация: 15.10.2017 Пользователь №: 30359 ![]() |
p2004r, а что делать со случайным лесом, например номинативные переменные можно раздробить на дамми, а как быть с метрическими, где значение может быть от 0 до 1000 к примеру,
а рандом форест работет только с 54 категориями, по крайней мера в R) что все 1000 значений не раздробишь, например если речь идет о температуре не может же быть есть 1 градус, нет один градус, есть 2 градуса, нет 2 градуса |
|
![]() |
![]() |
![]()
Сообщение
#26
|
|
![]() Группа: Пользователи Сообщений: 1091 Регистрация: 26.08.2010 Пользователь №: 22699 ![]() |
p2004r, а что делать со случайным лесом, например номинативные переменные можно раздробить на дамми, а как быть с метрическими, где значение может быть от 0 до 1000 к примеру, а рандом форест работет только с 54 категориями, по крайней мера в R) что все 1000 значений не раздробишь, например если речь идет о температуре не может же быть есть 1 градус, нет один градус, есть 2 градуса, нет 2 градуса попробуйте сделать над собой усилие и ничего не делать с такими переменными (даже распределение не корректируйте)... должно попустить ![]() ![]() |
|
![]() |
![]() |
![]() ![]() |