Size: a a a

R (язык программирования)

2021 January 28

IS

Ivan Struzhkov in R (язык программирования)
Байкулов Антон
Типо "коновал" и "конь" - совпадают на 67%
stringdist - растояния левинштейна, дамерау-левинштейна
источник

БА

Байкулов Антон... in R (язык программирования)
Ivan Struzhkov
stringdist - растояния левинштейна, дамерау-левинштейна
Спасибо!
источник

АК

Артём Клевцов... in R (язык программирования)
Байкулов Антон
Ребята, есть вопрос: А какой библиотекой можно проанализировать две фразы и оценить совпадают ли в них слова?
diffobj.
источник

А

Анатолий in R (язык программирования)
Alexey Burnakov
А можете еще раз пояснить, пож., что такое векторно в вашем понимании, в этом контексте. Чем это лучше, напр., параллельно исполнения?

По поводу "тяжести" функции. Там не столько сама ARIMA тяжела (ну, она тоже не совсем "легка"), сколько перебор (иногда) десятков моделей аримы. Это же авто арима. Вот он и тормозит. Могу подсказать, как настроить аргументы этой функции перебора для менее тормозных вычислений
В моем представлении (понимаю, что грубо очень) векторизованное это все, что не через цикл. Алгоритм оптимизирован уже внутри функции, и мне не нужно придумывать, как оптимальнее цикл написать. Как-то так. Извиняюсь, если совсем по-дилетантски, R учу чуть больше полугода, и то так, набегами. Пример

x <- 1:1e6
#вектором
system.time( y1 <- x^2)
#криво циклом
tmp.function <- function(x) {
  res <- rep(0, length(x))
  for( i in (1:length(x))) {
    res[i] <- x[i]^2
  }
  res
  }
system.time( y2 <- tmp.function(x) )

 

Выше Dm Kb  дал код с map2 (кстати, спасибо огромное!) – вот, видимо то, что нужно. Про распараллеливание я не спрашивал, так как считал, что там все сложно, нужны функции, написанные специально под параллельное исполнение. Взял код – все заработало «с листа», и (главное!) в целом все мне примерно понятно, буду осваивать.

Насчет арима- все что я об этом методе знаю (а это немного), я знаю отсюда.  . Решил попробовать его «по-быстрому», и, если результаты будут хоть немного обнадеживать- уже погружаться глубже. Так что за подсказу о параметрах буду благодарен. Правда, единственное, что я с уверенностью могу сказать про исходные ряды – у них сезонность 12 месяцев, что я и учитываю в ts().

Вообще у меня есть сомнения, что арима прямо сильно поможет в моем случае, но попробовать хочу. Пока идея такая: по данным до «вчера» предсказываю значение на «сегодня». Разница «сегодня» предсказанного и реального – один из предикторов для предсказания значения «завтра»
источник

AB

Alexey Burnakov in R (язык программирования)
Анатолий
В моем представлении (понимаю, что грубо очень) векторизованное это все, что не через цикл. Алгоритм оптимизирован уже внутри функции, и мне не нужно придумывать, как оптимальнее цикл написать. Как-то так. Извиняюсь, если совсем по-дилетантски, R учу чуть больше полугода, и то так, набегами. Пример

x <- 1:1e6
#вектором
system.time( y1 <- x^2)
#криво циклом
tmp.function <- function(x) {
  res <- rep(0, length(x))
  for( i in (1:length(x))) {
    res[i] <- x[i]^2
  }
  res
  }
system.time( y2 <- tmp.function(x) )

 

Выше Dm Kb  дал код с map2 (кстати, спасибо огромное!) – вот, видимо то, что нужно. Про распараллеливание я не спрашивал, так как считал, что там все сложно, нужны функции, написанные специально под параллельное исполнение. Взял код – все заработало «с листа», и (главное!) в целом все мне примерно понятно, буду осваивать.

Насчет арима- все что я об этом методе знаю (а это немного), я знаю отсюда.  . Решил попробовать его «по-быстрому», и, если результаты будут хоть немного обнадеживать- уже погружаться глубже. Так что за подсказу о параметрах буду благодарен. Правда, единственное, что я с уверенностью могу сказать про исходные ряды – у них сезонность 12 месяцев, что я и учитываю в ts().

Вообще у меня есть сомнения, что арима прямо сильно поможет в моем случае, но попробовать хочу. Пока идея такая: по данным до «вчера» предсказываю значение на «сегодня». Разница «сегодня» предсказанного и реального – один из предикторов для предсказания значения «завтра»
В целом, ваша мысль ясна. Такие функции, как ==(c(1,2,3), c(2,3,4)) написаны векторизовано. Значит это, что в их коде написаны циклы прохода массивов или векторов "за вас", и так как написано на быстром языке, работает это несравненно быстрее, чем циклы на R.

Но, ARIMA под такие категории попадает прямо с трудом, с притянутостью за уши, потому что, если глянете код функции auto.arima, затем Arima, затем stats::arima, затем :) stats::optim, посмотрите сколько там вложено таких атомарных операций, причем написано на R, и проследить, где именно вложенные ф-ии упираются в векторизованные, это прямо работа-работа. Можно тут уточнить, что внутри этих функций есть обращение к векторизованным функциям, поэтому, можно предположить, что писали код настолько эффективно, насколько могли. Как следсвтие, векторизация такого процесса может вообще не принести ничего хорошего, даже если сделать данную ф-ии векторизованной в каком-то виде (типа, будет принимать list of ts). На этом шаге понятно?
источник

AB

Alexey Burnakov in R (язык программирования)
Анатолий
В моем представлении (понимаю, что грубо очень) векторизованное это все, что не через цикл. Алгоритм оптимизирован уже внутри функции, и мне не нужно придумывать, как оптимальнее цикл написать. Как-то так. Извиняюсь, если совсем по-дилетантски, R учу чуть больше полугода, и то так, набегами. Пример

x <- 1:1e6
#вектором
system.time( y1 <- x^2)
#криво циклом
tmp.function <- function(x) {
  res <- rep(0, length(x))
  for( i in (1:length(x))) {
    res[i] <- x[i]^2
  }
  res
  }
system.time( y2 <- tmp.function(x) )

 

Выше Dm Kb  дал код с map2 (кстати, спасибо огромное!) – вот, видимо то, что нужно. Про распараллеливание я не спрашивал, так как считал, что там все сложно, нужны функции, написанные специально под параллельное исполнение. Взял код – все заработало «с листа», и (главное!) в целом все мне примерно понятно, буду осваивать.

Насчет арима- все что я об этом методе знаю (а это немного), я знаю отсюда.  . Решил попробовать его «по-быстрому», и, если результаты будут хоть немного обнадеживать- уже погружаться глубже. Так что за подсказу о параметрах буду благодарен. Правда, единственное, что я с уверенностью могу сказать про исходные ряды – у них сезонность 12 месяцев, что я и учитываю в ts().

Вообще у меня есть сомнения, что арима прямо сильно поможет в моем случае, но попробовать хочу. Пока идея такая: по данным до «вчера» предсказываю значение на «сегодня». Разница «сегодня» предсказанного и реального – один из предикторов для предсказания значения «завтра»
Теперь по поводу параметров поиска модели ARIMA внутри auto.arima.

Там есть выбор двух важных опций, например, перебор всех моделей по сетке. Вот это все и тормозит, главным образом. Второе, это верхние границы p,d,q (в случае SARIMA: P,D,Q). Их можно сделать меньше, чем по умолчанию, но тогда накладываются предположения некоторые. Но в целом, модели ARIMA довольно редко бывают более высоких порядков. Надо проверить на своих данных, если падение точности прогноза важно критически.
источник

AS

Alina Shabatov in R (язык программирования)
а есть тут психометристы?
источник

DK

Dm Kb in R (язык программирования)
спасибо за дополнение !!! посмотрел, что там под капотом... выяснилось, что действительно все интереснее... там похоже работает алгоритм, где четыре итеративных этапа, на которых используются OLS, MLE и BLS ... это объясняет почему оценка коэффициентов может быть затратной... собственно это только подтверждает тот факт, что  для ускорения нужно аккуратнее выбирать параметры функции auto.arima , о которых я писал ранее
http://home.iitj.ac.in/~parmod/document/introduction%20time%20series.pdf
источник

А

Анатолий in R (язык программирования)
Alexey Burnakov
Теперь по поводу параметров поиска модели ARIMA внутри auto.arima.

Там есть выбор двух важных опций, например, перебор всех моделей по сетке. Вот это все и тормозит, главным образом. Второе, это верхние границы p,d,q (в случае SARIMA: P,D,Q). Их можно сделать меньше, чем по умолчанию, но тогда накладываются предположения некоторые. Но в целом, модели ARIMA довольно редко бывают более высоких порядков. Надо проверить на своих данных, если падение точности прогноза важно критически.
Спасибо,  буду пробовать.  Я же правильно запомнил,  что auto.arima по сути включает sarima?
Насчёт того,  что сам метод затратный понял, просто с первых шагов в R на степике вбили "если что-то сделано через цикл,  то это сделано не оптимально".

list of ts звучит похоже на tsibble. Пробовал по статьям Мастицкого, пока отложил.
источник

AB

Alexey Burnakov in R (язык программирования)
Анатолий
Спасибо,  буду пробовать.  Я же правильно запомнил,  что auto.arima по сути включает sarima?
Насчёт того,  что сам метод затратный понял, просто с первых шагов в R на степике вбили "если что-то сделано через цикл,  то это сделано не оптимально".

list of ts звучит похоже на tsibble. Пробовал по статьям Мастицкого, пока отложил.
seasonal = T перебирает сезонные модели. Если сезонность у вас это основное допущение, это надо. Да, это SARIMA.

List of ts, не, это аргумент гипотетический, который примет список кусков ВР, или пойдет итеративно по ВР, как у вас в функции. Смысл и результат  будут одни. Время выполнения тоже.

Иногда без цикла не обойтись. Смысл того, что вам вбили, что его не надо вставлять везде, где он предполагается логикой, потому что есть функции, где он уже заложен. Я тут поясняю, почему в обсуждаемом случае само понятие векторизации слабо применимо. Применимо распараллеливание на элементах цикла.
источник

PU

Philipp Upravitelev in R (язык программирования)
Ivan Struzhkov
Все добра!
Скажите - а чем делать лемитизацию? была библа от яндекса - но не обновленная к R 4.0
Есть рекомендации?
udpipe
источник

IS

Ivan Struzhkov in R (язык программирования)
спасибо!
источник

АК

Артём Клевцов... in R (язык программирования)
Кстати, для тех кому кажется он слишком медленным, прошу обратить внимание на параметр parallel.cores, который по умолчанию равен 1.
источник

Ю

Юрий 🐙💻🤖📊📈🚬... in R (язык программирования)
#полезное #величина_эффекта #визуализация
источник

Ю

Юрий 🐙💻🤖📊📈🚬... in R (язык программирования)
источник
2021 January 29

AC

Andrey C. in R (язык программирования)
Друзья, а где были первые курсы по R в России? Мы с Анатолием Карповым учили студентов в 2013-2014, интересно, что было до этого.
источник

AS

Alexander Semenov in R (язык программирования)
Ульянов в Вышке data mining в R читал году в ~2009
источник

AC

Andrey C. in R (язык программирования)
прикольно, для социологов?
источник

AC

Andrey C. in R (язык программирования)
еще вроде Понарин (сорри, если фамилию неправильно написал) в ЕУ читал, но я не помню, когда
источник

AS

Alexander Semenov in R (язык программирования)
Andrey C.
прикольно, для социологов?
Да. Он с кафедрой методов давно сотрудничает. Хороший мужик.
источник