#libraries
TSGM - достаточно новая любопытная библиотека для генерации синтетических и аугментации временных рядов.
Реализованы методы, основанные на GAN и VAE. Есть три варианта использования: чисто синтетические правила генерации, data-driven генерация и микс двух подходов.
Думаю, что в прод такое не потащишь (ибо версия 0.0.0, кек). Но для исследований поиграться можно.
TSGM - достаточно новая любопытная библиотека для генерации синтетических и аугментации временных рядов.
Реализованы методы, основанные на GAN и VAE. Есть три варианта использования: чисто синтетические правила генерации, data-driven генерация и микс двух подходов.
Думаю, что в прод такое не потащишь (ибо версия 0.0.0, кек). Но для исследований поиграться можно.
⚡3
#statistics
Что такое гетероскедастичность ошибок и как с ней борются?
Гетероскедастичность (англ. heteroscedasticity) — понятие, используемое в прикладной статистике (чаще всего — в эконометрике), означающее неоднородность наблюдений, выражающуюся в неодинаковой (непостоянной) дисперсии случайной ошибки регрессионной (эконометрической) модели.
Пример на изображении к посту. Можно заметить, что при изменении некоторого признака (ось X) меняется и разброс ошибок (ось Y).
И как же это влияет на оценки коэффициентов Метода Наименьших Квадратов (МНК)?
1. МНК-оценки коэффициентов остаются несмещенными;
2. МНК-оценки перестают быть эффективными (то есть не имеют наименьшую дисперсию в своем классе);
3. Стандартные ошибки коэффициентов, рассчитанные по формуле для случая гомоскедастичности, оказываются смещенными и несостоятельными.
То есть, сами полученные значения оценок остаются примерно такими же. А вот уже полученные доверительные интервалы и выводы о значимости оценок коэффициентов получаются некорректными.
Что же делать?
1. Делать поправку при расчете ошибок. То есть, использовать т.н. состоятельные в условиях гетероскедастичности стандартные ошибки (heteroskedasticity consistent (heteroskedasticity robust) standard errors). Обычно, эти поправки есть практически в любом пакете статистического анализа и имеют обозначения HC0, HC1, HC2, HC3 (пример из statsmodels);
2. Использовать взвешенный метод наименьших квадратов (weighted least squares, WLS) (опять же, пример).
И какая из оценок лучше?
В общем случае, можно было бы сказать, что лучше использовать WLS. Но очень важное для этого предположение состоит в том, что для этого у нас должно быть верно специфицированно уравнение для дисперсии случайной величины (то есть, мы знаем, как в реальности ведет себя наша гетероскедастичность). А это не так просто, как кажется на первый взгляд.
Плюс, обычно при большом объеме данных даже обычный МНК дает вполне удовлетворительные результаты. Потому, чаще всего применяют обычный МНК с робастными стандартными ошибками (проще всего включать их автоматом, т.к. при отсутствии гетероскедастичности поправка не будет вносить сильных изменений и мы будем получать результаты, очень похожие на оценки при использовании формулы для случая гомоскедастичности).
Что такое гетероскедастичность ошибок и как с ней борются?
Гетероскедастичность (англ. heteroscedasticity) — понятие, используемое в прикладной статистике (чаще всего — в эконометрике), означающее неоднородность наблюдений, выражающуюся в неодинаковой (непостоянной) дисперсии случайной ошибки регрессионной (эконометрической) модели.
Пример на изображении к посту. Можно заметить, что при изменении некоторого признака (ось X) меняется и разброс ошибок (ось Y).
И как же это влияет на оценки коэффициентов Метода Наименьших Квадратов (МНК)?
1. МНК-оценки коэффициентов остаются несмещенными;
2. МНК-оценки перестают быть эффективными (то есть не имеют наименьшую дисперсию в своем классе);
3. Стандартные ошибки коэффициентов, рассчитанные по формуле для случая гомоскедастичности, оказываются смещенными и несостоятельными.
То есть, сами полученные значения оценок остаются примерно такими же. А вот уже полученные доверительные интервалы и выводы о значимости оценок коэффициентов получаются некорректными.
Что же делать?
1. Делать поправку при расчете ошибок. То есть, использовать т.н. состоятельные в условиях гетероскедастичности стандартные ошибки (heteroskedasticity consistent (heteroskedasticity robust) standard errors). Обычно, эти поправки есть практически в любом пакете статистического анализа и имеют обозначения HC0, HC1, HC2, HC3 (пример из statsmodels);
2. Использовать взвешенный метод наименьших квадратов (weighted least squares, WLS) (опять же, пример).
И какая из оценок лучше?
В общем случае, можно было бы сказать, что лучше использовать WLS. Но очень важное для этого предположение состоит в том, что для этого у нас должно быть верно специфицированно уравнение для дисперсии случайной величины (то есть, мы знаем, как в реальности ведет себя наша гетероскедастичность). А это не так просто, как кажется на первый взгляд.
Плюс, обычно при большом объеме данных даже обычный МНК дает вполне удовлетворительные результаты. Потому, чаще всего применяют обычный МНК с робастными стандартными ошибками (проще всего включать их автоматом, т.к. при отсутствии гетероскедастичности поправка не будет вносить сильных изменений и мы будем получать результаты, очень похожие на оценки при использовании формулы для случая гомоскедастичности).
👍10
#разное
У меня отпуск, поэтому просто закину сюда один из своих этюдов с интенсива по фантастике.
"В чреве бюрократического левиафана смиренно ожидали своей участи души разномастного люда: были здесь и подслеповатые бабушки, пришедшие за льготой и молодые родители, вписывающие новорожденное дитя в анналы бюрократической истории. Отдельной группкой нахохлившихся воробьев сидели ожидающие выдачи красных корочек, что позволят упорхнуть из замерзшего города в окутанные теплым маревом дальние страны.
Все в этом чреве было упорядочено – на входе стояли приветливые муравьи, одетые в красные ливреи. В их глазах мерцала кровеносная система левиафана, по которой они запускали вновь пришедших посетителей. Внутри, вне видимости пришедших, копошились десятки жучков-паучков, несущих свою добычу, или, с неохотой выпускающие из своих лап немного живительной бумаги, чтобы пристрастить, привести вновь души во чрево своего повелителя.
Время то застывало цветущей стоячей в луже водой, то неслось горным потоком. Левиафан взирал на это со спокойствием, казалось бы, вечным и в своей мудрости всепонимающим. Секунды жизни питали его, наполняли бездонное его чрево. Волны душ то набегали, то исчезали, словно увлеченные отливом. В конце концов, последние души счастливо покидали чрево левиафана, крепко ухватив свою добычу. Разбегались жучки-паучки, муравьишки шли стройной толпой из чрева, чтобы завтра вернуться вновь, разгоняя кровь по могучему телу. Левиафан медленно погружался в тихую дремоту."
У меня отпуск, поэтому просто закину сюда один из своих этюдов с интенсива по фантастике.
"В чреве бюрократического левиафана смиренно ожидали своей участи души разномастного люда: были здесь и подслеповатые бабушки, пришедшие за льготой и молодые родители, вписывающие новорожденное дитя в анналы бюрократической истории. Отдельной группкой нахохлившихся воробьев сидели ожидающие выдачи красных корочек, что позволят упорхнуть из замерзшего города в окутанные теплым маревом дальние страны.
Все в этом чреве было упорядочено – на входе стояли приветливые муравьи, одетые в красные ливреи. В их глазах мерцала кровеносная система левиафана, по которой они запускали вновь пришедших посетителей. Внутри, вне видимости пришедших, копошились десятки жучков-паучков, несущих свою добычу, или, с неохотой выпускающие из своих лап немного живительной бумаги, чтобы пристрастить, привести вновь души во чрево своего повелителя.
Время то застывало цветущей стоячей в луже водой, то неслось горным потоком. Левиафан взирал на это со спокойствием, казалось бы, вечным и в своей мудрости всепонимающим. Секунды жизни питали его, наполняли бездонное его чрево. Волны душ то набегали, то исчезали, словно увлеченные отливом. В конце концов, последние души счастливо покидали чрево левиафана, крепко ухватив свою добычу. Разбегались жучки-паучки, муравьишки шли стройной толпой из чрева, чтобы завтра вернуться вновь, разгоняя кровь по могучему телу. Левиафан медленно погружался в тихую дремоту."
🔥7
Forwarded from AI для Всех
Deep TDA работает лучше, чем традиционные алгоритмы снижения размерности🔬🧮
Мы вступаем в новую эру анализа данных благодаря прорывному алгоритму - Deep TDA. Этот новаторский метод, который позволяет добывать инсайты из сложных данных. Он сочетает в себе мощь self-supervised learning и Топологического Анализа Данных (TDA).
Долгое время такие инструменты, как t-SNE и UMAP, были непревзойденными в области снижения размерности. Их роль в анализе сложных наборов данных неоценима, причем t-SNE, разработанный Хинтоном и ван дер Маатеном еще в 2008 году, до сих пор очень популярен.
Но ветер перемен дует! Deep TDA обещает впечатляющие возможности:
1️⃣ Он демонстрирует устойчивость к шуму и выбросам.
2️⃣ Он эффективно масштабируется для сложных, высокоразмерных наборов данных.
3️⃣ Он снимает необходимость в тщательной настройке или глубоком понимании данных.
4️⃣ Он охватывает и отображает более полную картину набора данных.
На картинке сверху сравнительное исследование всех трех техник на временном ряде (исследователи повесили акселерометр на корову, посмотрите как TDA он пути создает кластеры для разных типов движения):
• t-SNE удерживает слишком много структуры, большая часть которой не существует.
• UMAP справился лучше, хотя структура казалась несколько размытой.
• TDA, однако, сработал великолепно, сохраняя детализированную структуру данных.
Deep TDA это еще один важный шаг к светлому будущему анализа данных!
🦾 Блог-пост
Мы вступаем в новую эру анализа данных благодаря прорывному алгоритму - Deep TDA. Этот новаторский метод, который позволяет добывать инсайты из сложных данных. Он сочетает в себе мощь self-supervised learning и Топологического Анализа Данных (TDA).
Долгое время такие инструменты, как t-SNE и UMAP, были непревзойденными в области снижения размерности. Их роль в анализе сложных наборов данных неоценима, причем t-SNE, разработанный Хинтоном и ван дер Маатеном еще в 2008 году, до сих пор очень популярен.
Но ветер перемен дует! Deep TDA обещает впечатляющие возможности:
1️⃣ Он демонстрирует устойчивость к шуму и выбросам.
2️⃣ Он эффективно масштабируется для сложных, высокоразмерных наборов данных.
3️⃣ Он снимает необходимость в тщательной настройке или глубоком понимании данных.
4️⃣ Он охватывает и отображает более полную картину набора данных.
На картинке сверху сравнительное исследование всех трех техник на временном ряде (исследователи повесили акселерометр на корову, посмотрите как TDA он пути создает кластеры для разных типов движения):
• t-SNE удерживает слишком много структуры, большая часть которой не существует.
• UMAP справился лучше, хотя структура казалась несколько размытой.
• TDA, однако, сработал великолепно, сохраняя детализированную структуру данных.
Deep TDA это еще один важный шаг к светлому будущему анализа данных!
🦾 Блог-пост
🔥10🤔4❤1🥴1😍1
#interpretable_ml
Давайте начнем большую тему интерпретируемого машинного обучения. Начнем с базовых понятий, постепенно спускаясь в глубины (ну или поднимаясь на вершины, этот выбор оставлю на вкус читателя). Я побуду вашим Овидием в этом интересном (надеюсь) путешествии.
Итак, начнем с того, что вообще такое интерпретируемое машинное обучение.
Интерпретируемая модель машинного обучения - это такая модель, результаты и выводы которой может предсказать и объяснить эксперт.
Соответственно, обычно модели любят делить на две крайности одной сущности: модели черного и белого ящика. В черном ящике мы совсем ничего не понимаем, но видим результаты модели. В белом ящике мы видим весь процесс и можем в деталях понять, почему был получен именно такой вывод.
Когда нам нужна интерпретируемость?
Собственно, в тех случаях, когда нам нужно тем или иным образом проверять или использовать результаты и выводы нашей модели. Это нужно в следующих случаях:
1. Нам хочется получать из результатов новые знания (то есть, в научных целях нам лучше бы понимать, как конкретный инструмент получает те результаты, которые мы видим);
2. Мы хотим быть уверены, что модель принимает "честные" решения, которые не дискриминируют никакие группы населения;
3. Нам нужно знать, что чувствительная информация надежно защищена;
4. Мы хотим понимать, робастна ли модель и если нет, то что приводит к неустойчивости ее поведения;
5. Мы хотим быть уверены, что модель выучила только причинно-следственные отношения, а не ложные корреляции;
6. Мы хотели бы видеть больше доверия от пользователей модели. Обычно, человеку гораздо проще доверять тому, чью логику он может понять.
А когда интерпретируемость не особо важна?
1. Когда результаты модели не особо важны (нет влияния на чье-то здоровье или благополучие);
2. Когда область изучена вдоль и поперек. И мы точно знаем, что вполне себе можем делегировать принятие решения черному ящику;
3. Когда мы не хотим, чтобы пользователи могли научиться "обманывать систему" (например, если вы выдаете кредиты, то вам не очень хочется, чтобы фродеры знали, какие признаки помогают получше прикинуться честным заемщиком).
Давайте начнем большую тему интерпретируемого машинного обучения. Начнем с базовых понятий, постепенно спускаясь в глубины (ну или поднимаясь на вершины, этот выбор оставлю на вкус читателя). Я побуду вашим Овидием в этом интересном (надеюсь) путешествии.
Итак, начнем с того, что вообще такое интерпретируемое машинное обучение.
Интерпретируемая модель машинного обучения - это такая модель, результаты и выводы которой может предсказать и объяснить эксперт.
Соответственно, обычно модели любят делить на две крайности одной сущности: модели черного и белого ящика. В черном ящике мы совсем ничего не понимаем, но видим результаты модели. В белом ящике мы видим весь процесс и можем в деталях понять, почему был получен именно такой вывод.
Когда нам нужна интерпретируемость?
Собственно, в тех случаях, когда нам нужно тем или иным образом проверять или использовать результаты и выводы нашей модели. Это нужно в следующих случаях:
1. Нам хочется получать из результатов новые знания (то есть, в научных целях нам лучше бы понимать, как конкретный инструмент получает те результаты, которые мы видим);
2. Мы хотим быть уверены, что модель принимает "честные" решения, которые не дискриминируют никакие группы населения;
3. Нам нужно знать, что чувствительная информация надежно защищена;
4. Мы хотим понимать, робастна ли модель и если нет, то что приводит к неустойчивости ее поведения;
5. Мы хотим быть уверены, что модель выучила только причинно-следственные отношения, а не ложные корреляции;
6. Мы хотели бы видеть больше доверия от пользователей модели. Обычно, человеку гораздо проще доверять тому, чью логику он может понять.
А когда интерпретируемость не особо важна?
1. Когда результаты модели не особо важны (нет влияния на чье-то здоровье или благополучие);
2. Когда область изучена вдоль и поперек. И мы точно знаем, что вполне себе можем делегировать принятие решения черному ящику;
3. Когда мы не хотим, чтобы пользователи могли научиться "обманывать систему" (например, если вы выдаете кредиты, то вам не очень хочется, чтобы фродеры знали, какие признаки помогают получше прикинуться честным заемщиком).
🔥10👍4🤔2
#interpretable_ml
Продолжаем говорить про интерпретируемое машинное обучение.
На этой неделе пройдемся по таксономии понятий в интерпретируемости моделей машинного обучения.
Внутренняя интерпретируемость и анализ после использования (Intrinsic or post hoc). В данном случае, мы либо пытаемся получить модель, которая сама объяснить свои действия и результаты, либо пытаемся после получения результатов научиться объяснять, почему получились именно такие результаты и выводы.
Результат метода интерпретации:
- Некий score для признака (например, importance);
- Визуализация зависимости для признака (например, partial dependence);
- Внутренние показатели модели (например, веса признаков);
- Data point (генерируем или ищем существующие точки в данных, чтобы объяснить, на что похож наш пример);
- Объяснимая модель (например, аппроксимация более сложной black box модели более простой, но интерпретируемой).
Модельно-специфическая или модельно-агностическая интерпретируемость (Model-specific or model-agnostic). Здесь речь про то, полагается ли метод на какие-то особенные свойства определенной модели машинного обучения, или подходит для использования с любыми моделями.
Локальная или глобальная интерпретируемость (Local or global). Мы можем интерпретировать модель в целом, или какие-то отдельные точки (или предсказания), а можем использовать и промежуточный вариант - какие-то поднаборы данных из всего датасета.
Продолжаем говорить про интерпретируемое машинное обучение.
На этой неделе пройдемся по таксономии понятий в интерпретируемости моделей машинного обучения.
Внутренняя интерпретируемость и анализ после использования (Intrinsic or post hoc). В данном случае, мы либо пытаемся получить модель, которая сама объяснить свои действия и результаты, либо пытаемся после получения результатов научиться объяснять, почему получились именно такие результаты и выводы.
Результат метода интерпретации:
- Некий score для признака (например, importance);
- Визуализация зависимости для признака (например, partial dependence);
- Внутренние показатели модели (например, веса признаков);
- Data point (генерируем или ищем существующие точки в данных, чтобы объяснить, на что похож наш пример);
- Объяснимая модель (например, аппроксимация более сложной black box модели более простой, но интерпретируемой).
Модельно-специфическая или модельно-агностическая интерпретируемость (Model-specific or model-agnostic). Здесь речь про то, полагается ли метод на какие-то особенные свойства определенной модели машинного обучения, или подходит для использования с любыми моделями.
Локальная или глобальная интерпретируемость (Local or global). Мы можем интерпретировать модель в целом, или какие-то отдельные точки (или предсказания), а можем использовать и промежуточный вариант - какие-то поднаборы данных из всего датасета.
👍10
#interpretable_ml
PFI (permutation feature importance). Что это такое и как работает?
В PFI есть слово permuatation. Оно, собственно, и определяет, что мы будем делать. Давайте для каждого признака будем "перемешивать" значения и смотреть, насколько изменилась наша ошибка предсказаний. Получаем весьма простой модельно-агностический (независимый от реализации конкретного алгоритма обучения) метод.
Плюсы метода:
1. Легко интерпретировать - мы понимаем, насколько изменяется качество модели при "разрушении" признака;
2. Можно сравнивать результаты между разными моделями;
3. Помимо важности самого признака, мы еще автоматически учитываем и важность взаимодействий между признаками (если мы "перемешали" признак, то мы "перемешали" и все взаимодействия между признаками);
4. Нам не нужно переобучать модель. То есть, мы не тратим время и вычислительные ресурсы на новые циклы обучения.
Минусы метода:
1. Мы привязаны к определению ошибки. То есть, важность признака зависима от той метрики, ухудшение которой мы мониторим;
2. Нужно знать реальные таргеты. Если у нас только модель и неразмеченные данные - то мы не можем вычислить важность признаков;
3. Учитывая случайность перестановок, наши результаты могут меняться от запуска к запуску (причем, весьма сильно);
4. У нас может возникать смещение в наших оценках из-за нереалистичных точек данных. Например, если мы случайно пересортируем рост, но оставим вес, то может получиться точка данных с ростом 185 см и весом 10 кг (что невероятно);
5. Наличие коррелированных признаков может снижать важность группы признаков, т.к. общая "важность" может "расщепляться" между этими признаками.
В итоге, метод весьма неплохой, но со своими минусами (причем, достаточно важными минусами). Если хотите поиграть с методом, можете взять пример реализации из sklearn.
PFI (permutation feature importance). Что это такое и как работает?
В PFI есть слово permuatation. Оно, собственно, и определяет, что мы будем делать. Давайте для каждого признака будем "перемешивать" значения и смотреть, насколько изменилась наша ошибка предсказаний. Получаем весьма простой модельно-агностический (независимый от реализации конкретного алгоритма обучения) метод.
Плюсы метода:
1. Легко интерпретировать - мы понимаем, насколько изменяется качество модели при "разрушении" признака;
2. Можно сравнивать результаты между разными моделями;
3. Помимо важности самого признака, мы еще автоматически учитываем и важность взаимодействий между признаками (если мы "перемешали" признак, то мы "перемешали" и все взаимодействия между признаками);
4. Нам не нужно переобучать модель. То есть, мы не тратим время и вычислительные ресурсы на новые циклы обучения.
Минусы метода:
1. Мы привязаны к определению ошибки. То есть, важность признака зависима от той метрики, ухудшение которой мы мониторим;
2. Нужно знать реальные таргеты. Если у нас только модель и неразмеченные данные - то мы не можем вычислить важность признаков;
3. Учитывая случайность перестановок, наши результаты могут меняться от запуска к запуску (причем, весьма сильно);
4. У нас может возникать смещение в наших оценках из-за нереалистичных точек данных. Например, если мы случайно пересортируем рост, но оставим вес, то может получиться точка данных с ростом 185 см и весом 10 кг (что невероятно);
5. Наличие коррелированных признаков может снижать важность группы признаков, т.к. общая "важность" может "расщепляться" между этими признаками.
В итоге, метод весьма неплохой, но со своими минусами (причем, достаточно важными минусами). Если хотите поиграть с методом, можете взять пример реализации из sklearn.
⚡8👍3❤🔥1
#interpretable_ml
Оцениваем важность признаков с логистической регрессией.
Сначала стоит напомнить, что это за регрессия такая. Логистическая регрессия - это метод классификации. Внутри лежит логистическая функция
Коэффициенты в получаемой модели - это логарифмические шансы (логарифм от отношения шансов). А вот само отношение шансов понять не сложно - это соотношение того, насколько один исход более вероятен, чем другой (как в ставках - шанс 1к7, 1к3 и т.п.). То есть, веса можно интерпретировать так: при увеличении веса признака
Например, если у нас получился коэффициент 0.38 для признака курения в задаче определения сердечно-сосудистых заболеваний (ССЗ). Это значит, что курение (величина бинарная, так что там только 0 и 1) влечет изменение отношения шансов на
Стоит отметить, что смотреть только на веса не стоит. Еще важно оценивать, насколько значимыми получились оценки весов. Если оценка статистически значима, то такой признак стоит учитывать в интерпретации.
Минусы метода:
1. Не учитываются взаимодействия признаков (если этого не добавить руками);
2. Даже при добавлении взаимодействий, модель все равно может "упрощать" связи;
3. Интерпретация достаточно непростая (нужно понимать концепцию отношения шансов и верно интерпретировать результаты).
Оцениваем важность признаков с логистической регрессией.
Сначала стоит напомнить, что это за регрессия такая. Логистическая регрессия - это метод классификации. Внутри лежит логистическая функция
1 / (1 + exp(-z))
, где z
можно представить в виде w0 + w1 * x1 + w2 * x2 +
..., где wi
- веса при признаках, а xi
- значения признаков. В итоге, мы ищем гиперплоскость в пространстве заданной размерности, которая наилучшим образом разделяла бы наши два класса. Не буду сильно ударяться в детали, предлагаю подробнее почитать в этом материале.Коэффициенты в получаемой модели - это логарифмические шансы (логарифм от отношения шансов). А вот само отношение шансов понять не сложно - это соотношение того, насколько один исход более вероятен, чем другой (как в ставках - шанс 1к7, 1к3 и т.п.). То есть, веса можно интерпретировать так: при увеличении веса признака
wi
на 1, отношение шансов меняется на exp(wi)
.Например, если у нас получился коэффициент 0.38 для признака курения в задаче определения сердечно-сосудистых заболеваний (ССЗ). Это значит, что курение (величина бинарная, так что там только 0 и 1) влечет изменение отношения шансов на
exp(0.38) = 1.46
(при учете того, что остальные признаки фиксированы). То есть, при прочих равных, курение приводит к увеличению шансов ССЗ в примерно 1.5 раза. Стоит отметить, что смотреть только на веса не стоит. Еще важно оценивать, насколько значимыми получились оценки весов. Если оценка статистически значима, то такой признак стоит учитывать в интерпретации.
Минусы метода:
1. Не учитываются взаимодействия признаков (если этого не добавить руками);
2. Даже при добавлении взаимодействий, модель все равно может "упрощать" связи;
3. Интерпретация достаточно непростая (нужно понимать концепцию отношения шансов и верно интерпретировать результаты).
🔥12
#разное
Недавно увидел обложку книги писателя-фантаста Говарла Фаста "Генерал, подстреливший ангела". Ничего не напоминает? Еще и ангел в названии...
Это изображение очень похоже на кадр из аниме "Конец Евангелиона" (см. сравнение с кадром здесь).
Мне очень нравится узнавать такие неожиданные факты. Увлекательно искать отсылки и в кино. А уж если они еще и намекают на дальнейший сюжет, ух... Очень радует, когда разгадываешь маленькие "загадки" автора произведения. Они делают произведение глубже и добавляют дополнительные уровни в повествование и смыслы.
Собственно, такой подход есть и в литературе. Возьмем очень известное произведение Рэя Бредбери: рассказ "Будет ласковый дождь". Название рассказа, между прочим, отсылка к стихотворению другого автора - Сары Тисдейл. И, если знать текст этого стихотворения, то можно догадаться и о том, что будет в сюжете рассказа. Вот перевод стихотворения (за авторством Михаила Рахунова):
P.S. Евангелион очень уважаю. Тут я в лагере тех, кому произведение очень нравится (правда, мне нравится только оригинальный сериал и последний ребилд).
P.P.S. У меня пока слабо выходит вплетать такие дополнительные слои в свои произведения. Но уже понемногу пытаюсь, т.к. очень уж нравится этот прием.
Недавно увидел обложку книги писателя-фантаста Говарла Фаста "Генерал, подстреливший ангела". Ничего не напоминает? Еще и ангел в названии...
Это изображение очень похоже на кадр из аниме "Конец Евангелиона" (см. сравнение с кадром здесь).
Мне очень нравится узнавать такие неожиданные факты. Увлекательно искать отсылки и в кино. А уж если они еще и намекают на дальнейший сюжет, ух... Очень радует, когда разгадываешь маленькие "загадки" автора произведения. Они делают произведение глубже и добавляют дополнительные уровни в повествование и смыслы.
Собственно, такой подход есть и в литературе. Возьмем очень известное произведение Рэя Бредбери: рассказ "Будет ласковый дождь". Название рассказа, между прочим, отсылка к стихотворению другого автора - Сары Тисдейл. И, если знать текст этого стихотворения, то можно догадаться и о том, что будет в сюжете рассказа. Вот перевод стихотворения (за авторством Михаила Рахунова):
Будет ласковый дождь, будет запах земли,
Щебет юрких стрижей от зари до зари,
И ночные рулады лягушек в прудах,
И цветение слив в белопенных садах.
Огнегрудый комочек слетит на забор,
И малиновки трель выткет звонкий узор.
И никто, и никто не вспомянет войну —
Пережито-забыто, ворошить ни к чему.
И ни птица, ни ива слезы не прольёт,
Если сгинет с Земли человеческий род.
И весна… и весна встретит новый рассвет,
Не заметив, что нас уже нет.
P.S. Евангелион очень уважаю. Тут я в лагере тех, кому произведение очень нравится (правда, мне нравится только оригинальный сериал и последний ребилд).
P.P.S. У меня пока слабо выходит вплетать такие дополнительные слои в свои произведения. Но уже понемногу пытаюсь, т.к. очень уж нравится этот прием.
❤6👍3
#разное
Близится осень. И, конечно же, я умудрился простудиться ;(
Потому будет простой пост про интересное кино на вечер.
Сегодня я хочу рассказать вам о фильме «Смотрите, как они бегут». Это комедийный детектив, снятый по мотивам пьесы Агаты Кристи «Мышеловка». В главных ролях снялись Сэм Рокуэлл и Сирша Ронан, которые играют полицейских, расследующих убийство американского режиссёра в театре в Вест-Энде. Это очень забавная смесь комедии и детектива. Особенно мне зашли мета-шутки про процесс написания и создания кино (думаю, вы поймете, о чем я, когда посмотрите). Ну и актерский состав там отличнейший.
На Кинопоиске у фильма рейтинг 6.4 из 10 (как по мне - преступно мало). В общем, если вы любите комедии и детективы, то я рекомендую вам посмотреть этот фильм.
P.S. Спасибо подписчикам за внимательность. Таки из-за болезни написал совсем не ту оценку с кинопоиска ;(
Близится осень. И, конечно же, я умудрился простудиться ;(
Потому будет простой пост про интересное кино на вечер.
Сегодня я хочу рассказать вам о фильме «Смотрите, как они бегут». Это комедийный детектив, снятый по мотивам пьесы Агаты Кристи «Мышеловка». В главных ролях снялись Сэм Рокуэлл и Сирша Ронан, которые играют полицейских, расследующих убийство американского режиссёра в театре в Вест-Энде. Это очень забавная смесь комедии и детектива. Особенно мне зашли мета-шутки про процесс написания и создания кино (думаю, вы поймете, о чем я, когда посмотрите). Ну и актерский состав там отличнейший.
На Кинопоиске у фильма рейтинг 6.4 из 10 (как по мне - преступно мало). В общем, если вы любите комедии и детективы, то я рекомендую вам посмотреть этот фильм.
P.S. Спасибо подписчикам за внимательность. Таки из-за болезни написал совсем не ту оценку с кинопоиска ;(
Кинопоиск
«Смотрите, как они бегут» (See How They Run, 2022)
Лондон, 1953 год. На вечеринке по поводу сотой постановки пьесы Агаты Кристи «Мышеловка» убивают голливудского режиссёра, который собирался снимать по пьесе фильм. За расследование берётся бывалый инспектор Стоппард, а в помощницы ему определяют девушку-констебля…
❤7
#разное
На этой неделе все еще отходил от простуды. Потому *барабанная дробь* опять пост про фильм.
Пока болел, посмотрел весьма любопытный эстонский фильм "Прощай, СССР!" (оценка на кинопоиске 6.1).
Чем-то фильм напоминает работы Уэса Андерсена и Тайки Вайтити. Такая вот симметрично-геометричная абсурдная сказка с весьма любопытным юмором.
Основная нить повествования - это описание ранних лет жизни мальчика Йоханнеса, который живет в Эстонской ССР. Но живет он в весьма необычное время - на самой границе между союзом и его развалом. А потому фоном к достаточно личной истории идет много чего куда более глобального (и, возможно, печального): развал СССР, Афганистан, общение с КГБ и многое другое.
Выглядит интересно и необычно. Ну и посыл весьма позитивный: хоть в союзе многого не было, но человеческое общение и любовь были. Да и не так уж, в сущности, отличается мир внутри железного занавеса и вне его (впрочем, мне тут сложно судить, я в союзе не жил).
В общем, как кино на вечер - очень даже ничего. Хотя, я бы сказал что оно весьма трагикомичное. То есть, там есть забавные и смешные моменты, но фон истории и некоторые события весьма трагичные.
P.S. Гену было очень жалко (если посмотрите - поймете), это была весьма сильная сцена, на мой взгляд.
На этой неделе все еще отходил от простуды. Потому *барабанная дробь* опять пост про фильм.
Пока болел, посмотрел весьма любопытный эстонский фильм "Прощай, СССР!" (оценка на кинопоиске 6.1).
Чем-то фильм напоминает работы Уэса Андерсена и Тайки Вайтити. Такая вот симметрично-геометричная абсурдная сказка с весьма любопытным юмором.
Основная нить повествования - это описание ранних лет жизни мальчика Йоханнеса, который живет в Эстонской ССР. Но живет он в весьма необычное время - на самой границе между союзом и его развалом. А потому фоном к достаточно личной истории идет много чего куда более глобального (и, возможно, печального): развал СССР, Афганистан, общение с КГБ и многое другое.
Выглядит интересно и необычно. Ну и посыл весьма позитивный: хоть в союзе многого не было, но человеческое общение и любовь были. Да и не так уж, в сущности, отличается мир внутри железного занавеса и вне его (впрочем, мне тут сложно судить, я в союзе не жил).
В общем, как кино на вечер - очень даже ничего. Хотя, я бы сказал что оно весьма трагикомичное. То есть, там есть забавные и смешные моменты, но фон истории и некоторые события весьма трагичные.
P.S. Гену было очень жалко (если посмотрите - поймете), это была весьма сильная сцена, на мой взгляд.
❤5
Forwarded from Осенило - написал
Про слова и картинку
Давным-давно, когда я вела семинар по экранизациям на филологическом факультете МГУ, мы со студентами переводили на русский сценарии британского драматурга и нобелевского лауреата Гарольда Пинтера.
Это было отличное упражнение по внимательному чтению хороших сценарных текстов. Я бы всем сценаристам советовала перевести сценарий-другой с иностранного языка – просто чтобы прочувствовать устройство сценарной механики и понять, почему автор пишет именно так и выбирает именно эти слова, а не их синонимы.
Так вот, Пинтер. Его киносценарии немногословны – почти как пьесы. И очень точны – почти как стихи. Особенно ремарки. С некоторыми ремарками мы бились месяцами, перебирая тезаурус в поисках адекватного перевода, – и все равно ничего не получалось.
В одной из ремарок, об которые мы со студентами сломали головы, было словосочетание «a bulky object» (дословно – «громоздкий предмет»). По контексту было ясно, что это предмет мебели в одной из комнат старинного особняка. Но что конкретно – кресло? комод? диван?
В том-то и дело, что по сценарной картинке получалось, что это неважно: просто какая-то громоздкая фиговина занимает место в помещении. Пинтер нашел для этой картинки лаконичное английское описание, которое совершенно не работало в переводе, потому что по-русски «громоздкий предмет мебели» звучит одновременно и слишком конкретно (конкретнее, чем «фиговина»), и очень глупо.
Я уже не помню, как мы со студентами вышли из положения (подозреваю, что никак). Но именно тогда я впервые задумалась о несоответствии, с которым постоянно имею дело в своей работе.
Слова никогда не описывают картинку целиком. Всегда остается что-то, что ты видишь внутренним взором, но передать другому не можешь, как ни старайся.
Именно поэтому режиссер видит мой сценарий не так, как я. Даже очень хороший сценарий, в котором каждая реплика и ремарка сто раз проверена, вычитана и вылизана. Именно поэтому герои любимых книжек в кино выглядят совершенно не так, как мы их себе представляем. И именно поэтому писать трудно, даже если в голове вся история уже сложилась.
Работая над романом (первым, а сейчас и вторым), я все время сталкиваюсь с нехваткой слов в родном языке, чтобы описать то, что вижу внутренним взором. Как двигаются драки, птеры, секты и все остальные существа на Гарториксе (и как, кстати, называются части их странных тел)? Как выглядят эстакады с летящими по ним аэромобилями? Какого цвета глаза у Дрейка, в конце концов?
На все эти вопросы у меня есть ответы, но они целиком и полностью визуальные. Перевести их в слова – ежедневная, кропотливая и в каком-то смысле тщетная работа.
Подробность описаний не спасает – скорее, даже мешает. Избыточная словесная детализация картинки забивает канал читателю и дезориентирует его; это знает всякий, кто хоть раз читал описание поз для йоги и пытался применить его к своему телу. «Вытяните правую руку вверх и разверните ее наружу так, чтобы большой палец смотрел вправо, а ладонь была обращена назад», – ну-ну, удачи.
На самом деле чем меньше слов в описании, тем лучше оно работает, – при условии, что слова очень точно подобраны. Главное – не повторять ими то, что видишь, а размечать картинку, словно рисуешь контуры для раскраски. Несколько точек в нужных местах, на перекрестьях линий, подскажут читателю, что это за фигура, – а дальше он уже сам все придумает и раскрасит.
Это основной принцип не только литературного описания, но и сценаристики как таковой. Сценарий – это контур будущего фильма, раскраска с пунктирными линиями, которые тем не менее должны складываться в однозначные формы, чтобы читатель не гадал, рыбку он видит, или птичку, или вовсе кусок говна.
Для этого автору важно знать, какие именно точки в ментальной картинке нужно разметить и описать, чтобы читатель ее воспринял. Отсюда – и «bulky object», и емкие характерные описания персонажей вроде «грушевидного носа» у космонавта из сериала «Частица вселенной» или фандоринских «седых висков». Все это – точки, по которым читатель cможет, как в анекдоте, дорисовать себе «всю остальную сову»...
Давным-давно, когда я вела семинар по экранизациям на филологическом факультете МГУ, мы со студентами переводили на русский сценарии британского драматурга и нобелевского лауреата Гарольда Пинтера.
Это было отличное упражнение по внимательному чтению хороших сценарных текстов. Я бы всем сценаристам советовала перевести сценарий-другой с иностранного языка – просто чтобы прочувствовать устройство сценарной механики и понять, почему автор пишет именно так и выбирает именно эти слова, а не их синонимы.
Так вот, Пинтер. Его киносценарии немногословны – почти как пьесы. И очень точны – почти как стихи. Особенно ремарки. С некоторыми ремарками мы бились месяцами, перебирая тезаурус в поисках адекватного перевода, – и все равно ничего не получалось.
В одной из ремарок, об которые мы со студентами сломали головы, было словосочетание «a bulky object» (дословно – «громоздкий предмет»). По контексту было ясно, что это предмет мебели в одной из комнат старинного особняка. Но что конкретно – кресло? комод? диван?
В том-то и дело, что по сценарной картинке получалось, что это неважно: просто какая-то громоздкая фиговина занимает место в помещении. Пинтер нашел для этой картинки лаконичное английское описание, которое совершенно не работало в переводе, потому что по-русски «громоздкий предмет мебели» звучит одновременно и слишком конкретно (конкретнее, чем «фиговина»), и очень глупо.
Я уже не помню, как мы со студентами вышли из положения (подозреваю, что никак). Но именно тогда я впервые задумалась о несоответствии, с которым постоянно имею дело в своей работе.
Слова никогда не описывают картинку целиком. Всегда остается что-то, что ты видишь внутренним взором, но передать другому не можешь, как ни старайся.
Именно поэтому режиссер видит мой сценарий не так, как я. Даже очень хороший сценарий, в котором каждая реплика и ремарка сто раз проверена, вычитана и вылизана. Именно поэтому герои любимых книжек в кино выглядят совершенно не так, как мы их себе представляем. И именно поэтому писать трудно, даже если в голове вся история уже сложилась.
Работая над романом (первым, а сейчас и вторым), я все время сталкиваюсь с нехваткой слов в родном языке, чтобы описать то, что вижу внутренним взором. Как двигаются драки, птеры, секты и все остальные существа на Гарториксе (и как, кстати, называются части их странных тел)? Как выглядят эстакады с летящими по ним аэромобилями? Какого цвета глаза у Дрейка, в конце концов?
На все эти вопросы у меня есть ответы, но они целиком и полностью визуальные. Перевести их в слова – ежедневная, кропотливая и в каком-то смысле тщетная работа.
Подробность описаний не спасает – скорее, даже мешает. Избыточная словесная детализация картинки забивает канал читателю и дезориентирует его; это знает всякий, кто хоть раз читал описание поз для йоги и пытался применить его к своему телу. «Вытяните правую руку вверх и разверните ее наружу так, чтобы большой палец смотрел вправо, а ладонь была обращена назад», – ну-ну, удачи.
На самом деле чем меньше слов в описании, тем лучше оно работает, – при условии, что слова очень точно подобраны. Главное – не повторять ими то, что видишь, а размечать картинку, словно рисуешь контуры для раскраски. Несколько точек в нужных местах, на перекрестьях линий, подскажут читателю, что это за фигура, – а дальше он уже сам все придумает и раскрасит.
Это основной принцип не только литературного описания, но и сценаристики как таковой. Сценарий – это контур будущего фильма, раскраска с пунктирными линиями, которые тем не менее должны складываться в однозначные формы, чтобы читатель не гадал, рыбку он видит, или птичку, или вовсе кусок говна.
Для этого автору важно знать, какие именно точки в ментальной картинке нужно разметить и описать, чтобы читатель ее воспринял. Отсюда – и «bulky object», и емкие характерные описания персонажей вроде «грушевидного носа» у космонавта из сериала «Частица вселенной» или фандоринских «седых висков». Все это – точки, по которым читатель cможет, как в анекдоте, дорисовать себе «всю остальную сову»...
❤10👀1
#analytics
Сегодня речь про один из достаточно классических фреймворков метрик продукта. А именно, про "пиратские метрики". Названы они так, потому что из первых букв названий метрик получается "AARRR" (ну и в популярной культуре как-то закрепилось, что пираты издают такие звуки). Предложен данный фреймворк был в 2007 году Дэйвом Макклюром.
Что же входит в пиратские метрики?
Acquisition – привлечение (как и сколько пользователей мы привлекаем в продукт)
Activation – активация (насколько хорошо привлеченные лиды превращаются в реальных пользователей)
Retention – возвращаемость (как часто и какая доля пользователей возвращается к использованию продукта)
Refferal – готовность рекомендовать (насколько наши пользователи готовы рекомендовать наши услуги)
Revenue – доход (тут все понятно, это то, сколько пиастров приносит наш продукт)
Получается такая себе пирамидка (пример этой пирамидки на картинке к посту), где от уровня привлечения мы постепенно переходим все дальше и дальше по этапам использования продукта. Соответственно, получаем сквозной набор метрик для мониторинга нашего продукта и его здоровья. Плюсом идет понимание, на каком этапе возникает "затык" (например, если мы привлекаем некачественный трафик, то он очень плохо конвертируется в пользователей, что влечет малую базу, малый поток денег и прочие проблемы в продукте).
Почему этот фреймворк популярен?
Тут все просто. Легко запомнить, легко понять, легко следить. Достаточно простой набор показателей, но он позволяет неплохо работать с продуктом, строить гипотезы и понимать, что и где у нас просаживается. Как точка старта для настройки аналитики в продукте - отличный вариант.
Сегодня речь про один из достаточно классических фреймворков метрик продукта. А именно, про "пиратские метрики". Названы они так, потому что из первых букв названий метрик получается "AARRR" (ну и в популярной культуре как-то закрепилось, что пираты издают такие звуки). Предложен данный фреймворк был в 2007 году Дэйвом Макклюром.
Что же входит в пиратские метрики?
Acquisition – привлечение (как и сколько пользователей мы привлекаем в продукт)
Activation – активация (насколько хорошо привлеченные лиды превращаются в реальных пользователей)
Retention – возвращаемость (как часто и какая доля пользователей возвращается к использованию продукта)
Refferal – готовность рекомендовать (насколько наши пользователи готовы рекомендовать наши услуги)
Revenue – доход (тут все понятно, это то, сколько пиастров приносит наш продукт)
Получается такая себе пирамидка (пример этой пирамидки на картинке к посту), где от уровня привлечения мы постепенно переходим все дальше и дальше по этапам использования продукта. Соответственно, получаем сквозной набор метрик для мониторинга нашего продукта и его здоровья. Плюсом идет понимание, на каком этапе возникает "затык" (например, если мы привлекаем некачественный трафик, то он очень плохо конвертируется в пользователей, что влечет малую базу, малый поток денег и прочие проблемы в продукте).
Почему этот фреймворк популярен?
Тут все просто. Легко запомнить, легко понять, легко следить. Достаточно простой набор показателей, но он позволяет неплохо работать с продуктом, строить гипотезы и понимать, что и где у нас просаживается. Как точка старта для настройки аналитики в продукте - отличный вариант.
❤8
#разное
У меня отпуск, а потому опять пост про кино.
На днях ходил на "Оппенгеймера" (который прокатывается у нас под кодовым названием "Дубак"). Фильм мне понравился. Интересно сделан, хорошие актеры, нетривиальная тема. И уже породил достаточно мемов (есть повод поглядеть на их первоисточник).
Посыл фильма - это идея о том, что научный прогресс может быть как благословением, так и проклятием для человечества, в зависимости от того, как он используется и кто им владеет. Фильм показывает, как Оппенгеймер, который был мотивирован жаждой знания и желанием служить своей стране, стал создателем оружия, которое изменило ход истории и повлияло на судьбы миллионов людей. Фильм также показывает, как Оппенгеймер пытался справиться с последствиями своего открытия, которое принесло ему славу и почёт, но также врагов и обвинения. Из основных вопросов можно выделить: вопросы о том, какие границы должны быть у науки, какая ответственность лежит на учёных, какие цели и ценности должны руководить ими, и какой выбор они должны сделать между своей совестью и своими обязанностями.
И все это на фоне жизни главного героя, его гениальности и, в какой-то степени, безумия (одно обычно идет за руку с другим). Фильм обозревает достаточно большой промежуток времени, где-то около 30-40 лет. И имеет не очень-то линейную структуру (дратути, господин Нолан). Впрочем, там все достаточно понятно по развитию сюжета. Просто периодически происходят скачки во времени и меняется формат съемки (отсюда как раз стильное черно-белое изображение).
Смотреть ли этот фильм?
Пожалуй, стоит посмотреть.
А вот в кино, или дома - вопрос открытый (не скажу, что там есть много чего интересного для большого экрана).
У меня отпуск, а потому опять пост про кино.
На днях ходил на "Оппенгеймера" (который прокатывается у нас под кодовым названием "Дубак"). Фильм мне понравился. Интересно сделан, хорошие актеры, нетривиальная тема. И уже породил достаточно мемов (есть повод поглядеть на их первоисточник).
Посыл фильма - это идея о том, что научный прогресс может быть как благословением, так и проклятием для человечества, в зависимости от того, как он используется и кто им владеет. Фильм показывает, как Оппенгеймер, который был мотивирован жаждой знания и желанием служить своей стране, стал создателем оружия, которое изменило ход истории и повлияло на судьбы миллионов людей. Фильм также показывает, как Оппенгеймер пытался справиться с последствиями своего открытия, которое принесло ему славу и почёт, но также врагов и обвинения. Из основных вопросов можно выделить: вопросы о том, какие границы должны быть у науки, какая ответственность лежит на учёных, какие цели и ценности должны руководить ими, и какой выбор они должны сделать между своей совестью и своими обязанностями.
И все это на фоне жизни главного героя, его гениальности и, в какой-то степени, безумия (одно обычно идет за руку с другим). Фильм обозревает достаточно большой промежуток времени, где-то около 30-40 лет. И имеет не очень-то линейную структуру (дратути, господин Нолан). Впрочем, там все достаточно понятно по развитию сюжета. Просто периодически происходят скачки во времени и меняется формат съемки (отсюда как раз стильное черно-белое изображение).
Смотреть ли этот фильм?
Пожалуй, стоит посмотреть.
А вот в кино, или дома - вопрос открытый (не скажу, что там есть много чего интересного для большого экрана).
❤13👍4
#interpretable_ml
Partial dependence plot (PDP) - это инструмент для визуализации влияния одной или нескольких переменных на прогнозируемую переменную в модели машинного обучения. PDP показывает, как изменяется ожидание прогноза при изменении значения одного или нескольких признаков. Интуитивно мы можем интерпретировать частичную зависимость как ожидаемый целевой отклик в зависимости от интересующих входных признаков. PDP может помочь понять, как модель учитывает различные факторы и какие из них являются наиболее важными для прогнозирования. При этом, обычно в расчет берутся одна-две переменные, иначе читать график PDP будет несколько затруднительно.
Для построения PDP необходимо выполнить следующие шаги:
- Выбрать признак (или группу признаков), для которой хотим построить PDP;
- Для каждого наблюдения в выборке заменить значение выбранного признака на некоторое фиксированное значение;
- Сделать прогноз для каждого наблюдения с измененным значением и усреднить полученные прогнозы по всем наблюдениям. Это будет значение PDP для выбранного фиксированного значения признака;
- Повторить предыдущие шаги для разных фиксированных значений и построить график зависимости PDP от этих значений.
Пример PDP можно посмотреть в изображении к посту (визуализация из примеров в sklearn). Кстати, можно поковыряться в исходниках sklearn, чтобы лучше понять реализацию (там ничего сложного нет, только по коду нужно поскакать немного).
Как и у любого метода, у PDP есть и некоторые ограничения:
- PDP может быть неточным, если есть сильная корреляция между переменными, так как он предполагает, что они независимы (это очень важное предположение, которое может сильно влиять на наши результаты и их интерпретацию);
- PDP может быть сложен для интерпретации, если есть сложные нелинейные зависимости или высокоуровневые взаимодействия между переменными;
- PDP может быть вычислительно затратным, если модель медленная или выборка большая.
В общем, PDP - это полезный инструмент для визуализации влияния переменных на прогнозы модели машинного обучения, но он требует осторожности и критического мышления при его использовании и анализе (впрочем, как и любой метод, такая уж у нас область работы).
Пару вариантов библиотек для построения PDP:
1. Библиотека scikit-learn, которая предоставляет класс PartialDependenceDisplay и функцию from_estimator для визуализации частичной зависимости для различных моделей машинного обучения. Документация по методам находится на этой странице.
2. Библиотека PDPbox, которая специализируется на построении pdp и ice (individual conditional expectation) графиков для разных типов переменных и моделей. Документацию и примеры использования этого инструмента можно найти на этой странице.
Partial dependence plot (PDP) - это инструмент для визуализации влияния одной или нескольких переменных на прогнозируемую переменную в модели машинного обучения. PDP показывает, как изменяется ожидание прогноза при изменении значения одного или нескольких признаков. Интуитивно мы можем интерпретировать частичную зависимость как ожидаемый целевой отклик в зависимости от интересующих входных признаков. PDP может помочь понять, как модель учитывает различные факторы и какие из них являются наиболее важными для прогнозирования. При этом, обычно в расчет берутся одна-две переменные, иначе читать график PDP будет несколько затруднительно.
Для построения PDP необходимо выполнить следующие шаги:
- Выбрать признак (или группу признаков), для которой хотим построить PDP;
- Для каждого наблюдения в выборке заменить значение выбранного признака на некоторое фиксированное значение;
- Сделать прогноз для каждого наблюдения с измененным значением и усреднить полученные прогнозы по всем наблюдениям. Это будет значение PDP для выбранного фиксированного значения признака;
- Повторить предыдущие шаги для разных фиксированных значений и построить график зависимости PDP от этих значений.
Пример PDP можно посмотреть в изображении к посту (визуализация из примеров в sklearn). Кстати, можно поковыряться в исходниках sklearn, чтобы лучше понять реализацию (там ничего сложного нет, только по коду нужно поскакать немного).
Как и у любого метода, у PDP есть и некоторые ограничения:
- PDP может быть неточным, если есть сильная корреляция между переменными, так как он предполагает, что они независимы (это очень важное предположение, которое может сильно влиять на наши результаты и их интерпретацию);
- PDP может быть сложен для интерпретации, если есть сложные нелинейные зависимости или высокоуровневые взаимодействия между переменными;
- PDP может быть вычислительно затратным, если модель медленная или выборка большая.
В общем, PDP - это полезный инструмент для визуализации влияния переменных на прогнозы модели машинного обучения, но он требует осторожности и критического мышления при его использовании и анализе (впрочем, как и любой метод, такая уж у нас область работы).
Пару вариантов библиотек для построения PDP:
1. Библиотека scikit-learn, которая предоставляет класс PartialDependenceDisplay и функцию from_estimator для визуализации частичной зависимости для различных моделей машинного обучения. Документация по методам находится на этой странице.
2. Библиотека PDPbox, которая специализируется на построении pdp и ice (individual conditional expectation) графиков для разных типов переменных и моделей. Документацию и примеры использования этого инструмента можно найти на этой странице.
👍6
#statistics
Ловушка фиктивных переменных.
Давайте вспомним, что такое фиктивная переменная (dummy variable)? Вещь простая, но очень надежная. Предположим, у нас есть персонажи из анекдота - русский, немец и американец. Как нам закодировать их, если у нас есть некоторые табличные данные? Есть разные варианты, конечно. Но самый простой - это объявить 1 для наличия категориального признака и 0 для его отсутствия.
Но тут нас и поджидает ловушкаджокера фиктивных переменных. Если мы закодируем каждый из признаков 1 или 0 (то есть, создадим 3 столбца), то получим чистую мультиколлинеарность. А как мы знаем, иметь ее в данных - это дело нехорошее.
Посмотрим на примере. Предположим, у нас есть немножечко данных такого вида:
Если закодируем переменную
А это значит, что у нас сумма этих столбцов всегда будет равна единице. Упс, получаем чистую мультиколлинеарность.
Потому что, если мы будем именовать значения в столбцах за
И что же делать?
Все просто - вместо k столбцов под каждую категорию, мы сделаем k-1 столбцов. Проблема решена.
Например, в нашем примере получим, что 0 и 0 для русского и немца означают американца (а все оттого, что у нас всего 3 категории, так что не являясь немцем или русским, человеку остается только быть американцем).
В принципе, это не особо большая проблема для всех сколько-нибудь адекватных статистических пакетов. Но если вы решите самостоятельно делать перевод категориальных значений в фиктивные переменные, помните о такой вот загвоздке.
Ловушка фиктивных переменных.
Давайте вспомним, что такое фиктивная переменная (dummy variable)? Вещь простая, но очень надежная. Предположим, у нас есть персонажи из анекдота - русский, немец и американец. Как нам закодировать их, если у нас есть некоторые табличные данные? Есть разные варианты, конечно. Но самый простой - это объявить 1 для наличия категориального признака и 0 для его отсутствия.
Но тут нас и поджидает ловушка
Посмотрим на примере. Предположим, у нас есть немножечко данных такого вида:
alcogol | nation
0.5 | русский
0.3 | немец
0.1 | американец
0.7 | русский
0.1 | немец
0.2 | американец
Если закодируем переменную
nation
тремя столбцами, то получим такой вид:1 | 0 | 0
0 | 1 | 0
0 | 0 | 1
1 | 0 | 0
0 | 1 | 0
0 | 0 | 1
А это значит, что у нас сумма этих столбцов всегда будет равна единице. Упс, получаем чистую мультиколлинеарность.
Потому что, если мы будем именовать значения в столбцах за
Ai, Bi, Ci
, то легко выразим, например, Ci
в виде: Ci = 1 - Ai - Bi
. И что же делать?
Все просто - вместо k столбцов под каждую категорию, мы сделаем k-1 столбцов. Проблема решена.
Например, в нашем примере получим, что 0 и 0 для русского и немца означают американца (а все оттого, что у нас всего 3 категории, так что не являясь немцем или русским, человеку остается только быть американцем).
В принципе, это не особо большая проблема для всех сколько-нибудь адекватных статистических пакетов. Но если вы решите самостоятельно делать перевод категориальных значений в фиктивные переменные, помните о такой вот загвоздке.
👍16👎4
#books
Сегодня немного про художественную литературу. Недавно прочитал “Вьюрки” Дарьи Бобылевой. Это роман в рассказах (да, вот такая необычная форма). Впрочем, как по мне - многие рассказы скорее являются главами (сложно их воспринимать отдельными произведениями, слишком много чего завязано на предыдущие события и персонажей).
Книга повествует о жителях дачного поселка, которые оказываются отрезанными от внешнего мира летом, которое не думает заканчиваться многие месяцы подряд. Связи нет, дорога во внешний мир пропала, будто ее вовсе и не было, а соседи ведут себя странно. Вокруг происходят странные и загадочные события. Что же скрывается за этим кошмаром? Кто или что управляет их судьбами? И как им выжить в этом аду?
Стиль хороший, читается книга легко. Персонажи интересные, характеры разнообразные. Впрочем, персонажи имеют немного преувеличенные черты (что воспринимается скорее иронично, но кто-то может посчитать минусом). Ну и, конечно, русская хтонь и жизнь рядом с неведомым. Особенно забавно, как в итоге люди привыкают к жизни в безумном и опасном мире ("не, ну а что делать?"). Но вот это "забавно" может быть и минусом. Ироничное повествование снижает градус напряжения (что само по себе не плохо, все зависит от авторского замысла).
Еще интересным показалось использование фольклорных персонажей, характерных для славянской мифологии. Там есть и Полудница и Леший, и многие-многие другие. И как-то они прям хорошо встраиваются в жизнь обычного садового товарищества. Видимо, память веков в крови проявляется ;) ("не, ну а что тут такого (ver. 2)?")
P.S. На одной из обложек написано "самая страшная книга". Это преувеличение. Больше похоже на мистику или триллер, чем на хоррор, от которого в жилах стынет кровь.
Сегодня немного про художественную литературу. Недавно прочитал “Вьюрки” Дарьи Бобылевой. Это роман в рассказах (да, вот такая необычная форма). Впрочем, как по мне - многие рассказы скорее являются главами (сложно их воспринимать отдельными произведениями, слишком много чего завязано на предыдущие события и персонажей).
Книга повествует о жителях дачного поселка, которые оказываются отрезанными от внешнего мира летом, которое не думает заканчиваться многие месяцы подряд. Связи нет, дорога во внешний мир пропала, будто ее вовсе и не было, а соседи ведут себя странно. Вокруг происходят странные и загадочные события. Что же скрывается за этим кошмаром? Кто или что управляет их судьбами? И как им выжить в этом аду?
Стиль хороший, читается книга легко. Персонажи интересные, характеры разнообразные. Впрочем, персонажи имеют немного преувеличенные черты (что воспринимается скорее иронично, но кто-то может посчитать минусом). Ну и, конечно, русская хтонь и жизнь рядом с неведомым. Особенно забавно, как в итоге люди привыкают к жизни в безумном и опасном мире ("не, ну а что делать?"). Но вот это "забавно" может быть и минусом. Ироничное повествование снижает градус напряжения (что само по себе не плохо, все зависит от авторского замысла).
Еще интересным показалось использование фольклорных персонажей, характерных для славянской мифологии. Там есть и Полудница и Леший, и многие-многие другие. И как-то они прям хорошо встраиваются в жизнь обычного садового товарищества. Видимо, память веков в крови проявляется ;) ("не, ну а что тут такого (ver. 2)?")
P.S. На одной из обложек написано "самая страшная книга". Это преувеличение. Больше похоже на мистику или триллер, чем на хоррор, от которого в жилах стынет кровь.
❤9👍1
Forwarded from XOR
This media is not supported in your browser
VIEW IN TELEGRAM
SQLFlow - отличный инструмент для визуализации SQL-запросов. Легкий и простой интрумент для визуализация связей и структур БД, поддерживающий более 20 разных БД.
Демо – https://sqlflow.gudusoft.com/
Github – https://github.com/sqlparser/sqlflow_public/blob/master/install_sqlflow.md
@xor_journal
Демо – https://sqlflow.gudusoft.com/
Github – https://github.com/sqlparser/sqlflow_public/blob/master/install_sqlflow.md
@xor_journal
👍11❤🔥5
Forwarded from Русский язык | Грамотность
Про овощи
Если написать в текстовом редакторе слово «овощь», он подчеркнёт его красным и исправит на привычный нам вариант - «овощ». Но вы удивитесь, что слово «овощь» тоже существует.
Овощь - это собирательное существительное. Как, например, молодёжь/мебель. Даже Некрасов писал: «Вся овощь огородная поспела». Понимаете, да? Это как бы общее название для всех овощей в огороде. В единичном же экземпляре каждый овощ будет овощем без мягкого знака.
Поэтому оба слова существуют. Просто одно либо не используется совсем, либо используется неправильно. Будьте грамотными, а не редисками с грядки.
Если написать в текстовом редакторе слово «овощь», он подчеркнёт его красным и исправит на привычный нам вариант - «овощ». Но вы удивитесь, что слово «овощь» тоже существует.
Овощь - это собирательное существительное. Как, например, молодёжь/мебель. Даже Некрасов писал: «Вся овощь огородная поспела». Понимаете, да? Это как бы общее название для всех овощей в огороде. В единичном же экземпляре каждый овощ будет овощем без мягкого знака.
Поэтому оба слова существуют. Просто одно либо не используется совсем, либо используется неправильно. Будьте грамотными, а не редисками с грядки.
🔥11🤯11