Forwarded from Кодим на Коленке | Уроки по программированию
Forwarded from ИЦ "ГЕВИССТА"
Часть_6_2_4_Иллюстрация_работы_дерева_классификации_CART_на_конкретном.ipynb
514.7 KB
Важности скоррелированных признаков в дереве, лесе и бустинге
В группе, посвященной CatBoost, задали вопрос, какие важности будут у двух высоко коррелированных признаков. Если корреляция идеальная, происходит разбавление важности коррелированных признаков из-за их взаимозаменяемости: важность двух идентичных признаков будет снижена примерно вдвое. Чем сильнее корреляция, тем сильнее выражен эффект. Если корреляция сильная, но не идеальная, эффект будет снижен. На эффект можно влиять с помощью отбора наблюдений/признаков. Он проявляется в одиночном дереве, случайном лесе и бустинге, из всех бустингов меньше всего проявляется в LightGBM. Приложил один из экспериментов, которые делал для книжки по бустингу. Там можно поиграть с добавлением шума.
В группе, посвященной CatBoost, задали вопрос, какие важности будут у двух высоко коррелированных признаков. Если корреляция идеальная, происходит разбавление важности коррелированных признаков из-за их взаимозаменяемости: важность двух идентичных признаков будет снижена примерно вдвое. Чем сильнее корреляция, тем сильнее выражен эффект. Если корреляция сильная, но не идеальная, эффект будет снижен. На эффект можно влиять с помощью отбора наблюдений/признаков. Он проявляется в одиночном дереве, случайном лесе и бустинге, из всех бустингов меньше всего проявляется в LightGBM. Приложил один из экспериментов, которые делал для книжки по бустингу. Там можно поиграть с добавлением шума.
Forwarded from Тимлид Очевидность | Евгений Антонов
Проклятие знания
Проклятие знания — термин, предложенный психологом Робином Хогартом для обозначения психологического феномена, заключающегося в том, что более информированным людям чрезвычайно сложно рассматривать какую-либо проблему с точки зрения менее информированных людей.
Эта штука встречается в работе чаще, чем нам бы этого хотелось.
Обучение и менторство
Видел много раз, что опытный наставник довольно непонятно и непродуктивно чему-то учит новичков. Он уже и забыл, как был сам начинающим специалистом, и что вот эти вот «простейшие азы, которые очевидны», на самом деле не простейшие, не очевидные, и требуют детального объяснения.
В итоге обучающий сыплет сложными терминами и абстракциями, а обучающийся готов провалиться под землю от чувства собственной ничтожности. Ведь наставник же говорит, что там всё легче легкого, значит, это обучающийся – плохой, глупый, неправильный.
Заказчик-исполнитель
В отношениях заказчиков и исполнителей тоже порой всё плохо. Заказчик выдает лишь половину нужной информации, потому что он знает уже хорошо свою доменную область и «ЭТО ЖЕ ОЧЕВИДНО» (оригинальная цитата, с которой я столкнулся в подобном случае).
Или наоборот, исполнитель рассказывает продавцу тортиков, какие он паттерны проектирования использует, как CI/CD настроит и почему синглтон нынче считают моветоном.
Абсолютно то же самое происходит во взаимодействии менеджер-программист. Один про код, другой про РОИ, ДАУ, МАУ, CJM и прочее.
Программист-программист
Уже вроде проще. Да, но нет.
Тут тоже сильно зависит от компетенции и знания глоссария. Кстати, здесь в какой-то мере помогает, например, теория паттернов проектирования. Ведь тут у всех появляется общий словарь и одинаковое понимание абстракций.
Что делать
На мой взгляд, надо хорошенько думать о собеседнике. Надо прикидывать, что он знает, что не знает. Давать как можно больше контекста по теме разговора. Надо уточнять, всё ли понятно. Ну т.е. совет, казалось бы, обо всём и ни о чем.
Давайте чуть более практический пример. Если я хочу, чтобы пентестеры проверили мой новый проект, я не напишу им «Доброго времени суток, коллеги! Прошу проверить мой проект.», как это могли бы сделать некоторые. Я сообщу им весь потенциально нужный контекст, которого они не знают.
Например, я объясню:
⁃ Что за проект и какая у него основная цель. Это нужно для общего понимания, на что делать упор при проверке.
⁃ Когда дедлайн по запуску. Чтобы сроки выполнения сматчить.
⁃ Есть ли пользовательский ввод и если да, то где и какой: формы, загружаемые файлы, регистрации, авторизации и прочее. Чтобы этому уделили максимальное внимание и ничего не осталось незамеченным.
⁃ Есть ли интеграции с внешними системами. Чтобы понимали, какие данные могут поступать извне и куда, в случае прорыва периметра, куда злоумышленник может попасть еще.
⁃ Какой стэк технологий, где конфиги, данные о внешних модулях и библиотеках. Чтобы выяснить все данные об известных уязвимостях.
⁃ Где конфиги сервера и как получить туда доступ. Ведь не только на уровне кода бывают уязвимости.
Все эти пункты дают ответы сразу на многие вопросы, которые потенциально возникали бы спустя часы бестолкового поиска вслепую. Заодно меньше шанс, что что-то пропустят, потому что не знали про это и оно лежало в каком-то неочевидном месте.
Возможно, этих данных окажется недостаточно, и тогда я готов отвечать на дополнительные вопросы. Но я буду знать, что я изначально покрыл большинство темных пятен и люди будут уже что-то уточнять, довольно неплохо ориентируясь в проекте.
Итог
Формирования общего глоссария с собеседником, передача полного контекста, мысль о том, что всё, что очевидно для тебя, может быть неочевидно для кого-то другого – всё это ведет к минимизации негативного эффекта проклятия знания, устранению лишней пустой работы и вопросов.
А еще это довольно уважительно по отношению к собеседнику. А люди любят, когда их уважают.
Проклятие знания — термин, предложенный психологом Робином Хогартом для обозначения психологического феномена, заключающегося в том, что более информированным людям чрезвычайно сложно рассматривать какую-либо проблему с точки зрения менее информированных людей.
Эта штука встречается в работе чаще, чем нам бы этого хотелось.
Обучение и менторство
Видел много раз, что опытный наставник довольно непонятно и непродуктивно чему-то учит новичков. Он уже и забыл, как был сам начинающим специалистом, и что вот эти вот «простейшие азы, которые очевидны», на самом деле не простейшие, не очевидные, и требуют детального объяснения.
В итоге обучающий сыплет сложными терминами и абстракциями, а обучающийся готов провалиться под землю от чувства собственной ничтожности. Ведь наставник же говорит, что там всё легче легкого, значит, это обучающийся – плохой, глупый, неправильный.
Заказчик-исполнитель
В отношениях заказчиков и исполнителей тоже порой всё плохо. Заказчик выдает лишь половину нужной информации, потому что он знает уже хорошо свою доменную область и «ЭТО ЖЕ ОЧЕВИДНО» (оригинальная цитата, с которой я столкнулся в подобном случае).
Или наоборот, исполнитель рассказывает продавцу тортиков, какие он паттерны проектирования использует, как CI/CD настроит и почему синглтон нынче считают моветоном.
Абсолютно то же самое происходит во взаимодействии менеджер-программист. Один про код, другой про РОИ, ДАУ, МАУ, CJM и прочее.
Программист-программист
Уже вроде проще. Да, но нет.
Тут тоже сильно зависит от компетенции и знания глоссария. Кстати, здесь в какой-то мере помогает, например, теория паттернов проектирования. Ведь тут у всех появляется общий словарь и одинаковое понимание абстракций.
Что делать
На мой взгляд, надо хорошенько думать о собеседнике. Надо прикидывать, что он знает, что не знает. Давать как можно больше контекста по теме разговора. Надо уточнять, всё ли понятно. Ну т.е. совет, казалось бы, обо всём и ни о чем.
Давайте чуть более практический пример. Если я хочу, чтобы пентестеры проверили мой новый проект, я не напишу им «Доброго времени суток, коллеги! Прошу проверить мой проект.», как это могли бы сделать некоторые. Я сообщу им весь потенциально нужный контекст, которого они не знают.
Например, я объясню:
⁃ Что за проект и какая у него основная цель. Это нужно для общего понимания, на что делать упор при проверке.
⁃ Когда дедлайн по запуску. Чтобы сроки выполнения сматчить.
⁃ Есть ли пользовательский ввод и если да, то где и какой: формы, загружаемые файлы, регистрации, авторизации и прочее. Чтобы этому уделили максимальное внимание и ничего не осталось незамеченным.
⁃ Есть ли интеграции с внешними системами. Чтобы понимали, какие данные могут поступать извне и куда, в случае прорыва периметра, куда злоумышленник может попасть еще.
⁃ Какой стэк технологий, где конфиги, данные о внешних модулях и библиотеках. Чтобы выяснить все данные об известных уязвимостях.
⁃ Где конфиги сервера и как получить туда доступ. Ведь не только на уровне кода бывают уязвимости.
Все эти пункты дают ответы сразу на многие вопросы, которые потенциально возникали бы спустя часы бестолкового поиска вслепую. Заодно меньше шанс, что что-то пропустят, потому что не знали про это и оно лежало в каком-то неочевидном месте.
Возможно, этих данных окажется недостаточно, и тогда я готов отвечать на дополнительные вопросы. Но я буду знать, что я изначально покрыл большинство темных пятен и люди будут уже что-то уточнять, довольно неплохо ориентируясь в проекте.
Итог
Формирования общего глоссария с собеседником, передача полного контекста, мысль о том, что всё, что очевидно для тебя, может быть неочевидно для кого-то другого – всё это ведет к минимизации негативного эффекта проклятия знания, устранению лишней пустой работы и вопросов.
А еще это довольно уважительно по отношению к собеседнику. А люди любят, когда их уважают.
Forwarded from Блог о Data Science 💻 Наука о данных (Red Powerful)
Этот пост будет по большей части как self best practice.
Cпарсить можно абсолютно все что угодно!)
Если вы когда то проходили курсы по парсингу или веб скрапингу, то в жизни все не так просто, как на курсах. Большинство сайтов защищаются от ддос атак и подозрительных активностей, а парсеры могут сильно нагружать сайты. Поэтому вас на изи заблокать, но выход всегда есть.Можно почувствовать себя немного хакером и бороться с системой, пытаться её обойти. Благо для этого есть достаточно инструментов. Знайте, что если у вас есть данные - у вас есть все.
Hello world + Dev Ops, потому что в дальнейшем хрен знает где мы вообще этот парсер запускать будем, а может распределенно придется парсить.После чего мы можем начать писать первую версию парсера.
jupyter notebook, избавьте меня от этого пожалуйста.Что нам для этого понадобиться?
• request
• BS4/selenium/scrapy
• json, csv, postgresql
• pytest
• superset (или че то такое, что бы картиночки смотреть)
• multiprocessing/joblib
• fakeuseragent, proxy server
Желательно создать отдельный скрипт бекапа данных на виртуальное хранилище и подгрузка в БД, которая находится на другом сервере.Гуглим как парсить данные и пользоваться этим всем, поэтому вот вам гайд
- PythonToday[1][2][3] (Самое годное, что вы можете найти и повторить)
- Как спарсить что угодно?
- HTML не панацея [1][2]
- Request не панацея
- Distributed web parsing [1][2]
Вообще этот мужик годноту делает
Так же вам стоит знать, что запускать лучше всего свои парсеры несколько раз, на несколько параллельных джобах или серверах. (вообще лучше каждый сервер распределить на свой регион или участок, а джобы на один и тот же сектор, так получиться наиболее корректная валидация парсинга). Так вы валидируете результат, а потом просто смотрите по объему и удаляете дубликаты, это достаточно легко сделать.
Парсим че угодно и радуемся жизни. Можно продать инфу конкурентам или сделать на ней аналитический отчет.
Если вам нужно что-то спарсить
Можно всегда написать автору канала @redpf
Please open Telegram to view this post
VIEW IN TELEGRAM
#interview
Страничка с вопросами по собеседованиям в DS
https://interview-mds.ru/
+ вопросы и ответы
https://docs.google.com/document/d/1eeP6R36Ur7aTFica7uBkx8FlaQKSE8dHamdnoAJCVUM/edit?usp=sharing
Страничка с вопросами по собеседованиям в DS
https://interview-mds.ru/
+ вопросы и ответы
https://docs.google.com/document/d/1eeP6R36Ur7aTFica7uBkx8FlaQKSE8dHamdnoAJCVUM/edit?usp=sharing
Google Docs
interview-mds.ru
Вопросы https://interview-mds.ru/ с ответами тг канал: https://teleg.run/mommyscience Что такое статистическая мощность? Сколько нужно провести экспериментов, чтобы построить доверительный интервал? Какой ряд называется стационарным? Как работает регуляризация…
Forwarded from Denis
Интересное что-то
https://academic.oup.com/bioinformatics/article/35/8/1358/5100883
Генерирует псевдо статистику фич
Forwarded from Denis
Интересное что-то
https://academic.oup.com/bioinformatics/article/35/8/1358/5100883
Важно, что хотя и не embedding based, но ищет группы фич
Forwarded from Denis
#career #softskills
Рекомендую ознакамливаться с критической точки зрения и если имеете свободное время
Есть не особо лестные отзывы
Рекомендую ознакамливаться с критической точки зрения и если имеете свободное время
Есть не особо лестные отзывы
Forwarded from Small Data Science for Russian Adventurers
#видео
Выложен в виде коротких нарезок самый нестандартный мини-курс на ВМК "Как уйти с тропы леммингов". Про планирование карьеры, выгорание, здоровье, конкуренцию и т.п.
Автор - Дмитрий Ватолин, известный постами на Хабре, в частности:
- К вопросу о математических способностях студентов или как учить переполненный мозг
- О русской науке замолвите слово или за что я люблю Тинькофф, часть 1
Если кто-то посмотрит, интересно услышать мнение в комментариях;)
Выложен в виде коротких нарезок самый нестандартный мини-курс на ВМК "Как уйти с тропы леммингов". Про планирование карьеры, выгорание, здоровье, конкуренцию и т.п.
Автор - Дмитрий Ватолин, известный постами на Хабре, в частности:
- К вопросу о математических способностях студентов или как учить переполненный мозг
- О русской науке замолвите слово или за что я люблю Тинькофф, часть 1
Если кто-то посмотрит, интересно услышать мнение в комментариях;)
Forwarded from DevFM
Вспоминая git
В статье Top 30 Git Commands You Should Know To Master Git CLI собран набор часто используемых команд для работы с гитом. Некоторые из них достаточно очевидные, но со списком точно стоит ознакомиться.
Мы на практике часто используем команды:
7. посмотреть лог коммитов с изменениями
9. просмотреть изменения перед коммитом
11. переименовать файлы
13. внести изменения в последний коммит
15. откатить произвольный коммит
20. просмотреть лог коммитов в виде графа
24. просмотреть подробности об удаленном репозитории: push url, fetch url, какие ветки есть, какая ветка head
29. удалить ветку в удалённом репозитории
Хочется обратить внимание на вредность второго пункта. Автор рассказывает о способе сохранения своих учетных данных. Но это неправильный путь. Правильный путь — работать с удаленным репозиторием, применяя ssh-ключи. Не парольный способ. И если вдруг не настроена двухфакторка — её тоже стоит прикрутить.
От себя хочется добавить ещё одну полезную команду git stash. А если столкнулись со сложным случаем, то мы рекомендуем использовать sublime merge.
В копилку часто используемых команд добавим создание локальной ветки из удалённой
#skills
В статье Top 30 Git Commands You Should Know To Master Git CLI собран набор часто используемых команд для работы с гитом. Некоторые из них достаточно очевидные, но со списком точно стоит ознакомиться.
Мы на практике часто используем команды:
7. посмотреть лог коммитов с изменениями
9. просмотреть изменения перед коммитом
11. переименовать файлы
13. внести изменения в последний коммит
15. откатить произвольный коммит
20. просмотреть лог коммитов в виде графа
24. просмотреть подробности об удаленном репозитории: push url, fetch url, какие ветки есть, какая ветка head
29. удалить ветку в удалённом репозитории
Хочется обратить внимание на вредность второго пункта. Автор рассказывает о способе сохранения своих учетных данных. Но это неправильный путь. Правильный путь — работать с удаленным репозиторием, применяя ssh-ключи. Не парольный способ. И если вдруг не настроена двухфакторка — её тоже стоит прикрутить.
От себя хочется добавить ещё одну полезную команду git stash. А если столкнулись со сложным случаем, то мы рекомендуем использовать sublime merge.
В копилку часто используемых команд добавим создание локальной ветки из удалённой
git checkout -t origin/some-branch#skills
Medium
Top 30 Git Commands You Should Know To Master Git CLI
Learn the most essential Git commands to boost your productivity, and become a master in managing the GitHub repositories.
Forwarded from ИЦ "ГЕВИССТА"
Полезные задачки по временным рядам
задача Райффайзен Банка https://drive.google.com/drive/folders/1w44RkOz31J5ZF8qb3_rIkC6E2zcEv3n7?usp=share_link
https://www.kaggle.com/competitions/store-sales-time-series-forecasting
https://www.kaggle.com/competitions/demand-forecasting-kernels-only
https://www.kaggle.com/c/competitive-data-science-predict-future-sales
https://www.kaggle.com/competitions/web-traffic-time-series-forecasting/data
https://www.kaggle.com/competitions/jpx-tokyo-stock-exchange-prediction/data
https://www.kaggle.com/competitions/recruit-restaurant-visitor-forecasting/data
https://www.kaggle.com/competitions/the-winton-stock-market-challenge/data
https://www.kaggle.com/competitions/optiver-realized-volatility-prediction/data
https://www.kaggle.com/competitions/g-research-crypto-forecasting/data
https://www.kaggle.com/competitions/tabular-playground-series-mar-2022/overview
https://www.kaggle.com/competitions/godaddy-microbusiness-density-forecasting
https://www.kaggle.com/c/m5-forecasting-accuracy
задача Райффайзен Банка https://drive.google.com/drive/folders/1w44RkOz31J5ZF8qb3_rIkC6E2zcEv3n7?usp=share_link
https://www.kaggle.com/competitions/store-sales-time-series-forecasting
https://www.kaggle.com/competitions/demand-forecasting-kernels-only
https://www.kaggle.com/c/competitive-data-science-predict-future-sales
https://www.kaggle.com/competitions/web-traffic-time-series-forecasting/data
https://www.kaggle.com/competitions/jpx-tokyo-stock-exchange-prediction/data
https://www.kaggle.com/competitions/recruit-restaurant-visitor-forecasting/data
https://www.kaggle.com/competitions/the-winton-stock-market-challenge/data
https://www.kaggle.com/competitions/optiver-realized-volatility-prediction/data
https://www.kaggle.com/competitions/g-research-crypto-forecasting/data
https://www.kaggle.com/competitions/tabular-playground-series-mar-2022/overview
https://www.kaggle.com/competitions/godaddy-microbusiness-density-forecasting
https://www.kaggle.com/c/m5-forecasting-accuracy
Kaggle
Store Sales - Time Series Forecasting
Use machine learning to predict grocery sales