Наткнулся тут на сборник гайдов по изучению data science, много ссылок с комментариями:
https://github.com/HorusHeresyHeretic/ReadMe
https://github.com/HorusHeresyHeretic/ReadMe
GitHub
GitHub - HorusHeresyHeretic/ReadMe: Тот самый [гайд от подписчика по изучению Data Science] из FAQ чата python_beginners это мануал…
Тот самый [гайд от подписчика по изучению Data Science] из FAQ чата python_beginners это мануал по подготовке к изучению учебных материалов учебного курса ODS RTFM - HorusHeresyHeretic/ReadMe
Я всё дальше погружаюсь в нору t-test. Нашел интересное видео 13-летней давности: https://www.youtube.com/watch?v=3OrCvZLMEek
Человек коротко описывает четыре распределения. Мне интересно, исходит ли требование к нормальному распределению средних из самой формулы т-статистики. Так же как раз в числителе среднее, которое и должно быть распределено нормально. Надо будет опять почитать работу Стьюдента (Госсета), ЦПТ и доказательства сходимости t-распределения к нормальному.
Человек коротко описывает четыре распределения. Мне интересно, исходит ли требование к нормальному распределению средних из самой формулы т-статистики. Так же как раз в числителе среднее, которое и должно быть распределено нормально. Надо будет опять почитать работу Стьюдента (Госсета), ЦПТ и доказательства сходимости t-распределения к нормальному.
YouTube
6 Inference I: What is a chi square and F distribution? What is a T distribution?
Statistical inference: Why use a z, t, F, or chi square distribution? In part I, you can see where these come from. In Part J we look at some common statistical tests, and you get to see why they have a particular distribution.
Link to the next video:…
Link to the next video:…
Статья на википедии про распределение выборочного среднего:
https://en.wikipedia.org/wiki/Sampling_distribution
Распределение выборочного среднего зависит от:
- распределения в генеральной совокупности,
- процедуры выборки,
- размера выборки.
Даже если распределение генеральной совокупности ненормальное, то распределение выборки может быть близким к нормальному.
Для примерного установления распределения выборки можно использовать бутстрэп, метод Монте-Карло или положиться на асимптотическое распределение (https://en.wikipedia.org/wiki/Asymptotic_distribution).
https://en.wikipedia.org/wiki/Sampling_distribution
Распределение выборочного среднего зависит от:
- распределения в генеральной совокупности,
- процедуры выборки,
- размера выборки.
Даже если распределение генеральной совокупности ненормальное, то распределение выборки может быть близким к нормальному.
Для примерного установления распределения выборки можно использовать бутстрэп, метод Монте-Карло или положиться на асимптотическое распределение (https://en.wikipedia.org/wiki/Asymptotic_distribution).
Wikipedia
Sampling distribution
probability distribution of a sample statistic
Иными словами, на мой взгляд, мы можем использовать t-test, когда более менее уверены, что распределение генеральной совокупности близко к нормальному. Я думаю, что это можно установить несколькими способами:
1. Убедиться, что не было ошибок при формировании выборок. Эти ошибки могут убрать нормальность.
2. Проверить для начала, а не нормальна ли сама выборка. Посмотреть на коэффициенты ассиметрии (skewness) и эксцесса (kurtosis). Думаю, можно и проверить тестами Шапиро-Уилка или Колмогорова-Смирнова.
3. Проверить методом бутстрэпа на нормальность распределения выборочных средних.
Не очень-то густые инсайты. Теперь осталось понять требование к гомогенности дисперсий.
1. Убедиться, что не было ошибок при формировании выборок. Эти ошибки могут убрать нормальность.
2. Проверить для начала, а не нормальна ли сама выборка. Посмотреть на коэффициенты ассиметрии (skewness) и эксцесса (kurtosis). Думаю, можно и проверить тестами Шапиро-Уилка или Колмогорова-Смирнова.
3. Проверить методом бутстрэпа на нормальность распределения выборочных средних.
Не очень-то густые инсайты. Теперь осталось понять требование к гомогенности дисперсий.
Итак, теперь про равенство дисперсий. Одно из предположений т-критерия Стьюдента состоит в том, что выборочные дисперсии равны. Кажется очевидным, что перед использование теста, необходимо проверить выборки на это самое равенство. Если же дисперсии не равны, то можно отказаться от т-теста Стьюдента в пользу т-теста Уэльча для выборок с разными дисперсиями. Почему же это нужно?
Оказывается, т-критерий Стьюдента начинает плохо себя вести, когда и размеры, и дисперсии выборок отличаются. Особенно ему плохеет, когда большая выборка имеет меньшую дисперсию. В таких ситуациях и рекомендуется использовать т-критерий Уэлча. А чтобы узнать, равны ли дисперсии, раньше предлагалось использовать тесты равенства дисперсий, к примеру, тест Левене.
Получается, что необходимо использовать тест Левене, а потом выбирать подходящий т-критерий? И тут всё становится слегка запутанным. Как и многие статистические тесты, тест Левене имеет свою мощность. Получается, он тоже с некоторой долей вероятности может допускать ошибки первого и второго рода. И в этот момент оказывается, что выигрыш от использования теста Левене и выбора более подходящего варианта из тестов Стьюдента и Уэлча не перекрывает выигрыш от просто постоянного использования т-критерия Уэлча (который работает слегка хуже на выборках одинакового размера с одинаковой дисперсией).
Практические выводы:
1. Т-критерий Стьюдента можно более-менее безопасно использовать при равных выборках или когда бОльшая выборка имеет пропорционально бОльшую дисперсию.
2. Можно просто постоянно использовать т-критерий Уэлча, особенно если выборки разного размера.
#t_test #т_критерий
Оказывается, т-критерий Стьюдента начинает плохо себя вести, когда и размеры, и дисперсии выборок отличаются. Особенно ему плохеет, когда большая выборка имеет меньшую дисперсию. В таких ситуациях и рекомендуется использовать т-критерий Уэлча. А чтобы узнать, равны ли дисперсии, раньше предлагалось использовать тесты равенства дисперсий, к примеру, тест Левене.
Получается, что необходимо использовать тест Левене, а потом выбирать подходящий т-критерий? И тут всё становится слегка запутанным. Как и многие статистические тесты, тест Левене имеет свою мощность. Получается, он тоже с некоторой долей вероятности может допускать ошибки первого и второго рода. И в этот момент оказывается, что выигрыш от использования теста Левене и выбора более подходящего варианта из тестов Стьюдента и Уэлча не перекрывает выигрыш от просто постоянного использования т-критерия Уэлча (который работает слегка хуже на выборках одинакового размера с одинаковой дисперсией).
Практические выводы:
1. Т-критерий Стьюдента можно более-менее безопасно использовать при равных выборках или когда бОльшая выборка имеет пропорционально бОльшую дисперсию.
2. Можно просто постоянно использовать т-критерий Уэлча, особенно если выборки разного размера.
#t_test #т_критерий
Может кому-то это будет интересно и здесь. Для меня удивительно, что вычислительная сложность, которую мы обычно ассоциируем с алгоритмами, играет важную роль и в представлении знаний. К примеру, не так много людей знают, что кроме P и NP классов сложности, есть еще и PSPACE, EXPTIME, NEXPTIME, EXPSPACE. И разрешимость многих логик (дескриптивных, модальных), о которых я буду писать позже, лежит как раз за пределами NP.
В книге же по алгоритмам Бхаргавы таких сложностей нет. Там разбираются самые основы простым языком. Поэтому, если вы хотите погрузиться в мир алгоритмов, эта книга станет хорошим началом пути.
В книге же по алгоритмам Бхаргавы таких сложностей нет. Там разбираются самые основы простым языком. Поэтому, если вы хотите погрузиться в мир алгоритмов, эта книга станет хорошим началом пути.
Forwarded from Учим Питон
А не начать ли нам книжный клуб? :D
А начать. И начнем мы с того, что нужно знать каждому программисту - алгоритмы. Если коротко, то алгоритм - это последовательность действий, решающая определенную задачу за конечно время. И хороший программист должен знать, как оценивать эффективность алгоритмов, как создавать эффективные алгоритмы и какие алгоритмы используются в его инструментах.
И начнем мы с книги для начинающих:
Бхаргава А. - Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих
План таков:
1. Заполучить книгу (купить, скачать из файлов ВК и т.д.)
2. Каждую неделю читать одну главу.
Итак, начинаем сегодня с главы "1. Знакомство с алгоритмами". Читаем её до следующих выходных. В конце следующей недели я сделаю небольшую выжимку по главе и подготовлю опрос.
Вопросы можно задавать в нашем чате в телеграмме: https://t.me/learnpythonforfun_chat.
#книжный_клуб #алгоритмы
А начать. И начнем мы с того, что нужно знать каждому программисту - алгоритмы. Если коротко, то алгоритм - это последовательность действий, решающая определенную задачу за конечно время. И хороший программист должен знать, как оценивать эффективность алгоритмов, как создавать эффективные алгоритмы и какие алгоритмы используются в его инструментах.
И начнем мы с книги для начинающих:
Бхаргава А. - Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих
План таков:
1. Заполучить книгу (купить, скачать из файлов ВК и т.д.)
2. Каждую неделю читать одну главу.
Итак, начинаем сегодня с главы "1. Знакомство с алгоритмами". Читаем её до следующих выходных. В конце следующей недели я сделаю небольшую выжимку по главе и подготовлю опрос.
Вопросы можно задавать в нашем чате в телеграмме: https://t.me/learnpythonforfun_chat.
#книжный_клуб #алгоритмы
Telegram
Учим Питон (Чат)
Курс с нуля: https://stepik.org/course/58852/
Курсы для прохождения: https://docs.google.com/document/d/1N-SxSRbe5eaV3z4BEknNVB1G7EKgtfdgVmTyy-q95fY/edit?usp=sharing
Правила: https://vk.com/@learnpythonforfun-pravila-gruppy-i-chatov
Курсы для прохождения: https://docs.google.com/document/d/1N-SxSRbe5eaV3z4BEknNVB1G7EKgtfdgVmTyy-q95fY/edit?usp=sharing
Правила: https://vk.com/@learnpythonforfun-pravila-gruppy-i-chatov
Кстати, а кто-нибудь помнит, что мы начинали проходить курс по статистике? Ну ладно, я начинал. Вот он: https://stepik.org/course/76
В общем, прошлая тема была t-test. В какой-то мере мы с ней разобрались, следующая тема qq-плот. Как мне кажется, я нашел шикарный материал по этой теме.
В общем, прошлая тема была t-test. В какой-то мере мы с ней разобрались, следующая тема qq-плот. Как мне кажется, я нашел шикарный материал по этой теме.
Говорят, неплохой playlist по нейронным сетям:
https://www.youtube.com/watch?v=VMj-3S1tku0&list=PLAqhIrjkxbuWI23v9cThsA9GvCAUhRvKZ
https://www.youtube.com/watch?v=VMj-3S1tku0&list=PLAqhIrjkxbuWI23v9cThsA9GvCAUhRvKZ
YouTube
The spelled-out intro to neural networks and backpropagation: building micrograd
This is the most step-by-step spelled-out explanation of backpropagation and training of neural networks. It only assumes basic knowledge of Python and a vague recollection of calculus from high school.
Links:
- micrograd on github: https://github.com/k…
Links:
- micrograd on github: https://github.com/k…
Я снова занят написанием диссертации. Но недавно нашел кое-что новое для себя:
https://en.wikipedia.org/wiki/False_discovery_rate
https://en.wikipedia.org/wiki/Q-value_(statistics)
А чуть позже постараюсь кратко написать и про эту штуку:
https://en.wikipedia.org/wiki/Bonferroni_correction
https://en.wikipedia.org/wiki/False_discovery_rate
https://en.wikipedia.org/wiki/Q-value_(statistics)
А чуть позже постараюсь кратко написать и про эту штуку:
https://en.wikipedia.org/wiki/Bonferroni_correction
Wikipedia
False discovery rate
In statistics, the false discovery rate (FDR) is a method of conceptualizing the rate of type I errors in null hypothesis testing when conducting multiple comparisons. FDR-controlling procedures are designed to control the FDR, which is the expected proportion…
Еще один источник для тех, кто хочет погрузиться в обработку языка:
https://web.stanford.edu/~jurafsky/slp3/
https://web.stanford.edu/~jurafsky/slp3/
Если вы вдруг захотите стать исследователем в области ИИ, то вот подборка курсов:
https://github.com/ahmedbahaaeldin/From-0-to-Research-Scientist-resources-guide
https://github.com/ahmedbahaaeldin/From-0-to-Research-Scientist-resources-guide
GitHub
GitHub - ahmedbahaaeldin/From-0-to-Research-Scientist-resources-guide: Detailed and tailored guide for undergraduate students or…
Detailed and tailored guide for undergraduate students or anybody want to dig deep into the field of AI with solid foundation. - ahmedbahaaeldin/From-0-to-Research-Scientist-resources-guide
Еще два материала, которые рекомендуют для подготовки к собеседованиям:
https://www.statlearning.com/ - книги по машинному обучению
https://www.youtube.com/watch?v=5N9V07EIfIg&list=PLOg0ngHtcqbPTlZzRHA2ocQZqB1D_qZ5V&index=1 - youtube-плэйлист по нему же.
https://www.statlearning.com/ - книги по машинному обучению
https://www.youtube.com/watch?v=5N9V07EIfIg&list=PLOg0ngHtcqbPTlZzRHA2ocQZqB1D_qZ5V&index=1 - youtube-плэйлист по нему же.
YouTube
StatsLearning Lecture 1 - part1
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
Мне тут в личку группы Учим Питон сам автор прислал статью, и я решил поделиться ею здесь: https://habr.com/p/802773/
Тема интересная, потому что, как мне кажется, визуализация данных - это 90% процентов успеха в анализе. Сначала проводишь разведочный анализ по графикам, а потом результаты анализа надо презентовать.
В статье мне понравился общий ход мыслей: думать о том, чтобы человеку было легко. Если бы мне надо было делать похожие графики, то я бы, как и автор, использовал разные цвета, визуально группировал бы одинаковые сущности, добавлял размерность через толщину/цвет точек.
С чем я не согласен. Я бы практически не трогал прозрачность элементов. В комнате плохой проектор? Часть данных будет не видна. Плохо печатает принтер? Часть данных сольется в одном цвете. В общем, я бы старался разные группы данных различать градиентом. Дополнительно, я бы побоялся включать более четырех линий в один график - мне такие воспринимать сложно. Ну и напоследок, я бы увеличил шрифты, а линию предсказания сделал бы прерывистой/пунктирной.
Если у кого есть вопросы/предложения, можете писать их в комментариях тут - автор обещал заглянуть и ответить :)
Тема интересная, потому что, как мне кажется, визуализация данных - это 90% процентов успеха в анализе. Сначала проводишь разведочный анализ по графикам, а потом результаты анализа надо презентовать.
В статье мне понравился общий ход мыслей: думать о том, чтобы человеку было легко. Если бы мне надо было делать похожие графики, то я бы, как и автор, использовал разные цвета, визуально группировал бы одинаковые сущности, добавлял размерность через толщину/цвет точек.
С чем я не согласен. Я бы практически не трогал прозрачность элементов. В комнате плохой проектор? Часть данных будет не видна. Плохо печатает принтер? Часть данных сольется в одном цвете. В общем, я бы старался разные группы данных различать градиентом. Дополнительно, я бы побоялся включать более четырех линий в один график - мне такие воспринимать сложно. Ну и напоследок, я бы увеличил шрифты, а линию предсказания сделал бы прерывистой/пунктирной.
Если у кого есть вопросы/предложения, можете писать их в комментариях тут - автор обещал заглянуть и ответить :)
Habr
Управление цветами в Seaborn: как визуализировать данные красиво
Привет, Хабр! В этой статье я расскажу про своё видение работы с цветом при визуализации графиков. Буду показывать все на примерах — уверен, они вам понравятся. Я покажу не только картинки было-стало,...
👍2
Я тут недавно поучаствовал в локальном онлайн-хакатоне от своего университета (https://bbdc.csl.uni-bremen.de/en/2024-2/professional-track/). Занял 14 место из 17, в своё оправдание могу сказать, что времени у меня было не очень много и я не использовал нейронные сети. Хакатон длился около месяца.
Задание.
В рамках задания были представлены данные акселерометра и фотоплетизмографа (штука, которая "меряет" пульс) + данные о пульсе, поле, возрасте, номере устройства. Участникам предлагалось классифицировать по этим данным настроение (['HAPPY', 'RELAXED', 'SAD', 'ANGRY']) и контекст (['WALKING', 'CONVERSATION', 'VIEW_BOOTH', 'OTHER']).
Что я сделал.
Мне показался скучным путь решения через натравливание нейронки, поэтому я пошел другим путем. В дополнение к трем осям, я вычислил общий вектор амплитуды через корень суммы квадратов. Сначала я прогнал данные через никзочастотный фильтр, чтобы убрать шумы. Потом применил RobustScaler, чтобы убрать выбросы и отмасштабировать данные. Затем я обнаружил пики для каждой оси. Дополнительно я вычислил метрики по этим пикам: ритм, среднее время шага, ско времени шага, регулярность шагов и т.д. Метрики были вычислены для интервалов, предшествующих событию измерения. Я использовал библиотеку sensormotion. Потом все эти фичи были скормлены в HistGradientBoostingClassifier из sklearn. Для классификации настроения и контекста я использовал окна разной длины.
Что я бы сделал по-другому.
Мне кажется, что главная ошибка, которую я допустил - мало времени провел над инжинирингом фич. По сути, получилось, что я скормил много мусора в классификатор, а он там что-то извлёк. Стоило лучше разобраться с тем, как работают алгоритмы детектирования пиков с самого начала, подумать о лучшем фильтре, посмотреть, какие ещё метрики могут быть использованы.
Ещё я хотел подумать, как решить проблему сопоставления осей. К примеру, что если одни часы имеют отличную ориентацию от других часов. В общем, надо было больше потратить времени на приведение входных данных в порядок.
Итог.
Я поучаствовал в хакатоне, мне было интересно поработать с данными, выучить новые уроки, немного набить руку. После окончания диссертации собираюсь засесть за ML+DL, надеюсь, после этого в хакатонах у меня дело пойдет пободрее 🙂
Задание.
В рамках задания были представлены данные акселерометра и фотоплетизмографа (штука, которая "меряет" пульс) + данные о пульсе, поле, возрасте, номере устройства. Участникам предлагалось классифицировать по этим данным настроение (['HAPPY', 'RELAXED', 'SAD', 'ANGRY']) и контекст (['WALKING', 'CONVERSATION', 'VIEW_BOOTH', 'OTHER']).
Что я сделал.
Мне показался скучным путь решения через натравливание нейронки, поэтому я пошел другим путем. В дополнение к трем осям, я вычислил общий вектор амплитуды через корень суммы квадратов. Сначала я прогнал данные через никзочастотный фильтр, чтобы убрать шумы. Потом применил RobustScaler, чтобы убрать выбросы и отмасштабировать данные. Затем я обнаружил пики для каждой оси. Дополнительно я вычислил метрики по этим пикам: ритм, среднее время шага, ско времени шага, регулярность шагов и т.д. Метрики были вычислены для интервалов, предшествующих событию измерения. Я использовал библиотеку sensormotion. Потом все эти фичи были скормлены в HistGradientBoostingClassifier из sklearn. Для классификации настроения и контекста я использовал окна разной длины.
Что я бы сделал по-другому.
Мне кажется, что главная ошибка, которую я допустил - мало времени провел над инжинирингом фич. По сути, получилось, что я скормил много мусора в классификатор, а он там что-то извлёк. Стоило лучше разобраться с тем, как работают алгоритмы детектирования пиков с самого начала, подумать о лучшем фильтре, посмотреть, какие ещё метрики могут быть использованы.
Ещё я хотел подумать, как решить проблему сопоставления осей. К примеру, что если одни часы имеют отличную ориентацию от других часов. В общем, надо было больше потратить времени на приведение входных данных в порядок.
Итог.
Я поучаствовал в хакатоне, мне было интересно поработать с данными, выучить новые уроки, немного набить руку. После окончания диссертации собираюсь засесть за ML+DL, надеюсь, после этого в хакатонах у меня дело пойдет пободрее 🙂
BBDC
Professional Track - BBDC
tada, neues logo!
👍3
Всё ещё пишу свою диссертацию, но осталось уже буквально пара недель и затем, вероятно, я смогу вернуться к изучению статистики, NLP, нейронок и прочих вещей.
Из обновлений: в мае я собираюсь поучаствовать в стартап кэмпе с одной NLP-темой. Попробую предложить сервис извлечения основной информации из научных статей для борьбы с галлюцинациями у LLM моделей.
Еще нашел недавно интересную книжку:
Rodrigues, Miguel RD, and Yonina C. Eldar, eds. Information-theoretic methods in data science. Cambridge University Press, 2021.
В ней рассказывается о теории информации и дата сайнс - давно мечтал почитать что-то подобное.
В общем, пока что всё. И небольшой опрос напоследок :)
Из обновлений: в мае я собираюсь поучаствовать в стартап кэмпе с одной NLP-темой. Попробую предложить сервис извлечения основной информации из научных статей для борьбы с галлюцинациями у LLM моделей.
Еще нашел недавно интересную книжку:
Rodrigues, Miguel RD, and Yonina C. Eldar, eds. Information-theoretic methods in data science. Cambridge University Press, 2021.
В ней рассказывается о теории информации и дата сайнс - давно мечтал почитать что-то подобное.
В общем, пока что всё. И небольшой опрос напоследок :)
Вы что-нибудь слышали про bias-variance tradeoff?
Anonymous Poll
29%
Да
47%
Нет
24%
Посмотреть ответы
Нашел ещё один учебник по машинному обучению: https://education.yandex.ru/handbook/ml. В некоторых местах (про Байесовский подход), он мне показался довольно сложным и спутанным. Но, думаю, сойдет как альтернативный источник знаний.
Меня уже долгое время волнует вопрос: зачем люди делают всё новые и новые учебники, вместо того, чтобы сделать ресурс, где одни и те же темы будут объяснены под разными углами. У самого сделать такой ресурс просто не доходят руки :(
Меня уже долгое время волнует вопрос: зачем люди делают всё новые и новые учебники, вместо того, чтобы сделать ресурс, где одни и те же темы будут объяснены под разными углами. У самого сделать такой ресурс просто не доходят руки :(
education.yandex.ru
Учебник по машинному обучению
Онлайн-учебник по машинному обучению от ШАД — для тех, кто не боится математики и хочет разобраться в технологиях ML.