Aspiring Data Science – Telegram
Aspiring Data Science
385 subscribers
465 photos
12 videos
12 files
2.15K links
Заметки экономиста о программировании, прогнозировании и принятии решений, научном методе познания.
Контакт: @fingoldo

I call myself a data scientist because I know just enough math, economics & programming to be dangerous.
Download Telegram
#finance #algotrading #ml #businessidea

Эрни Чан - бывший сотрудник хедж-фонда, уже много лет как частный трейдер, автор 3 хороших книг и множества лекций. Очень интересно наблюдать эволюцию его взглядов на трейдинг и применимость ML в финансах. Идея об уходе от общих таргетов заслуживает внимания и проверки, тем более что о ней же говорит и ДеПрадо (в его книге эта техника называется "метаразметкой").

https://www.youtube.com/watch?v=nAOjbL5bsjA

Книга Quantitative Trading: How to Build Your Own Algorithmic Trading Business https://www.amazon.com/gp/product/B097QGPVND/

Ещё у него есть активный блог: http://epchan.blogspot.com/
🔥3
#python #testing

Лекция об эффективных инструментах тестирования в Питоне от Рэя Хеттингера, разработчика ядра.

https://www.youtube.com/watch?v=ARKbfWk4Xyw&ab_channel=SFPython

Резюме:

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

2) не используйте модуль unittest, вместо него берите py.test: понятнее синтаксис, на 60% меньше печатания.

3) Рэй предпочитает PyFlakes вместо PyLint по причине излишней предвзятости и болтливости последнего )

4) статическая типизация не всегда улучшает читаемость кода, зачастую с ней приходится бороться дольше, чем писать сам код (чтобы убедить проверяющий инструмент). возможный выход – gradual typing.

5) интересен пример модуля, проходящего доктесты, юниттесты, имеющего 100% покрытие, строгую типизацию (проходящую проверки mypy), и всё же содержащего много критических ошибок, которые ждут своего часа, чтобы всплыть.

6) с подобными логическими ошибками помогает бороться пакет Hypothesis, который позволяет для входов функции с помощью декоратора задать стратегии (например: текст, или список целых чисел), автоматически влекущие синтез разнообразных тестовых значений, в том числе и краевых. Этот инструмент за секунды придумает и набросит вашей функции на вход столько всего самого разного и неожиданного, что сами и за неделю не составите ) В примере из доки пакет Гипотезы для текстового входа быстро находит ошибку для пустой строки, а затем и куда более нетривиальную логическую, возникающую при наличии в строке повторяющихся символов.

P.S.: у кого хватило терпения осилить мутации входов с помощью Гипотезы, велкам на следующий метауровень просветления: мутации самого вашего кода с помощью mutatest (и проверки, что сломанный код действительно вызывает падение тестов)! Тем самым автоматически проверяется качество и полнота уже ваших тестов.
👍5🤔1
#physics #energy

"Учёные из Ливерморской национальной лаборатории США совершили прорыв, впервые получив в результате термоядерного синтеза больше энергии, чем было потрачено на запуск реакции, сообщает The Financial Times. Это открывает невероятные перспективы, в теории позволяя обеспечить человечество почти неисчерпаемым источником энергии. Эксперимент проходил в минувшие две недели. Реакции синтеза в национальном комплексе National Ignition Facility (NIF), принадлежащем лаборатории, позволили генерировать 2,5 мегаджоулей энергии — почти 120 % от затраченного лазером 2,1 мегаджоуля. В Министерстве энергетики США уже назвали результаты эксперимента «крупным научным прорывом». Полученные данные всё ещё проверяются.Объект National Ignition Facility на площадке лаборатории обошёлся в $3,5 млрд и изначально предназначался для моделирования военных ядерных взрывов, но использовался также для экспериментов с термоядерным синтезом. В прошлом году в рамках эксперимента с термоядерным синтезом удалось генерировать 70 % энергии от той, что была затрачена лазерами.

Ранее в этом году, в ходе оглашения стратегии развития термоядерной энергии, один из американских конгрессменов заявил, что технология является «святым граалем» чистой энергетики и потенциально способна избавить большее число людей от бедности, чем открытие огня."
🔥1
Forwarded from Записки C3PO
Устали от еженедельных технологических прорывов в ML? Вот вам новость тогда: сегодня министерство энергетики США должно объявить, что смогло произвести реакцию термоядерного синтеза, которая дает энергии больше, чем было на нее потрачено.

https://www.washingtonpost.com/business/2022/12/11/fusion-nuclear-energy-breakthrough/
#python #tricks #hosyaikenazametku

Как лучше аннотировать параметр, который мог быть строкой или списком, а потом ещё добавилось условие, что он может вообще отсутствовать? Изначально он был объявлен как objects_names: Union[str, Iterable], и я думал добавить None как третью опцию в Union, просто и элегантно. Я знал, что вообще-то есть Optional для этих целей, и задумался, будет ли разница для проверщика типов, да и вообще, что лучше выбрать с точки зрения читаемости. Оказалось, что Optional[...] это технический синоним для Union[..., None], но мне понравилась идея всегда использовать Optional: "Personally, I'd stick with always using Optional[] when setting the type for a keyword argument that uses = None to set a default value, this documents the reason why None is allowed better. Moreover, it makes it easier to move the Union[...] part into a separate type alias, or to later remove the Optional[...] part if an argument becomes mandatory." А что выберете Вы?
#writing #reading #knowledgemanagement #businessidea #yan

Юджин Ян, дата сайентист из Амазона, ведёт крайне познавательный блог, рекомендую подписаться на его рассылку. У него лёгкий слог, и он исповедует подход "пиши, чтобы учиться". Основа этого подхода – цикл reading (consume) -> note-taking (collect) -> writing (create).

Читать он рекомендует ежедневно и в трёх категориях "тяжести" одновременно, от технической литературы до художественной. Правда, не знаю, как быть с соотношением печатных/электронных изданий. Печатных у меня очень много непрочтённых, но сложно заставить себя браться за бумажную книгу, если можно потреблять контент (пусть и полезный, вроде лекций) с ютуба. Видимо, нужно стремиться к ежедневному чтению всё же именно бумажных изданий.

Чтение без создания заметок неэффективно. Юдж использует метод Zettelkasten ("ящик заметок") и приложение Roam, когда по мере чтения создаётся множество заметок (простых полезных идей, пересказанных своими словами и снабжённых тэгами), затем периодически они линкуются и реорганизуются в ключевые статьи, представляющие собой Ваш граф знаний.

https://netology.ru/blog/04-2022-zettelkasten

https://vc.ru/u/1249281-kod-samorazvitiya/467180-zettelkasten-metod-kak-sozdat-vtoroy-mozg-ili-kak-uluchshit-pamyat-sistema-cetelkasten-obsidian-i-zettelkasten

https://www.youtube.com/watch?v=rOSZOCoqOo8&t=3s&ab_channel=ShuOmi

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

Также очень любопытно было бы интегрировать ящики заметок и Анки (+)

Сам я до такого уровня пока не дошёл, просто использовал сайт liblib для поиска книг по ISBN (это удобно) и добавления к ним заметок по мере прочтения. Но там нет тэгов и невозможно образовать связи.

Не знаю, есть ли в природе такое приложение с готовой обновляемой базой книг (а желательно, и статей semanticscholar, да ещё мультиязычной), возможностями "цеттелькастен" (т.е. создания и каталогизации карточек идей, желательно надиктовкой с распознаванием речи) и "анкирования" (т.е. превращения карточек идей в карточки-вопросники, которые потом будут показываться по алгоритму spaced repetition), но вот вам бизнес-идея, если готовы вкалывать и искать инвесторов, ничем не хуже этой)
Причём, 2 из 3 шагов по классификации Юджина (тэгирование и линкование карточек) могут быть автоматизированы с помощью ML (как и автоанкирование карт-связок, а возможно, и полноценных карт с помощью ChatGPT). Опять же, такое мегаприложение могло бы пользователю и рекомендации качественные дать, что читать дальше. Вопрос, много ли на планете таких ботанов, кто бы это захотел использовать )

И, наконец, писательство. Я пытаюсь сам и рекомендую всем современным специалистам пробовать писать статьи. Публиковаться можно на Хабре (русскоязычная аудитория) и Медиуме (англоязычная аудитория, денежные выплаты читаемым авторам; только не повторяйте моей ошибки, печатайтесь сразу в большом тематическом паблике, а не в своём частном – не получите просмотров). Также хорошо дублировать статьи в соцсетях для покрытия большей аудитории. Юджин советует писать статьи как раз с уже созданных вами заметок Zettelkasten, опираясь на изученные и переработанные мозгом источники. Даже если вы себя не считаете экспертом в какой-то интересной теме, всё равно стоит написать по ней статью – как показывает опыт, множеству других людей будет интересна ваша интерпретация и опыт осмысления. Чтение-заметки-написание статьи[-тестирование Анки] – это очень эффективная организация процесса познания.
👍4
#AI #codinginterviews #chatgpt

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

https://www.youtube.com/watch?v=gOf2SQVMUL0&ab_channel=Cl%C3%A9mentMihailescu
🔥2
#python #chatgpt #weakai

Я старался не поддаваться хайпу и не обращать особо внимания на ChatGPT, но не вышло. Да, она не умеет считать и выдаёт порой странные факты. Но посмотрите только, что она творит в кодинге! Всё началось с задачи оптимизации поиска хэша в большом файле отсюда. Не знаю, сколько времени потратил автор на код в статье, день или несколько часов, но я "смог" воспроизвести и превзойти его результаты буквально за минуты с помощью этой нейросети. Если это не слабый ИИ, тогда что это? Пока это неидеально, конечно, и нужно задавать наводящие вопросы, а то и исправлять ошибки. Но это уже может ускорить работу программиста на порядок. А что будет через год?!
🔥3😱1
#python #chatgpt #weakai

А вот что ChatGPT думает об аннотировании.
Очень рекомендую посмотреть обзорный доклад "10 лет новой эпохи машинного обучения" с прошедшего YaTalks. Докладчик подсвечивает ключевые моменты из истории развития ML и нейросетей за последние десять лет и делится своими мыслями на тему того, что будет дальше.
Доклад даёт хороший контекст и будет понятен в том числе и тем, кто не занимается ML профессионально.
https://youtu.be/ikhPeK33zCw?t=13782
👍2