Pull to refresh
60
0
Илья Шутов @i_shutov

Data Science

Send message

Не знаю, какая у Вас программа, но и data.table можно по верхам в один день вместить. Глубинам все равно не обучить, только практика и самостоятельное набивание шишек даёт устойчивое знание.. Но за руку провести по шоколадной фабрике и дать краткий обзор — возможно. У человека остаётся воспоминание, что есть разные методы и подходы, позже сможет сознательно вернуться сам.

Пока tidyverse развивался, функции претерпевали изменение. Это нормально. Сейчас многое застабилизировалось, главное, что здесь применяются лучшие практики разработки ПО. Читали про жизненный цикл функций в tidyverse?https://www.tidyverse.org/blog/2021/02/lifecycle-1-0-0/

Спасибо за ценный комментарий.

В первом же абзаце под катом приведен краткий список ключевых ссылок по теме R Markdown.
Там можно все определения прочитать и все аспекты технологии.

https://tineye.com/search/2fa1db3d0ee63c1dd19375a7c85d22ec3514ead2?sort=score&order=desc&page=1
Не сам рисовал. Могу заменить на что-то получше, если предложите.

Елена, Вы вообще о чем? Мне кажется, что диагональное чтение создало какие-то новые неведомые смыслы.

Ключевые слова:

Non-standard evaluation, environment hierarchy, variable lookup.
Lisp quote/unquote.

Там найдете ответы на более сложные случаи.
А про сортировку -- странный абстрактный вопрос. Если требуется получить n-ый по магнитуде элемент массива -- Вы что делаете при этом? Многие вещи на поверхности кажутся странными по причине неглубокого погружения. Все ссылки в тексте есть.

Если 100 раз упомянуть имя датафрейма в одном выражении -- защита возрастает! Компьютер убеждается, что ты точно знаешь, что хочешь.

Томас, Хант: Программист-прагматик, 2020
Тема 9. DRY - ПОРОКИ ДУБЛИРОВАНИЯ

Я бы предпочёл не ругаться. Радости не доставляет, правда. Если действительно интересно, то могу детально пояснить. В глубине не все просто и очевидно.

Но реально удобнее в телеграме, в группе или peer-to-peer. Полагаю, стригальщики большинство вопросов смогу дать ответ. Если есть сомнения — поглядите прошлые публикации.

Мысль не ясна. Вы правда хотите что-то из этого узнать, или так... просто для приличия спрашиваете. Или для того, чтобы попытаться задать другой "хитрый вопросик"? Ваша карма 0хE1 -- круто, но мне не нравится что на вполне корректные ответы лепите минусы. Хотя и ++ и haskel у вас в обойме. Похоже, что эффект из https://habr.com/ru/post/497114/.

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

Дело в том, что с данными надо мыслить совсем иначе.
И код строить на других принципах.
На практике такой код работает более чем стабильно и надежно.
Надо только понимать, что делаешь и какую задачу решаешь.
И неплохо иметь опыт промышленной разработки, чтобы понимать все плюсы, минусы и последствия своего кода.
А джун он везде джун -- лепит антипаттерны и косяки и даже не понимает этого.
У него ничего не триггернет написать `SELECT *`.
Наставник ему нужен долгое время.

Генрих дело говорит.

Хардкодить что?
0.5? Так может это абсолютная величина, определяемая алгоритом.
И второй вариант тоже можно.

Классическим разрабам и инфраструктурщикам это все может быть странным, но в дата мире правила совсем другие.

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

Ассерты Вам в помощь.
Добро пожаловать в data-driven мир.
Никаких контрактов и обязательств.
Если могут подвести -- подведут.
Если не могут -- все равно подведут.

Позиция «все, кто не в ит — люди второго сорта», очень популярная на хабре. И у неё даже название существует. Но реальность совсем другая. В 99% ит является центром затрат, а прибыль генерит«аналитик и продавец с экселем». И когда заболеете, не бигдатой лечитесь, а на лекарства да на врачей уповаете. И хочется, чтобы поезда ходили по расписанию и полки в магазинах были не пустые.

Разрабы далеко не все так пафосно выступают, когда после аудита попадают в категорию D (балласт). Кончаются красивые слова. Либо профит, либо убытки. Посмотрите прошлую публикацию, она не из воздуха возникла. Не стоит забывать местным участникам, что заветная смс-ка от банка далеко не всегда вашими усилиями приходит. Количество цетропупских советов тут зашкалило.

Для «мочилова» на вашем поле надо экзоскелет из кладовки достать, есс-но одного R недостаточно. Вас много, я один отбиваюсь от вопросов не по исходному тексту.

Nothing personal, just business.

Кстати, Вы ведь в курсе, что кроме кровавого энтерпрайза существуют другие миры? Экономисты, логисты, маркетологи, медики, биологи и биоинформатики, бизнес-консультанты, аудиторы и др. Там задачи бывают порой крайне сложные и объёмные. И простыми агрегатами там не отделаться.

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

Bfs/dominator говорит что-либо? А msa? А задачи эконометрики? Mau/dau/ltv? WGS?

А там тоже люди работают. И они тоже Хабр читают. https://letnyayashkola.org/about/

Многие комментаторы превратили весь поток в ярмарку тщеславия.

У меня не было цели всех перетаскивать на R. Но постоянно наблюдаю как аналитики мучаются с пандасом. Это для них текст, а не для матерых архитекторов. Просто посмотреть и подумать. R реально удобен для расчетов, мне много чего приходилось пробовать, начиная от фортрана. Круто, когда вся команда состоит из спецов Вашего уровня, но на практике половина команды типового проекта будет состоять из джунов или людей с опытом 2-3 года. И надо с ними строить.

Упоминание "синдрома утенка" просто смешно. Еще раз, Вы же не знаете ничего про мой опыт и список выполненных проектов. Лучше просто не говорить. Вы хороший оппонент, в целом, приятно видеть серьезный подход.
Но я здесь не собирался выступать на Вашем поле, меня более алгоритмические вещи интересуют и решение настоящих задач, а не простые агрегаты map/reduce или автомл.

4) я привел только частный пример, один из вариантов, но Вы все равно упомянули аккумуляторы и fp в виде reduce. ожидаемо.

5) polar -- он же arrow. Это другая штука, доступная сама по себе во всех платформах. Все исходники тестов на гитхабе. И я знаю, что там нет явного лидера -- я за этим отчетом лет 5 смотрю. Зачем скрывать? Все меняется и новые технологии и подходы дают улучшение. И да, на практике используется не один data.table, а в связке с arrow. Но это хорошо стало с 7-го релиза последнего.

6) да просто утомило. еще раз, если не видите разницы между телескопом и туннельным микроскопом -- я ничего поделать не могу. мне приходилось считать задачи в квантах и дочищать косяки так, чтобы от 10^5 дней доходить до 2-3-х суток счета. Да, циклы процессора и миллисекунды иногда играют роль.

Давайте закрывать тему, все эти обменами кто чего не читал и кто чего не смотрел. Вы ведь явно что-то хотите мне доказать? Но зачем по одной точке делать глобальное суждение обо всем? Ваш опыт я примерно понял, много писали, я полистал и прошлые публикации на хабре, с моим опытом Вы не знакомы, я нигде особо тут не пишу. Гораздо интереснее в реальности пересекаться, чем тут конфронтацией заниматься. С половиной тезисов согласились -- ну давайте и остановимся на этом. И не надо исходный посыл тащить на свое архитектурное поле. У меня не было планов переубеждать на 100% кого-либо. Я предоставил альтернативную точку зрения. Будет возможность раскрыть инфу, я отвечу и на ваши вопросы по MLOps фактами, наберитесь немного терпения. Вы не на все вопросыы отвечате. Ссылки хорошие. Мне, например нравится подход и работы https://www.brendangregg.com/. И ряд других материалов и книг.

  1. Причем тут точка? Что мы видим при вызове типа переменной пандаса? Правильно, `<class 'pandas.core.frame.DataFrame'>`. Есть класс, есть методы, есть внутренние объекты-классы (`Series`). Есть частные методы вместо общих функций. Этого вполне достаточно для констатации, что здесь применяется ООП подход. Не данные в центре, а какие-то абстрактные классы. Функциональный подход при работе с данными ближе к математическому мышлению и гораздо удобнее, в т.ч. в конвейерной обработке пайпами. И да, я ООП, в его попытках зажать у себя данные и наслоить методов, просто не перевариваю для счетных задач еще с BC++ 1.0, этот скафандр в гамаке.

  2. Упоминать какой-то частный мифический опыт -- тот еще аргумент. И *niх иногда валится в `kernel panic`, бывает. Надо в деталях разбираться.

  3. Я могу приводить много раз, но Вы не смотрите описание по ссылкам, не смотрите примеры кода в предыдущих публикациях (https://magrittr.tidyverse.org/index.html). Что это просто Вам совершенно далеко, что для архитектора вполне понятно.

  4. Я могу 100500 раз пытаться предложить посмотреть, но это все равно не поможет. Пока сами не прочитаете, не поймете, почему итератор не годится. Да просто потому что в пайпе я могу передавать весь объект и тут же менять его по ссылке + использовать его же внутри вычисления как через ., без именования. Классический вариант -- использование его в качестве аккумулятора в цикле при итерационных операциях. Масса задач и алгоритмов решаются проще и экономнее с таким подходом.

  5. Пример -- воспроизводимый код. Ничего Вы не привели, только слова разные говорите, я пример же приводил, адресую еще раз: https://h2oai.github.io/db-benchmark/. Этот архитектурный пафос встречал много лет и все по одному сценарию. Отдельные архитекторы вообще "облачка" рисуют и "зуб дают". У вас лучше, видно же, что в инфраструктурных вещах, в го и т.д. Вы хороши. Здесь же -- "из общих соображений". И чаще всего на конкретных задачах общие подходы оказываются неудобными. Все вроде по правилам и по корп. стадартам, а на выходе --- убогая поделка и задача не решается. Изначаль ведь про civil DS речь шла, не я лез на архитектурное поле, а Вы насильно тащите. Научной деятельностью занимались или сразу все бросили? Лего модель хороша для типовых прямоугольных задач.

  6. Ну что здесь спорить? Вы по ссылкам ходили? Смотрели, что требуется при отладке алгоритмов? Когда у Вас Монте-Карло или сложный процессинг или сложные итерационные вычисления -- надо оптимизировать каждый отдельный шаг. 10 мс помноженные на 10^10 дают очень ощутимый вклад. Взгляд сверху не дает картины. Зачем смешивать телеском с микроскопом? А если разницы не видите, то для архитектора простительно. Это все в стиле бизнеса "зачем думать о мелочах, маржа все покроет". Ну да, ну да. Ровно до того момента, пока она есть. Системы реального времени писали? Если бы я хотел глобально рассуждать, то так и писал бы. Есть основания. Но нет, здесь был частный вопрос. Паяльник в руки берете когда-нибудь? А осциллограф? Или машины меняете при пепельнице забитой? А вот нету новых машин в наличии нынче...

Это Вы вообще или конкретно мне? Если мне, то поглядите примеры кода в предыдущих публикациях и ткните пальцем где там увидите академичность на академичном языке.

Найдете хоть строчку? Тогда хоть будет понятно, что именно Вы подразумевали. Просто с голословным утверждением сложно что-либо делать.

Не любите -- Ваше право. Но давайте уж логику проследим.
1. Есть исходный текст. В нем нет никаких призывов, никаких бигдат и промышленных применений. Рассматривается ряд предельно конкретных вещей. С примерами и отсылками на доп. материалы.
2. В комментариях возникает масса вопросов далеко за пределами исходного текста. Я стараюсь ответить. Без каких-либо призывов, просто ответить.
3. Вы читаете комментарии, вырываете из контекста и делаете свои выводы, которые никак не относятся к исходному тексту.

Как относиться к Вашим высказываниям? С большим сомнением.

Ну и почему опять MLOps?
Я не говорил про него в тексте.

Исследования, ad-hoc, различные аналитические приложения, rmarkdown отчеты в неимоверных количествах и сложности соответствующей, счетные сервисы в режиме черного ящика или API, да 100500 классов задач.

Если правда интересно, посмотрите предыдущие публикации.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity