Data&Knowledge
130 subscribers
25 photos
21 files
160 links
Работаем с данными
Download Telegram
MLovember и Deepember.

Я, кстати, подумываю сделать еще две штуки, подобных статябрю. Первая — MLovember, про machine learning. Попытаюсь рассматривать по одному алгоритму в день. Буду рад, если кто подскажет, какие алгоритмы точно стоит рассмотреть. Вторая — Deepember про deep learning. Тут идея будет немного другой: хочу каждый день брать новую NLPßзадачу и пытаться выдать хорошее решение за 3 часа. Опять же, буду рад, если кто-нибудь поделится крутыми задачами с Kaggle или откуда-нибудь еще.

Никакие другие месяцы я коверкать больше не планирую, честно 😀

Касательно MLovember и Deepember — как вам идея? Мне нравится текущий формат, но я понимаю, что для группы он может быть слишком поверхностным. Стоит ли выбрать меньше алгоритмов/задач? Или лучше, пусть и поверхностно, обозреть больше алгоритмов?
Статябрь. День 18. Критерий Хи-квадрат Пирсона.

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

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

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

Ссылка на доп. материал: https://bigenc.ru/c/polinomial-noe-raspredelenie-be9c62

#статябрь #статябрь2025 #statober #statober2025
Статябрь. День 19. Дисперсионный анализ для связанных выборок.

Ранее мы рассмотрели идею дисперсионного анализа для несвязанных выборок. Например, с его помощью мы могли определить, существует ли разница между несколькими видами лекарств в нескольких разных группах пациентов. В дисперсионном анализе для связанных выборок группа испытуемых будет одна, а вопросы нас будут интересовать, к примеру, следующие: 1. Как группа испытуемых воспринимает некое воздействие через разные интервалы времени. 2. Какие изменения можно наблюдать в одной и той же группе испытуемых при разных воздействиях.

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

Ссылка на доп. материал: https://statistics.laerd.com/statistical-guides/repeated-measures-anova-statistical-guide.php

#статябрь #статябрь2025 #statober #statober2025
👍1
Статябрь. День 20. Критерий Фридмана.

Ранее мы рассмотрели дисперсионный анализ для связанных выборок. Идея, лежащая в основе этого теста, заключается выделении из общей ошибки внутри группы вариативности, вносимой каждым членом выборки. Критерий Фридмана является расширением критерия Уилкоксона для связанных выборок с порядковыми данными.

Идея критерия следующая. Пусть у нас есть данные по одной выборке, взятые в разные интервалы времени. Например, самочувствие пациента после принятия медикамента через 10, 20 и 30 дней. Первым делом нам необходимо проранжировать данные для каждого пациента — то есть заменить исходные значения их рангами (дать им места с 1 по 3).

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

При достаточно большом числе испытуемых статистика Фридмана аппроксимируется распределением хи-квадрат.

Ссылка на вики с примером: https://ru.wikipedia.org/wiki/%D0%9A%D1%80%D0%B8%D1%82%D0%B5%D1%80%D0%B8%D0%B9_%D0%A4%D1%80%D0%B8%D0%B4%D0%BC%D0%B0%D0%BD%D0%B0

#статябрь #статябрь2025 #statober #statober2025
👍1
Статябрь. День 21. Q-критерий Кохрена.

Сегодня у нас на очереди довольно специфичный критерий. Предположим, что у нас есть бинарные ответы. К примеру, мы спрашиваем у человека, является ли показанная ему картинка сгенерированной AI (да/нет). Мы повторяем этот опыт с несколькими людьми. Как же нам понять, есть ли у нас статистические различия между представленными картинками?

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

Затем в знаменателе мы ищем меру вариативности для каждого участника — сумму по всем участникам их внутрисубъектных разбросов. В этом плане идея довольно похожа на уже известный нам дисперсионный анализ. Однако, стоит отметить, что в отличие от дисперсионного анализа наша статистика будет иметь распределение, которое можно апроксимировать хи-квадратом.

Вики: https://ru.wikipedia.org/wiki/Q-%D0%BA%D1%80%D0%B8%D1%82%D0%B5%D1%80%D0%B8%D0%B9_%D0%9A%D0%BE%D1%85%D1%80%D0%B5%D0%BD%D0%B0

#статябрь #статябрь2025 #statober #statober2025
👍2
Статябрь. День 22. Коэффициент корреляции Пирсона.

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

Один из методов нахождения линейной корреляции — вычисление коэффициента корреляции Пирсона. Он показывает, насколько велика зависимость между данными в диапазоне от -1 до +1. При этом коэффициент, равный нулю, будет означать отсутствие линейной зависимости между данными, коэффициенты +1 и -1 — говорить о том, что данные в выборках имеют идеальную линейную функциональную связь. Пример обратной линейной связи при коэффициенте -1: при увеличении расстояния от центра на 1000 метров цена квартиры падает на 200000 рублей, при увеличении на 2000 — на 400000.

Вычисляется коэффициент корреляции Пирсона как следующее отношение. В знаменателе стоит корень произведения сумм квадратов разностей двух выборок, в числителе же — ковариация — среднее произведение отклонений значений двух выборок от их средних. Для него, кстати, можно вычислить p-value, и посмотреть, является ли оно значимым. Оно основано на t-статистике, которая подчиняется распределению Стьюдента.

#статябрь #статябрь2025 #statober #statober2025
👍1
Локальный Data Community Club.

Сегодня я сходил в локальный Data Community Club. Он создан альянсом местных вузов и исследовательских организаций. Идея проекта — провести серию встреч для нетворкинга и обмена знаниями в области data science.

Я посетил два мероприятия. На первом выступал дата-журналист, работающий в окологосударственной телерадиокомпании. Вместе с командой он создаёт статьи на основе данных. Например, о том, как растет стоимость аренды в последние годы или какой уровень воды сейчас наблюдается в разных частях Германии. Честно говоря, я так и не понял, чем дата-журналист отличается от просто дата-энтузиаста. Мне кажется, работы последних зачастую на голову выше и интереснее.

Второе мероприятие проходило сегодня в формате "мирового кафе". Идея этого метода в том, что участники распределяются по столам, каждый из которых обсуждает свой вопрос. Через какое-то время люди переходят за другие столы. В нашем случае у каждого стола был свой эксперт и группа модераторов дискуссии. Тема столов были следующие: Statistical methods, Machine Learning, GenAI, Explainable AI, NLP. Я посидел у NLP и Statistical methods.

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

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

В общем, было круто, что собралось столько энтузиастов наук о данных (человек 40). Было не круто, что получилось как-то бесцельно. И для меня до сих пор большой вопрос: как организовать общение в группе людей, объединенных интересом, но не общей целью?
🎉1
Статябрь. День 23. Коэффициент корреляции Спирмана.

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

Вывод формулы коэффицента Спирмана и примеры различных коэффициентов корреляции можно найти здесь: http://www.machinelearning.ru/wiki/index.php?title=%D0%9A%D0%BE%D1%8D%D1%84%D1%84%D0%B8%D1%86%D0%B8%D0%B5%D0%BD%D1%82_%D0%BA%D0%BE%D1%80%D1%80%D0%B5%D0%BB%D1%8F%D1%86%D0%B8%D0%B8_%D0%A1%D0%BF%D0%B8%D1%80%D0%BC%D0%B5%D0%BD%D0%B0

#статябрь #статябрь2025 #statober #statober2025
👍2
Learning Machine Learning

Список тем на следующие два месяца по машинному обучению. Планирую на каждую тему подготовить небольшой ноутбук с примерами на Python. Если вы знаете крутые ресурсы по ML с задачками, датасетами или теорией - делитесь в комментариях 🙂

1. Линейная регрессия (Linear Regression)
2. Регрессия с регуляризацией (Ridge, Lasso)
3. Логистическая регрессия (Logistic Regression)
4. Наивный Байес (Naive Bayes)
5. Деревья решений (Decision Trees)
6. Случайный лес (Random Forest)
7. Адаптивный бустинг (AdaBoost)
8. Градиентный бустинг (Gradient Boosting — XGBoost, LightGBM, CatBoost)
9. Машины опорных векторов (Support Vector Machines, SVM)
10. K-ближайших соседей (K-Nearest Neighbors, KNN)
11. K-Means
12. Иерархическая кластеризация (Hierarchical Clustering)
13. DBSCAN (Density-Based Spatial Clustering of Applications with Noise)
14. Метод главных компонент (Principal Component Analysis, PCA)
15. Линейный дискриминантный анализ (Linear Discriminant Analysis, LDA)
🎉4
Статябрь. День 24. Коэффициент Крамера.

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

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

Вики: https://en.wikipedia.org/wiki/Cram%C3%A9r%27s_V
Пример: https://studfile.net/preview/1091717/page:2/

#статябрь #статябрь2025 #statober #statober2025
👍1
Статябрь окончен.

Я решил окончить статябрь: последние темы либо не слишком значимы (проверка на нормальность), либо уже частично пройдены в других разделах (F test), либо достаточно сложны, чтобы уложиться в один день (дни 25, 26, 30). Из оставшихся я рекомендую самостоятельно ознакомиться с Cohen's kappa, потому что он вводит новую достаточно интересную концепцию в статистике.

Давайте подведем итог. В течение 24 дней я с разным успехом готовил материал по статистическим методам и понятиям. Из плюсов — я повторил и лучше понял все эти тесты. Из минусов — пожалуй, было крайне сложно подготавливать что-то осмысленное за 1-2 часа: хотелось показать и интуицию теста, и крутые примеры, и формулы — на все это просто не хватало времени. Отдельно хочу отметить, что хотелось бы, чтобы весь пост был в телеграме: чтобы человеку не надо было выключаться из потока и переключаться на сторонний ресурс. Думаю, это проблему можно решить публикацией материала в виде серии картинок.

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

В общем, я настроен оптимистично. Ну а в ноябре мы примемся за машинное обучение 🙂

#статябрь #статябрь2025 #statober #statober2025
👍3🎉2
Learning Machine Learning

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

Чат в тг по python: https://t.me/learnpythonforfun_chat
Чат в тг по данным: https://t.me/datascienceforfun_chat
🎉3
Data&Knowledge pinned «Learning Machine Learning Список тем на следующие два месяца по машинному обучению. Планирую на каждую тему подготовить небольшой ноутбук с примерами на Python. Если вы знаете крутые ресурсы по ML с задачками, датасетами или теорией - делитесь в комментариях…»
Learning Machine Learning. Линейная регрессия.

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

Объяснение: https://www.youtube.com/watch?v=_PlC8Niun7U
Задача: предсказать цену дома на датасете https://www.kaggle.com/datasets/camnugent/california-housing-prices

Примеры решения можно найти во вкладке Code по запросу Linear regression. И там надо будет разбираться 🙈

Буду рад вопросам и ответам в комментариях.

#LearningMachineLearning2025 #LearningMachineLearning
👍1
Как у вас успехи с линейной регрессией?

В прохождении машинного обучения я на одну тему выделил пять часов. Мне казалось, что линейная регрессия довольно простая тема - мы пытаемся апроксимировать наблюдения "линией", находим, какие коэффициенты факторы наиболее сильно влияют на некую целевую переменную. В общем, я думал, что с ней будет довольно просто. Но я начал читать и понял, что половину вещей я забыл или не знал. Вот вам несколько вопросов, которые не дают мне сейчас покоя:
- Что такое коллинеарность и как её находить в данных?
- Как использовать остатки для проверки?
- Как использовать коэффициент детерминации для нахождения коллинеарности?
- Какие нелинейные преобразования можно использовать над данными?
- Какие есть функции правдоподобия для подбора наиболее подходящей прямой или плоскости?
- В чем их преимущества и недостатки?
- Как определяется значимость коэффициентов линейной регрессии и доверительные интервалы?
- Какая статистика используется для нахождения значимости коэффициентов и почему?
В общем, пяти часов не хватает даже на линейную регрессию😀
👍1
Практика по линейной регрессии.

Я вам тут накидал небольшой ноутбук, чтобы было легче начать анализировать. Если вы посмотрели видео из прошлого поста, то у вас начнут появляться вопросы. Ответы на некоторые из них можно найти в книжке "Введение в статистическое обучение с примерами на языке Python" от
Гарет Джеймс и др. Я нашел её здесь: https://annas-archive.org/md5/e9d11665dbd051585a2eff1f58407de5

Задача: предсказать цену дома на датасете https://www.kaggle.com/datasets/camnugent/california-housing-prices

Мой ноутбук: https://colab.research.google.com/drive/1yPCY4O6fLEXsjzJ02Vj6oc3mBLsaPk2y?usp=sharing
👍1
Learning Machine Learning. Регрессия с регуляризацией (Ridge, Lasso).

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

Короткое объяснение: https://www.youtube.com/watch?v=C98SRCZfgkk
Задача все та же: предсказать цену дома на датасете https://www.kaggle.com/datasets/camnugent/california-housing-prices
Теперь необходимо посмотреть, как регулризация влияет на получаемое решение.

Буду рад вопросам и ответам в комментариях.

#LearningMachineLearning2025 #LearningMachineLearning
👍1
Очередной стартап-хакатон.

Я тут сходил на очередной стартап-хакатон, теперь на тему космоса. Снова в течение трёх дней нам надо было сначала разделиться на команды, а затем разработать идею. Идеи были у людей разные, я выделю те, которые победили:

🥉3 место. Запуск спутников вокруг Луны,
🥈2 место. Уборка космического мусора с помощью роя дронов/спутников,
🥇1 место. AI-ассистент для помощи в разработке hardware.

У нашей команды была следующая идея: делать разметку фотографий Земли прямо на спутнике. Иными словами, если мы на спутнике обнаружили возгорание в лесу, то мы сразу отправляем короткое сообщение 'ОГОНЬ' + координаты вместо долгой передачи самого снимка. Если коротко, то у нас не получилось разработать эту идею в хорошую презентацию. Основная причина: мы не смогли наладить внутрикомандное взаимодействие.

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

#стартап #хакатон
👍1
Опасный анализ данных

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

В общем, человеку в качестве курсового проекта нужно было выявить факторы, влияющие на отчисляемость студентов. Мы почитали литературу и решили следующее:
1. Поскольку на отчисляемость сильнее всего влияет успеваемость, то мы будем исследовать факторы, влияющие непосредственно на успеваемость.
2. Факторы для проверки мы выбрали из литературы: мотивация учащегося, доступность онлайн-материалов и т.д.
3. Для анализа мы решили использовать линейную регрессию.
Мы подобрали 18 факторов, собрали около 30 ответов (из запланированных 180) и начали анализ. Всё шло по плану, пока не произошло неожиданное вмешательство.

Тут надо сделать короткое отступление. Цель этого проекта: решение реальной проблемы. ВУЗ пытается сделать хорошее дело, давая студентам решать "с нуля" настоящие задачи. Студенты сами выбирают метод решения, ищут литературу, сами анализируют и предлагают решение на основе данных.

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

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

Вопрос: Как бы вы отреагировали на такую ситуацию, если бы это был ваш проект? Как грамотно решать подобные вопросы при проведении опросов для реальных задач?
Идея на следующий стартап-хакатон

Я же решил, что хочу в апреле пойти на стартап-хакатон уже со своей идеей. И есть одна идея, которая фактически вряд ли реализуема, но очень меня привлекает:

На основе данных с разных сенсоров (смарт-часы, ЭЭГ, давление, опросы пользователя) оценивать состояние здоровья пользователя. На основе этих данных:
- давать рекомендации пользователю по диете и упражнениям,
- предоставлять рекомендации, к какому врачу обратиться,
- давать врачу краткую выжимку о проблемах пользователя.

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

В этот раз список будет довольно коротким:

1. Найти работу. Моя учеба закончена, поэтому я активно учу немецкий и ищу вакансии. Хотелось бы найти позицию в академии, но если не получится, то буду искать вакансии дата аналитиков. А еще я пишу грантовую заявку, чтобы мне дали денег на собственный ресерч при универе.

Хотелось бы пройти многое: machine learning, NLP, logics, time-series analysis, Bayesian statistics, но я понятия не имею, как пойдет с моим трудоустройством. В общем, год для меня будет по-своему интересными. Всех с наступающим Новым Годом!
🎉3