Пикейный аналитик
417 subscribers
31 photos
1 video
20 links
Wishful Thinking Club
Download Telegram
Поэтому, я решил объяснить почему так назвал свой канал и клуб.

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

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

Собственно, отсюда и Wishful Thinking Club - клуб любителей выдавать желаемое за действительное. Wishful thinking - это когда ты не анализируешь реальность, а договариваешься с ней. Когда гипотеза нравится раньше, чем проверяется. Когда неудобные данные становятся «шумом», а удобные - «сигналом». Когда «ну это же логично» звучит убедительнее, чем «давай проверим числа».

Самое неприятное то, что это не маргинальная ошибка. Это базовая настройка мышления. Поэтому в какой-то момент каждый из нас бывает пикейным аналитиком и важно научиться распознавать это чтобы вовремя дать себе по рукам.

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

За прекрасную подборку реакций хочу поблагодарить свою дочь и призываю подписываться на ее канал "Сцены из жизни богемы". Если вам не чужды классическая музыка, опера и театр, вы надете там много интересного @monateatr
🤡9😁42🔥2🤬2😡2
Синдром самозванца как парадокс Рассела

Как-то я участвовал в панельной сессии форума "Кавказский акцент" в качестве эксперта (бывает и такое), и нам задали вопрос:

Как лучше справляться с синдромом самозванца?

Я тогда отшутился примерно так: прежде чем с ним справляться, неплохо бы убедиться, что это действительно он. Потому что может оказаться, что ты и правда самозванец. Позже я задумался всерьёз: а можно ли вообще диагностировать у себя синдром самозванца?

Допустим, у нас есть герой - компетентный, но неуверенный в себе специалист. Если он говорит: «У меня синдром самозванца», - значит, он уже признаёт за собой компетентность. И в этот момент будто бы перестаёт быть самозванцем. Если же он говорит: «Нет у меня никакого синдрома, просто я слабый специалист», - то именно тут синдром самозванца и проявляется во всей красе.

И получаем версию парадокса лжеца: как только пытаешься честно ответить себе на вопрос «я внутри или снаружи?», сама проверка меняет объект проверки. Поэтому, прежде чем ставить себе такой диагноз - подумай, не выдаешь ли ты желаемое за действительное.
100🤡10🔥43🤬2😡2👎1
Эту задачу я когда-то подсмотрел у Александра Гутмана и потом использовал в лекции про континуум-гипотезу, которую читал в МГУ в 2021 году.

Недавно я задал её ChatGPT. Он справился и кроме того нарисовал мне классную иллюстрацию.

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

В одном из следующих постов расскажу, почему я про неё вспомнил. А пока - сама задача.

Клетчатое поле, бесконечное во все стороны. По полю прыгает кузнечик - такой маленький и зелёненький, что лягушка его не видит и не слышит. Но она знает, что кузнечик прыгает каждую секунду и точно по клеткам - на манер этакой шахматной лошади. А еще она знает, что он прыгает всё время в одном и том же направлении, вдоль какой-то одной прямой, и на одно и то же расстояние. Ни направление, ни расстояние лягушка не знает. Знает только, что сидел в траве кузнечик, а потом кааак попёр прыгать… Где сидел, как попёр, куда - неизвестно.

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

Задача - сожрать. То есть нужно придумать для лягушки такую стратегию, чтобы она гарантировано рано или поздно поймала кузнечика. Когда именно - не важно: времени впереди целая вечность.

Комментарии открыты. Лягушка тоже.

Чтобы вдохновиться, можно посмотреть мою лекцию на YouTube https://youtu.be/rGd0OUaIduc?si=gKoAFkUmyiY2T3q6
🔥8👍52🤡2👻1
JOIN как пересечение множеств - одна из самых живучих полуправд в аналитике

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

В курсах по SQL и шпаргалках авторы любят объяснять JOIN через теорию множеств:
INNER JOIN - пересечение, LEFT JOIN - всё слева плюс совпадения справа, FULL JOIN - объединение. Это звучит умно, аккуратно и достаточно похоже на правду, чтобы потом на этой полуправде построить пару карьерных катастроф.

Проблема в том, что в SQL JOIN работает не с элементами множества, а со строками, связанными по ключам. А ключи с обеих сторон вовсе не обязаны быть уникальными. Поэтому JOIN - это не операция вида “найти общее”, а операция вида “для каждого значения ключа сопоставить все строки слева со всеми строками справа”.

Пока ключ уникален хотя бы с одной стороны, проблем не возникает. Но как только вы попадаете на связь many-to-many, на сцену выходит локальное декартово произведение. Если по одному ключу слева 4 строки и справа 6, после JOIN вы получите 24 строки. Не потому что база “задвоила данные”. А потому что ключ повторяется с обеих сторон, и SQL честно строит все допустимые пары.

Именно здесь заканчивается уютная метафора про множества и начинается взрослая жизнь. Вы думали, что просто подтянули атрибут. На самом деле вы размножили наблюдения. Вы думали, что считаете пользователей. На самом деле посчитали все комбинации внутри каждого повторяющегося ключа. Вы думали, что видите сигнал. На самом деле смотрите на комбинаторный взрыв, который сами же и создали.

Отсюда и весь привычный цирк: “почему-то” выросла выручка, “внезапно” стало больше пользователей, “неожиданно” сломался retention, “откуда-то” взялись дубли и раздулся результат. Хотя ничего неожиданного не произошло. Просто человек написал JOIN, мысленно представил пересечение множеств, а получил произведение мощностей по каждому ключу.

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

P.S. А если для вас все это просто и понятно - можно получить эстетическое удовольствие от иллюстрации, которую ChatGPT нарисовал к этому тексту.
👍104🔥2🤡1
Пару недель назад мне попался подкаст Лекса Фридмана с Джоэлем Хэмкинсом — длинный разговор о бесконечности, парадоксах и природе математики. Большая часть содержания была знакома, но один сюжет зацепил по-настоящему: бесконечные шахматы.

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

Хэмкинс с соавторами любят составлять задачи в духе шахматных журналов: что-нибудь вроде «мат в три хода», только на бесконечной доске. И дальше начинается самое любопытное.

Они построили позицию, в которой у белых есть выигрышная стратегия — и при этом никакое конечное N не годится как ответ на вопрос «за сколько ходов белые гарантированно победят?». И дело не в том, что партия уходит в бесконечность. А в том, что чёрные сами выбирают во время первого хода, сколько ещё тянуть.
Это уже не «мат в N». Это, в некотором смысле, мат в ω. Белые всё равно выигрывают — сомнений нет. Но чёрные могут сказать: «хотите — через миллион ходов, хотите — через миллиард, хотите — через гуголплекс», получая право самим выбрать размер своей агонии.

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

Слушая именно этот эпизод, я и вспомнил задачу про лягушку и кузнечика, о которой мы говорили раньше, — и понял, как одно связано с другим. Но об этом уже в следующем посте.

А пока — очень советую не пожалеть времени на сам диалог. Два крайне интересных человека разговаривают о по-настоящему красивых вещах.

https://www.youtube.com/watch?v=14OPT6CcsH4

Тут же более формализованная статья Хэмкинса и ко про бесконечные шахматы: https://arxiv.org/pdf/1302.4377
👍93🔥2🤡1🥴1
В аналитике есть старое правило, известное как закон Тваймана. Формулируется просто:

Если результат выглядит слишком интересным — скорее всего, он ошибочный.

Иными словами, когда график внезапно улетает вверх, конверсия растёт как на дрожжах, а новая фича “сломала рынок” за одну ночь — не спешите звать руководителя и писать победный пост.

Сначала проверьте:

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

Когда метрика в AB-тесте растет на 40%, начинающий аналитик открывает шампанское. Опытный аналитик открывает логи.

Wishful thinking шепчет: «Наконец-то получилось».

Закон Тваймана сухо отвечает: «Сначала перепроверь».

Зрелость в аналитике начинается в тот момент, когда на аномально хороший результат ты реагируешь не радостью, а лёгкой тревогой.
👍13🔥65🤡1
Пикейный аналитик
Эту задачу я когда-то подсмотрел у Александра Гутмана и потом использовал в лекции про континуум-гипотезу, которую читал в МГУ в 2021 году. Недавно я задал её ChatGPT. Он справился и кроме того нарисовал мне классную иллюстрацию. Теперь давайте проверим…
А теперь обсудим решение задачи про кузнечика и лягушку, и замкнем все на бесконечные шахматы.

Каждого возможного кузнечика можно задать четырьмя целыми числами: стартовая клетка и постоянный вектор прыжка по двум координатам. Значит, таких кузнечиков счётное число (мы уже знаем, что счетное множество счетных множеств счетно), и всех их можно занумеровать: первый, второй, третий и так далее.

Тогда лягушка делает вещь, которую многие особенно не любят: методично перебирает гипотезы. На (n)-м ходу она прыгает в ту клетку, где в этот момент находился бы кузнечик по (n)-й возможной траектории. Настоящая траектория тоже где-то в списке, значит однажды очередь до неё дойдёт — и на этом карьера кузнечика завершится.

При этом заранее ограничить время поимки никакой общей константой нельзя: искомый кузнечик может оказаться с достаточно большим номером в списке.

А дальше начинается красивая аналогия с шахматами.

Если переписать задачу как игру двух игроков, получается почти карманная версия бесконечных шахмат Джоела Хэмкинса. Первый игрок задаёт стратегию лягушки, второй выбирает траекторию кузнечика.

У второго игрока нет стратегии спасения. Есть только стратегия отсрочки. Он не может избежать поражения совсем, но может сделать так, чтобы его съели через 10 ходов, через 100, через миллион.

Это очень похоже на игровое значение ω: поражение неизбежно, но проигрывающий ещё контролирует длину любой конечной задержки.

Так что задача оказалась не про кузнечика, не про лягушку и даже не про шахматы. Она про то, что бесконечность бывает разной, а иногда всё решает не хитрость, а мощность множества.
👍11😁1🤡1🥴1👻1
Монти Холл, A/B-тесты, вредность подглядывания и wishful thinking

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

Разные вариации парадокса Монти Холла любят спрашивать на аналитических собеседованиях и сейчас мы попробуем понять зачем это нужно.

Парадокс Монти Холла устроен просто. Есть три двери: за одной приз, за двумя пусто. Вы выбираете дверь. Потом ведущий, который знает, где приз, открывает одну из двух оставшихся — обязательно пустую — и предлагает вам поменять выбор. И вам нужно решить, стоит менять дверь, или нет?

Интуиция подсказывает, что теперь шансы 50 на 50, и никакой разницы нет. Но это не так: изначально ваша дверь была правильной с вероятностью 1/3, а две другие вместе — с вероятностью 2/3. Ведущий не случайно убирает пустую дверь, поэтому эти 2/3 не исчезают, а переезжают в оставшуюся закрытую дверь. Менять выбор выгодно.

Ключевой урок тут не про двери, а про процедуру. Вероятность зависит не только от того, что мы увидели, но и от того, как именно это произошло. Значение имеет не просто открытая дверь, а то, что ее открыл информированный ведущий по строгому правилу. В Монти Холле люди игнорируют стратегию ведущего. В A/B-тестах — собственную стратегию остановки.

Команда запускает эксперимент и начинает заглядывать в метрики каждые несколько часов. Утром p-value 0.12, днём 0.08, вечером 0.04 — отлично, вариант B победил, можно останавливаться. На человеческом языке это называется «быстро приняли решение». На статистическом — дали случаю достаточно попыток, чтобы он выдал красивую цифру.

Смотреть на метрики само по себе не проблема. Это можно делать хоть каждые пять минут. Проблема начинается там, где решение принимают по незапланированному промежуточному результату. Уровень значимости 0.05 работает только внутри заранее прописанной процедуры: какая главная метрика, какой горизонт теста, какой объём выборки, какое правило остановки. Если правил нет, эксперимент быстро превращается в слот-машину: дёргаем ручку, пока не выпадет нужная комбинация.

Именно так обычно выглядит wishful thinking в аналитике. Не как подлог и не как откровенная глупость. Гораздо чаще это звучит вполне респектабельно: “давайте посмотрим ещё день”, “почти значимо”, “нужно чуть больше данных”.

Поэтому Монти Холл и плохой A/B-тест — одна и та же история. Люди ошибаются не потому, что не умеют считать, а потому что игнорируют механизм получения информации. И это, пожалуй, самая дорогая форма wishful thinking в аналитике: когда человек уверен, что принимает решение основанное на данных, хотя на самом деле опирается на следы собственного нетерпения.
👍11🔥54🤡2👎1🤬1👻1
Вы бросили честный кубик и накрыли его непрозрачным стаканом. Результата не видно. Хочется спросить: какова вероятность, что там шестерка? Интуиция отвечает — 1/6. Но если быть строгим, вопрос некорректен: бросок уже произошёл и вероятностей больше нет — есть только неизвестный факт.

Мы легко путаем две вещи: случайность эксперимента и наше незнание результата. Пока кубик летит — есть вероятность. Когда он уже лежит под стаканом — остаётся только неопределённость в нашей голове. Вероятность “жила” до броска, а не после него.

Точно такая же путаница возникает с доверительными интервалами. Есть неизвестное среднее — фиксированное, но скрытое от нас. Мы собираем данные и строим интервал. Сам интервал — случайный: он зависит от конкретной выборки, которая могла бы быть другой.

И тут звучит привычная фраза: “с вероятностью 95% среднее лежит в интервале”. Звучит естественно — но это та же ошибка, что и с кубиком. Интервал уже построен, параметр уже имеет значение — он либо внутри, либо нет. Никакой вероятности “внутри интервала” больше нет.

Что тогда означают эти 95%? Это свойство процедуры. Если бы мы много раз повторяли эксперимент и каждый раз строили новый интервал, то примерно в 95% случаев эти интервалы накрывали бы истинное среднее. Но это утверждение имеет смысл только до того, как вы увидели данные и построили конкретный интервал.
👍7🔥32
Media is too big
VIEW IN TELEGRAM
Вчера сходил на мастер-класс по управлению большой командой профессионалов с помощью зубочистки при решении сложных задач.
😁8🔥62
Если долго искать искусственный интеллект, можно обнаружить отсутствие естественного

Ричард Докинз (известный биолог и популяризатор науки) поговорил с Claude и задал неудобный вопрос: если машина пишет стихи, шутит, рассуждает о романах и ведёт себя как сознательный собеседник — что ещё должно произойти, чтобы мы признали за ней что-то похожее на сознание?

Обычно спор об ИИ разворачивают в сторону машины: может ли ИИ думать, понимать, быть сознательным? Но настоящий удар летит в другую сторону.

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

А потом смотрим на человека — и видим другой, намного более сложный, но всё равно физический процесс: нейроны, гормоны, память, язык, воспитание, среда, страх, статус, опыт, привычка, желание оказаться правым.

Мы называем это личностью. Иногда — характером. В торжественных случаях — субъектом со свободной волей. Но где именно в этой цепочке появляется свобода?

Если решение рождается из состояния системы и причин, которые к нему привели, то чем оно принципиально отличается от другого детерминированного процесса — кроме сложности и нашего отношения к нему? Возможно, свобода воли — это не магическая кнопка внутри человека. А имя, которое мы даём достаточно сложному процессу, когда не видим всех его причин.

ИИ неприятен не потому, что он “как человек”. А потому что он показывает: способность выбирать, ошибаться, объяснять и казаться разумным может возникать из механизма.

И тогда вопрос уже не в том, есть ли у механизма душа. А в том, почему мы так уверены, что у нас внутри не механизм.

Мы искали искусственный интеллект и боялись найти в машине человека. Но, похоже, страшнее другое: найти в человеке автокомплит.
🔥8😁65🥴1
Центральная предельная теорема и бесплатные завтраки

Бесплатных завтраков не бывает.

Даже если на двери отеля написано: breakfast included, завтрак не стал бесплатным. Вы за него уже заплатили, он спрятан в цене номера, экономике отеля и аккуратной табличке с ожидаемыми расходами.

Гостю кажется: «Завтрак бесплатный». Отельеру кажется: «Лишь бы они не съели нас самих». А аналитику кажется: «Перед нами случайная величина».

На уровне одного человека всё выглядит тревожно.

Один берёт кофе и круассан. Второй — омлет, сыр, йогурт, фрукты и три булочки «на потом». Третий приходит только за арбузом. Четвёртый проспал. Пятый набирает тарелку так, будто лично решил проверить финансовую модель отеля на прочность.

Если смотреть на каждого отдельно, предсказать расходы почти невозможно. У людей разный аппетит, разные привычки и разное понимание слова «включено».

Но отелю не нужно угадывать, сколько съест гость из номера 67. Ему нужно понимать, сколько в среднем съедят сотни гостей. И тут появляется центральная предельная теорема.

Она не говорит, что отдельные люди начнут вести себя нормально. Не начнут. Кто-то всё равно положит на тарелку семь круассанов, хотя объективно способен съесть два. ЦПТ говорит другое: если наблюдений достаточно много, среднее начинает вести себя приличнее, чем каждое наблюдение по отдельности.

Один человек у шведского стола — хаос. Сто человек — уже статистика.

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

Центральная предельная теорема — это не про то, что мир нормален. Мир не нормален. Люди у бесплатного буфета — тем более.

ЦПТ скорее про то, что при достаточно большом числе наблюдений среднее начинает вести себя так, будто в мире всё-таки есть порядок.

Поэтому мораль простая: Бесплатных завтраков не бывает. Есть только завтраки, чья средняя стоимость при достаточно большом N становится статистически управляемой.

А если один гость съел на 40 евро, это ещё не катастрофа. Возможно, это просто человек, который не уважает дисперсию.
👍4😁43🔥3🥴1
Церковь 95% доверительного интервала

В Рейкьявике есть место, где должен побывать каждый уважающий себя аналитик.

Официально оно называется Хадльгримскиркья — Hallgrímskirkja, лютеранская церковь в центре города, самая большая церковь Исландии и один из главных символов города.

Её башня поднимается почти на 74 метра. Фасад напоминает базальтовые колонны, застывшую лаву или гистограмму, которую внезапно допустили к сакральной архитектуре.

Строили церковь 41 год: начали в 1945-м, закончили в 1986-м. То есть примерно столько же, сколько иногда занимает согласование корректной метрики между продуктом, аналитикой и бизнесом. Но главное не это. Главное, что для аналитика Хадльгримскиркья подозрительно напоминает 95% доверительный интервал.

Она стоит посреди Рейкьявика торжественно и уверенно, как аккуратно построенная статистическая процедура. Кажется, что если уж что-то и может накрыть истину, то только она: высокая, строгая, симметричная, устремлённая в область статистической значимости.

Любой аналитик знает:
95% — это не 100%. Доверительный интервал может выглядеть так, будто в нём поместилась вся реальность. Но где-то снаружи всё равно остаются те самые 5%. На холодном исландском ветру. И тихо улыбаются каждому аналитику, который слишком рано поверил в свой результат.

Именно поэтому перед Хадльгримскиркьей хочется не просто фотографироваться, а слегка задуматься. А ещё — возможно — помолиться за p-value. Но только осторожно.

Потому что 95% доверительный интервал — это не храм истины. Это красивая архитектура осторожности. Он не говорит: «истина точно здесь». Он говорит: «эта процедура часто накрывает истину, но иногда промахивается».

Будете в Рейкьявике обязательно зайдите к Хадльгримскиркье. Не только как турист. А как человек, который помнит:
даже самый красивый интервал оставляет место для ошибки.
9👍9🔥6
Что почитать, чтобы выучить Python?

Python часто называют простым языком. И это, конечно, правда — если под «выучить» понимать способность написать print("Hello, world!") и почувствовать лёгкое тепло профессиональной пригодности.

Но Python становится по-настоящему интересным чуть позже: когда выясняется, что за дружелюбным синтаксисом живут списки, словари, функции, вложенные структуры, ошибки и код, который через неделю смотрит на вас как чужой.

Поэтому ставку лучше делать не на один курс, который обещает просветление за выходные, а на несколько нормальных опор: практику, справочник, документацию и привычку писать читаемый код.

Поколение Python: курс для начинающих

Это хороший тренажёр для базового синтаксиса: условия, циклы, строки, списки, функции и простые задачи. Его главная ценность — не в том, что там откроют тайное знание древних питонистов, а в том, что там придётся много писать код руками.

А Python, как и математика, плохо учится созерцанием. Нельзя просто посмотреть на цикл for и решить, что теперь вы им владеете. Нужно ошибиться с отступами, забыть двоеточие, перепутать = и ==, получить странный результат — и только потом начать понимать, что компьютер не ошибается. Он просто буквально исполняет то, что ему написали.

Хендбук Яндекс Образования: Основы Python

Хендбук — это русскоязычная опора и нормальный справочник. Его удобно держать рядом, когда нужно быстро восстановить тему: типы данных, строки, списки, словари, множества, функции, основы устройства языка.

Это важный профессиональный навык: перестать стыдиться справочников. Хороший аналитик не обязан помнить все методы списков наизусть. Он обязан быстро найти, проверить и правильно применить. Стыдно не подсмотреть. Стыдно уверенно написать неправильно.

Официальный Python Tutorial

Официальная документация приучает к первоисточникам. Новички часто её боятся, как будто там сидят настоящие программисты в мантиях и не пускают тех, кто ещё путает append и extend. На деле tutorial вполне читаемый и особенно полезен на базовых темах.

Документация хороша тем, что не пытается развлечь. Она просто объясняет, как устроен язык: условия, циклы, функции, структуры данных.

Поколение Python: курс для продвинутых

Этот курс полезен после базы — особенно темы про словари, множества, вложенные списки, матрицы, файлы и модули. Для аналитика это уже почти работа с настоящими данными, только ещё без тяжёлой артиллерии вроде pandas.

Словарь — это маленькая модель данных. Множество — способ думать об уникальности и пересечениях. Вложенная структура — напоминание, что реальность редко приходит в виде аккуратного списка с подписью «проанализируй меня». До датафреймов полезно научиться думать структурами, иначе pandas станет не инструментом, а ширмой.

PEP 8 — Style Guide for Python Code

PEP 8 напоминает простую, но болезненную вещь: код должен быть не только исполняемым, но и читаемым. Не надо превращать пробелы вокруг операторов в религию, но базовую гигиену лучше усвоить сразу: понятные имена, нормальные отступы, аккуратные функции, читаемая структура.

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

Python хорош тем, что быстро создаёт иллюзию прогресса. Уже через пару дней можно писать циклы, списки и функции, а ещё через неделю — смотреть на свой код с выражением человека, который случайно открыл маленькую IT-компанию внутри ноутбука.

Но язык программирования выучен не тогда, когда код запустился. И даже не тогда, когда он выдал правильный ответ. Он выучен чуть позже: когда вы понимаете, почему этот ответ правильный, где он может сломаться, и можете объяснить свой код человеку, который не присутствовал при его героическом написании в два часа ночи.

Компьютер, конечно, выполнит почти всё. Вопрос только в том, сможете ли вы потом понять, что именно вы его попросили сделать.
👍73🔥1🤡1
Как провалить собеседование на границе python и pandas

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

Потому что в голове python и pandas часто живут как один большой язык программирования. А на деле это два разных государства с общим алфавитом и вечными пограничными конфликтами.

Python говорит: возьми объект, проверь условие, вызови метод, перейди к следующему. Pandas отвечает: работай колонками, думай масками, уважай индекс и не трогай строки руками без крайней необходимости.

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

Главная ловушка здесь не в синтаксисе, а в модели мышления. В Python мы часто думаем: «возьму один элемент и что-то с ним сделаю». В pandas надо думать иначе: «опишу операцию над всей колонкой или таблицей сразу».

Поэтому на собеседовании быстро видно, кто действительно работал с данными, а кто просто видел pandas в учебнике. Первый ищет маску, группировку, merge, transform, agg. Второй начинает шаманить через for, iterrows, ручную сборку списков и промежуточные переменные, после которых код выглядит так, будто просит эвтаназии.

Есть и вторая часть проблемы. У нас open-book собеседования: можно смотреть документацию, пользоваться поисковиком, проверять методы и синтаксис. Никто не ждёт, что кандидат держит весь pandas в оперативной памяти, как священный свиток.

Но open-book не означает open-brain.

И вот тут начинается самое интересное. Кандидат застревает на pandas, открывает поиск — и пишет запрос со ключевым словом python.

Нужно привести колонку строк к нижнему регистру — он ищет: python lowercase column. Нужно отфильтровать строки DataFrame по условию — он ищет: python filter rows by condition.

И поисковик честно отвечает на тот вопрос, который ему задали. Приносит строки, списки, циклы, filter, lambda и прочий уютный питонячий быт. Только вопрос был не про Python-объект. Он был про pandas-структуру.

Вместо того чтобы искать pandas Series lowercase strings, человек ищет «как сделать lower в Python». Вместо pandas filter DataFrame by column condition — «как отфильтровать список в python».

А потом начинается лечение pandas python-таблетками. Пациент крепится, но выглядит всё хуже.

Проблема здесь не в том, что кандидат «не умеет гуглить». Проблема тоньше: он не понимает, на языке какой библиотеки надо формулировать вопрос.

Поиск — это не волшебная палочка. Это зеркало вашего понимания задачи. И если в задаче pandas, а в запросе python, то проблема уже не в синтаксисе.
👍102🔥1😁1
10 книг, чтобы вкатиться в Data Science

Я попросил ChatGPT собрать книжную полку для входа в DS по направлениям: математика, статистика, Python, ML, deep learning, визуализация, A/B-тесты и MLOps.

Получилась, как водится, библиотека александрийского масштаба. Поэтому дальше я попросил вытащить из неё короткий must-read список:

1. Mathematics for Machine Learning — Marc Peter Deisenroth, A. Aldo Faisal, Cheng Soon Ong
2. Naked Statistics — Charles Wheelan
3. All of Statistics — Larry Wasserman
4. Python for Data Analysis — Wes McKinney
5. Python Data Science Handbook — Jake VanderPlas
6. Hands-On Machine Learning — Aurélien Géron
7. Introduction to Statistical Learning — Gareth James, Daniela Witten, Trevor Hastie, Robert Tibshirani
8. Storytelling with Data — Cole Nussbaumer Knaflic
9. Trustworthy Online Controlled Experiments — Ron Kohavi, Diane Tang, Ya Xu
10. Designing Machine Learning Systems — Chip Huyen

На всякий случай: это не “моя священная десятка” и не канон, за который я готов сражаться в комментариях до последнего.

Я просто попросил нейросеть собрать вменяемую полку по направлениям, а потом немного причесал результат. Так что если вашей любимой книги там нет — это не я её оскорбил, это искусственный интеллект снова проявил отсутствие естественного.

Полный список с разбивкой по направлениям и ссылками на книги — здесь:

https://datascience.xyz/practice/knizhnaya-polka-dlya-vhoda-v-data-science.html

А в комментариях можно продолжить комплектовать эту библиотеку: добавляйте книги, которые вам кажутся важными, спорными, недооценёнными или просто когда-то спасли вашу аналитическую душу.

Потому что Data Science — это не умение вызвать model.fit().

Это умение понять, что именно ты натворил после того, как вызвал model.predict().
👍6🤡32🔥1👻1
Весь интернет пестрит историей о том, как чувак выложил картину Клода Моне, обманул всех тем, что она сгенерирована ИИ и собрал много смешных комментариев. Я эту картину конечно же не генерировал. Тут вопрос в другом — это Моне или Мане?
😁73🔥1
Пикейный аналитик
Весь интернет пестрит историей о том, как чувак выложил картину Клода Моне, обманул всех тем, что она сгенерирована ИИ и собрал много смешных комментариев. Я эту картину конечно же не генерировал. Тут вопрос в другом — это Моне или Мане?
Раз вы не хотите угадывать, вот вам правильный ответ. Картина называется "Моне рисует в своей лодке-мастерской", 1874 год. Художник Эдуард Мане. Так что это и Моне, и Мане.
3😁3👍1
Anthropic рассказали, как их финансовая команда использует Claude для подготовки материалов для совета директоров, ежемесячных финансовых обзоров и проверки финансовых моделей.

Claude используют как слой контроля между цифрами и историей. Он проверяет, что комментарий на одном слайде не противоречит цифре на другом, что метрики определены, что выводы согласованы с последней версией данных, а ежемесячный финансовый обзор написан в том же стиле, что и в прошлые месяцы. Плюс Claude помогает разбирать финансовые модели в Excel: искать, почему не сходится баланс, где поехали ссылки между листами и какие драйверы сильнее всего влияют на итоговый результат.

В статье утверждают, что это освобождает 10–20 часов в неделю — не для того, чтобы финансисты перестали думать, а чтобы они думали не о механической сверке, а о формулировке управленческой истории, сценариях и выводах для CFO и совета директоров.

Это хороший пример зрелого применения LLM в аналитике. Не «ИИ сейчас всё посчитает вместо вас», а «ИИ поможет не развалить нарратив, пока цифры обновляются в седьмой раз за утро». Claude, судя по статье, занимается именно этим: делает то, что обычно делает уставший аналитик перед советом директоров — проверяет, не поехала ли история вокруг цифр.

Разница только в том, что Claude не моргает, не пьёт третий кофе и не говорит: «да вроде норм».
👍73🔥1
Есть старая управленческая мудрость: если вы поняли, что скачете на мёртвой лошади, лучшая стратегия — слезть.

Лошадь в нашей истории изначально была живой. Она везла. Может быть, не идеально, не всегда быстро, иногда с характером, но везла именно за счёт того, что была живой.

А потом эффективный менеджмент решил, что живое — это слишком дорого.

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

Особенно изящно это выглядит в образовании.

Потому что там всегда можно убедить себя, что процесс работает: контент лежит, платформа открывается, тесты проверяются, отчёты зеленеют. Значит, студент учится. Но он не учится, он доходит.

Образование — это не библиотека методичек с личным кабинетом. Контента сегодня больше, чем здравого смысла. Настоящая ценность была не в том, что где-то записан очередной урок, а в человеке рядом: который видит, где студент застрял, где испугался, где делает вид, что понял, и где ему нужно не ещё одно уведомление, а нормальный разговор.

Когда это все начинают резать, продукт не становится технологичнее. Он просто теряет то, ради чего его выбирали.

Можно долго говорить про эффективность, ИИ, новые процессы и зрелость аудитории. Но если из супа вынуть мясо, а воду назвать «облегчённой гастрономической платформой», это всё равно будет вода.

И где-то в этот момент пикейный аналитик обычно закрывает ноутбук.

Не потому, что он против прогресса. А потому что умеет отличать технологическую трансформацию от банального удешевления продукта с хорошей легендой для клиентов.

Но что останется от продукта, если убрать именно ту часть, ради которой его и покупали?

И если лошадь пока ещё дышит, но вокруг неё уже уверенно пилят конюшню на KPI, кажется, самое время спешиваться.
15🔥5👍4👎2
Google I/O — ежегодная конференция Google для разработчиков, где компания показывает ключевые технологические анонсы: от Android и поиска до облака, AI и новых пользовательских продуктов. В 2026 году Google I/O прошла на неделе 20 мая 2026 года, а Google опубликовал подборку из 100 главных анонсов события. В этот раз центральной темой стали не отдельные приложения, а AI-агенты, которые должны встроиться почти во все поверхности Google: поиск, браузер, почту, документы, YouTube, шопинг, разработку и креативные инструменты.

Если смотреть не на отдельные фичи, а на общую архитектуру, картина получается довольно простая: Google больше не показывает «ещё одного чат-бота». Он показывает новый слой между человеком и интернетом. Раньше мы искали информацию, потом спрашивали у модели, теперь Google хочет, чтобы агент сам ходил по интернету, собирал данные, сравнивал варианты, строил интерфейсы, следил за изменениями, писал код, покупал товары и возвращался с уже упакованным результатом. Не поиск, а делегирование. Не выдача ссылок, а выполнение задачи.

Технический мотор этой конструкции — новые модели Gemini: Gemini 3.5 Flash для длинных агентных задач и Gemini Omni для мультимодального сценария «любой вход → любой выход»: текст, изображение, видео, аудио, монтаж, аватар, голос, стиль. Но главный продуктовый сдвиг — это AI Search. Поиск должен работать с текстом, изображениями, файлами, видео и вкладками Chrome, а дальше не просто отвечать, а собирать под задачу таблицы, графики, визуализации, интерактивные блоки и мини-приложения. То есть поиск перестаёт быть страницей результатов и становится генератором интерфейсов.

Следующий шаг — information agents, агенты внутри поиска, которые работают в фоне: следят за темами, проектами, ценами, новостями, финансами, покупками и спортом, а потом присылают синтезированные обновления. Раньше пользователь приходил в поиск, когда у него появлялся вопрос. Теперь поиск должен сам следить за миром и приходить к пользователю, когда что-то изменилось. Тот же принцип Google переносит в почту, календарь, документы, заметки и шопинг: утренняя сводка дня, умная корзина, персональный агент поверх цифровой жизни.

На фоне конкурентов Google выглядит не самым громким, но, возможно, самым инфраструктурным игроком. OpenAI строит нового собеседника и coding-агента, Anthropic — аккуратного профессионального коллегу, Meta — социального AI-двойника внутри своих платформ, Microsoft — офисного сотрудника в корпоративном контуре, Apple — приватного личного ассистента в кармане. А Google пытается собрать всё сразу: поиск, браузер, Android, Gmail, Docs, Photos, YouTube, Shopping, Cloud, разработку, генеративное видео и персональных агентов. Иначе говоря, Google строит не приложение, а новую нервную систему интернета.

Главный вывод: Google I/O 2026 — это не презентация набора AI-фич, а демонстрация архитектурной претензии. Google хочет, чтобы пользователь всё меньше работал с интернетом напрямую: не искал ссылки, не открывал десятки вкладок, не сравнивал таблицы, не мониторил изменения и не держал в голове контекст дня. Всё это должен делать агент. Если эта архитектура взлетит, мы будем пользоваться уже не интернетом, а агентом, который пользуется интернетом за нас.

На поверхности это выглядит как удобство: меньше рутины, меньше переключения контекста, меньше ручной сборки информации. Но под поверхностью меняется главное — точка принятия решения. Когда поисковик выдавал ссылки, пользователь ещё мог выбирать маршрут. Когда агент возвращает готовый синтез, таблицу, рекомендацию, покупку, письмо, код или вывод, пользователь получает уже не карту территории, а заботливо проложенную траекторию. Подробнее — в большом разборе на datascience.xyz. А у нас остаётся только один старомодный, почти неприличный вопрос: кто именно будет пользоваться нами?
👍5🔥32