×

Windows или Ubuntu для анализа данных на R и Python?

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

Хочу стать Data Analyst на R и Python.
Прошу совета опытных аналитиков и Data Scientistов.
На Windows вполне полноценно можно работать с данными в RStudio, Jupiter Notebook и других прогах?

С Убунтой постоянно какой-то головняк появляется. То Wi-Fi падает, то проводной интернет не работает. То не устанавливается что-то. Работаю на ноуте.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

WSL 2 помоиму должен решать все проблемы

Я использовал федору, аналог красной шапочки...

Не там копаєте.
Ставте анаконду на будь-якій ОСі, буде щастя. І тільки після конкретних проблем можна буде думати про іншу операційку.

Вот еще кейс в тему.
Создал я модель стохастического процесса, который мимикрируется под random walk.
letyourmoneygrow.com/...​alk-down-the-wall-street

Мне нужно было удостовериться, что (на не слишком больших выборках) статистические тесты «подделку» не распознают. В этом мог бы помочь R-пэкедж emh
www.turingfinance.com/...​market-hypothesis-with-r
Его нужно собирать из исходников с помощью devtools — что в Windows еще тот гемор — с ходу не пошло. Ну, я на сервер в линух (альтернативно мог бы в docker container, их в винде запускать тоже можно). Но и в линухе чего-то не пошло... ну в общем, я плюнул на эту поделку и нашел нужные мне тесты в других библиотеках :)

Не хвастовства ради, а токмо в рамках обмена опытом...
Обычно после установки интерпретатора я сразу устанавливаю Rtools и devtools. Как-то так сложилось, что большинство проектов я заворачиваю в пекедж ради удобства работы, задействования клавиатурных сокращений для прогона тестов, написания доков и т.д. Да, можно задействовать шаблоны проектов и т.д. Следовательно, devtools присутствует всегда. Сейчас попробовал установить emh на Винде 10 с R 3.5.2. Ругнулось на необновлённые пакеты, но отработало на ура.

Сейчас попробовал установить emh на Винде 10 с R 3.5.2

А у меня сейчас Microsoft’овский R. Они с одной стороны четко следят за порядком в версиях пактов (чего нет в CRAN’е), но с другой — когда нестандартная ситуация, то те же devtools могут оказаться несовместимыми.
Кстати, как emh — стоит того, чтоб повозиться с его установкой?

Я майкрософтовским Аром не пользовался. Предполагаю, что где-то так и есть. Microsoft улучшил, добавил, но нужно быть готовым к тому, что там не заработает что-то, что работет в ванильном R. Ну а CRAN чем-то напоминает debian testing ;) Можно годами работать без проблем, но если что — экранируем функции сами ;)

emh лично не пробовал, ничего не могу сказать. Хотя, помню, пару лет назад писал довольно большой проект по рандом-вокам. Ещё и умудрился реализовать его с разными подходами: R4, R5, R6... Тоже испёк пакет, но на CRAN предложить своё монстрообразное поделие постеснялся...

Кстати, со второй попытки (на другом компе) emh под винду-таки встал.
Только все равно ни хера не работает :)
> results <- is_random(S = zooloo,
+ a = 0.99, # To get a 99% confident result
+ freqs1 = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
+ freqs2 = c("Mon„, „Tue”, „Wed”, „Thu”, „Fri”, „Week”, „Month”))
|================================================================= | 59%Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) :
0 (non-NA) cases

Мне сразу бросились в глаза французские фигурные кавычки вместо прямых, но, наверное, это особенности вашего копи-паста, и в RStudio у вас используются прямые кавычки. Надеюсь, что прямые. Прогресс-бар прошёл 59% и остановился.
Я по-быстрому глянул функцию emh::is_random():
здесь применяется логарифмирование или похожее на него преобразование numeric-значений zoo-объекта, где мы получаем NaN-ы, из-за которых нам дальше выдаётся ошибка:
logrets <- as_logreturns(S)
В as_logreturns() завёрнута функция cAsLogReturns(), которая, в свою очередь задействует Rcpp.
Похоже, нужно либо разбираться глубже, либо бросить этот emh и использовать другой пакет.

В спешке писал. Разумеется, cAsLogReturns() задействует cpp-код через Rcpp. Вот он:

NumericVector cAsLogReturns(NumericVector levels, int order) {
  NumericVector logrets = levels * 0;
  for (int i = order; i < levels.size(); i++)
    logrets[i] = log(levels[i] / levels[i - order]);
  return(logrets);
}

Да, по замыслу создателя пакета

logrets

из вектора нулей должен был превратиться в вектор чисел, но где-то что-то пошло не так, логарифму скармливаются нули, на выходе получаем наны. Впору создавать issue, но для этого сначала нужно разобраться, вникнуть в замысел автора, затем, может, появится у меня пул-реквест, но времени сейчас есть только на копи-паст этого кода.

Там в выражении участвует вектор по-идее-ненулей levels и order. Я ж говорю, надо вникать, якщо знайдеться натхнення й час.

Похоже, нужно либо разбираться глубже, либо бросить этот emh и использовать другой пакет.

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

это opensource во всей красе... ;)

Коментар порушує правила спільноти і видалений модераторами.

Если речь идет только о Python / R, то без разницы, нормально работает и там и там.

А так, не надо забывать что BI специалисты очень часто работают с MS Office, например, и с Экселем в частности. Открывать странные Excel форматы в Убунте то еще удовольствие.

Плюс стандартные BI тулы, например Tableau, PowerBI, их на линуксе нет.

стандартные BI тулы, например Tableau, PowerBI, их на линуксе нет.

Десктопної версії нема, але є сервер версія з яком можна працювати через браузер.

Какие хорошие вопросы Максим задает)))

Спасибо, Леша))
У меня был хороший учитель:))

В последние пару месяцев на пк и ноуте перепробовал почти все семейство ubuntu и к этому еще и manjaro. Итоговый вывод (имхо конечно же)- самый быстрый дистрибутив — manjaro (plasma), самый стабильный mint (cinnamon), самый красивый (и украшаемый) — Kubuntu (plasma). Но для хочу или нет, второй системой пришлось оставить windows10 , ибо world of tanks , на linux хоть и работает но теряет 2/3 производительности...

Я бы посоветовала Ubuntu 16.04, она стабильнее остальных. Почему не советую windows — большинство пакетов/либ требует компиляции плюсового кода, в винде это ппц сложно, особенно начинающему юзеру, остается только брать wheels из интернета

Оба языка и их инструментарий отлично живут что на Винде, что на Линухе.
Я бы даже с WSL не заморачивался.

На Windows вполне полноценно можно работать с данными в RStudio, Jupiter Notebook и других прогах?

.
Да.

Остальное поймёте в процессе развития.

Здесь уже отписались по поводу docker и AWS, keras. Когда начнёте этим заниматься, поймёте, что пора запускать линукс: либо в отдельном разделе диска дуалбутом, либо через Virtualbox/Vmware, либо через WSL.

WSL может быть решением во многих задачах, когда вам нужен Linux. За сколько-то лет работы в этой сфере я трудился то попеременно в Windows и Linux, то исключительно в Windows, а сейчас больше в Windows+WSL.

В Linux бывают некоторые моменты с установкой пакетов, когда install.package("packagename") заканчивается ошибкой, и вам нужно переходить в менеджер пакетов линукса и запускать apt-get install packagename. Пример: установка R-пакетов, которые задействуют Java, и просто присутствия JDK из официальных репозиториев или PPA, backports итд — недостаточно. Но это просто плюс несколько минут на поиск на Стековерфлоу, копипаст в консоль, запуск и повторный запуск install.package("packagename". Это не недостаток и не недоработка в LInux, просто особенности конкретной ОС. В MacOS тоже есть свои особенности и подходы, например, в способах установки R-интерпретатора.

То есть WSL будет достаточно для работы?

Вы сами поймёте в процессе работы, когда его достаточно, а когда нет... ;)

Тільки Лінукс, можна і Мак

Бо вінда страшна як радянська влада, віруси, оновлення з перевантаженням коли заманеться, крякнуті програми, брррр.

Згоден, за 20 років Лінукс сильно погарнішав!

Как по мне Линукс (дистры типа убунту) гораздо удобнее для разработки с использованием тулзов опенсорс из команд лайна. В винде нет ничего , даже Гита нет. В винде ты не можешь начать работу (и даже собрать проект с гитхаба) из коробки. Если тебе нужны джава, мейвен, груви, пайтон, гит, реакты с нодеджсами , и прочие тулзы , инсталляция машины займет целый день. В линуксе все сразу из коробки , либо ставится из репозиториев за минуты. В винде нужно посетить сайт каждого вендора, найти где там раздел даунлоад, скачать, запустить вручную инсталлер exe
или msi . При этом зависимости часто нужно скачивать отдельно. Например MySQL на винде требует .NET 4.x и Visual C++ redistributable и они не входят в пакет инсталляции. Иногда ещё переменные в PATH прописать. Поэтому долго, нудно и непродуктивно

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

помойте рот с мылом после таких слов

Откройте для себя пакетные менеджеры для Windows. Например chocolatey.

В винде они все кривы и пакетов там с гулькин нос.

не согласен) посмотри www.npackd.org — там и вполне понятный и удобный GUI, и прог не так уж мало присутствует ( www.npackd.org/p — указано 1183 пакетов). Конечно, это не Synaptic, но ИМХО вполне годно как для винды.

Плюсую) Мне вот, например, понравился www.npackd.org , но думаю и «шоколад» попробовать (походу для chocolatey даже GUI есть — github.com/chocolatey/ChocolateyGUI ) :-)

У самого ноут, на котором линукс работает через задницу. Нашёл прекрасный вариант — ставишь вин 10 pro, а там настраиваешь wsl. Сидишь под виндой, но используешь компилятор/интерпретатор с линукса. Более того, многие продукты JetBrains (clion и pycharm точно) поддерживают wsl из коробки.
С anaconda проблем ещё меньше. Он как веб сервер разворачивается. Запустил его в wsl, и на винде открываешь браузер с кодом.
По сравнению с виртуально машиной wsl намного шустрее и тратит меньше времени.
Единственное, нужно потратить время на первоначальную настройку, но это 1 раз.
По поводу R не знаю, не пользовался.

Таки на вінді коли доведеться компіляти пакет з C доведеться магію трошки задіяти.

OSX конечно. Какой ты ДС без макбука?

Починайте опановувати хмарні сервіси...
Там все є...
І не залежить від техніки...

Ви не правильно мене зрозуміли))
Я мав на увазі не замість локального РС, а паралельно..
Так би мовити — на перспективу)

пс Щодо вартості, то на початковому етапі, це буде значно дешевше, ніж купувати потужну техніку «на виріст»
Тим більше, що я не зустрічав, щоб були якісь більш-менш серйозні проекти, що обробляють дані тільки локально... Я можу багато не знати))

Ставь Убунту в виртуалбокс и запускай в винде.

Ребят, спасибо всем за рекомендации)
Сейчас планирую на Винде продолжить проходить онлайн-курсы по анализу данных на R и на Pythone, поизучать их библиотеки.
А потом наверное поставлю Убунту второй системой, как и было раньше, до неудачной попытки обновления 18.04 до 18.10.

Ой, от 18-й лучше воздержаться. У нее до сих пор вагон нерешенных проблем с совместимостью. Откатись на 16.04 и волосы намного более мягкими и шелковистыми.

Это я тебе скажу как мастер портирования и сложных билдов. В 18 очень сильно перекопали дерево пакетов по сравнению с предыдущими версиями и очень многие вещи перестали после собираться или нормально работать.

Ставь Linux Mint Cinnamon — він більш зручний для користувача Windows, ніж Ubuntu.

Так, це може бути. До речі, є докер з OpenVINO — так що можна його використовувати.

Думаю, зависит от домена, потому как я работала в нескольких DS компаниях и на плюсах никто не писал — что на питоне сделали, то и в проде. Насчет линукса — да, на винде слишком много танцев с бубном.

Можно примеры реальных продов? Потому как я продом считаю продукт, который уже задеплоен и приносит деньги компании + пользу заказчику. Переписывать это все на С тупо некому, тк не так и много девов, которые пишут на С и понимают при этом в DS, а основная масса пишет все же на питоне, который прост и понятен + кучи либ, которые может использовать рядовой дата саентист.
Многопоточность — да, это боль в питоне, чаще решается большим количеством машин (docker, kubernetes, etc)

А то и на Verilog/VHDL с вынесением в специализированный чип, если рассматривать портативные решения. См. Apple Neural Engine, Huawei Kirin. Ибо из химических источников тока уже выжали все, что можно было выжать, а термоядерных батареек на прилавках пока не видно :)

Открою секрет Полишинеля: Data Science (настоящая, а не тупой перебор моделей) начинается с карандаша и бумаги.

А это

С Убунтой постоянно какой-то головняк появляется. То Wi-Fi падает, то проводной интернет не работает.

результат отсутствия админских навыков — что само по себе не грех (нельзя быть спецом во всем), но к Data Science совершенно ортогонально.

Да, по личному опыту мне только пару раз требовался именно Линух, а именно:
1. Когда одно время библиотеку biwavelet cran.r-project.org/...​ages/biwavelet/index.html выкинули из CRAN’а; в Линухе она из исходников собиралась на раз-два-три, а в винде — нет.
2. Когда на R пишется скрипт, который потом будет запакован в Docker в виде сервиса.

Настоящего программирования — да. Формошлепства — нет.
«Формошлепство» есть везде (в DS это тупой перебор моделей), но в DS оно куда реже приносит пользу (хотя, пожалуй, не менее востребовано чем в программировании).

В продуктиве — да (хотя я бы назвал TF и CUDA не моделью вычислений, а техническими инструментами).
Только что толку распараллеливать модель на той же КУДе, если она по сути своей неверная?! :) А вот чтоб она была верная — тут приходится порой поработать карандашом на бумаге.

Еще улыбает, что в головах у многих Data Science тождественно Deep learning.

Можно, но, например, Шолее в книге "Глубокое обучение на Python, например, не рекомендует. Его цитата:

Технически можно использовать Keras в Windows (все три библиотеки, используемые в Keras, поддерживают Windows), но мы не рекомендуем этого делать. (...) Если вы пользуетесь Windows, просто установите Ubuntu в качестве второй операционной системы. Это может показаться слишком хлопотным, однако использование Ubuntu сэкономит вам массу времени и избавит от многих проблем в будущем.

Второй нюанс состоит в том, что иногда приходится арендовать машинное время в облаке, а там Linux. Так что его лучше таки знать.

Підписатись на коментарі