#startup_idea
Прикрутить трейдерский алгоритм к любой игре с внутренним магазином типа EVE Online, мб сделать сетку, которая будет "интеллектуально" покупать и продавать предметы
Прикрутить трейдерский алгоритм к любой игре с внутренним магазином типа EVE Online, мб сделать сетку, которая будет "интеллектуально" покупать и продавать предметы
📰Ламповые новости в полтретьего ночи:
📈Как вы, наверное, поняли, я хорошо написал экзамен в РЭШ и прошёл собеседование на кафедру компьютерной лингвистики в МФТИ,
☦️РЭШ отписалась, что берёт всех с 17+ баллов, поэтому проблема выбора между ней и продолжением тус на Физтехе встала очень остро,
🚛У меня никак не получается побить бейзлайн в NLP-таске в авито. Я хз, почему, но где есть упорство, там есть и любопытство, поэтому обещаю поиграться с тестовым датасетом сразу после того как пройду туда (а я ведь пройду!),
👾Пообщался с дядей из РЭШ, говорит, что совмещать учёбу с работой почти нереально. Звучит какчеллендж тот самый стресс на каждый день, который помогает мне не быть ленивым баклажаном,
🧠С завтрашнего дня возобновляю жизнь по расписанию, потому что тема крутая, но в последнее время было сложно: ложился в 4 утра))
🐶Пока у меня есть время, пишите, если хотите вместе затусить или сделать какой-нибудь проект, пет или что угодно. В последнее время сильно не хватает общения, задолбался сидеть в комнате, хочется уже насовершать ошибок, чтобы было что исправлять.
📈Как вы, наверное, поняли, я хорошо написал экзамен в РЭШ и прошёл собеседование на кафедру компьютерной лингвистики в МФТИ,
☦️РЭШ отписалась, что берёт всех с 17+ баллов, поэтому проблема выбора между ней и продолжением тус на Физтехе встала очень остро,
🚛У меня никак не получается побить бейзлайн в NLP-таске в авито. Я хз, почему, но где есть упорство, там есть и любопытство, поэтому обещаю поиграться с тестовым датасетом сразу после того как пройду туда (а я ведь пройду!),
👾Пообщался с дядей из РЭШ, говорит, что совмещать учёбу с работой почти нереально. Звучит как
🧠С завтрашнего дня возобновляю жизнь по расписанию, потому что тема крутая, но в последнее время было сложно: ложился в 4 утра))
🐶Пока у меня есть время, пишите, если хотите вместе затусить или сделать какой-нибудь проект, пет или что угодно. В последнее время сильно не хватает общения, задолбался сидеть в комнате, хочется уже насовершать ошибок, чтобы было что исправлять.
#thoughts
👾В какой-то момент очень крутой дядя сказал мне, что я go-getter, с тех пор я неистово стремлюсь соответствовать. Спасибо, Артур)
👾В какой-то момент очень крутой дядя сказал мне, что я go-getter, с тех пор я неистово стремлюсь соответствовать. Спасибо, Артур)
#ask
🧘А вы тоже в 3 часа ночи сидите и смотрите на то, как происходит оптимизация гиперпараметров модельки?
🧘А вы тоже в 3 часа ночи сидите и смотрите на то, как происходит оптимизация гиперпараметров модельки?
#ask
Кто-нибудь знает, откуда в градиентном бустинге могут быть такие перегибы в AUC (у логлосса там тоже перегиб)?
В прошлый раз подобное было из-за лишней категориальной фичи.
Кто-нибудь знает, откуда в градиентном бустинге могут быть такие перегибы в AUC (у логлосса там тоже перегиб)?
В прошлый раз подобное было из-за лишней категориальной фичи.
У меня появилось немного времени, а значит, сегодня вечером я замучу новый челлендж.
#challenge
#inspiration
Каждый день читать и выкладывать в канал краткое содержание хотя бы одного раздела книги "Введение в теорию алгоритмов и структур данных" от ШАДа
👾Чо, котаны, пробуем набрать достаточную базу для quantitative research?
#inspiration
Каждый день читать и выкладывать в канал краткое содержание хотя бы одного раздела книги "Введение в теорию алгоритмов и структур данных" от ШАДа
👾Чо, котаны, пробуем набрать достаточную базу для quantitative research?
☁️Так, ну #schedule палучаица
👾Как-то неожиданно мне понравилось делать расписание с эмодзи, есть в нём что-то тёплое🥰 и ламповое🪔.
☦️Кажется, я не выживу в РЭШ без расписания, так сильно это дисциплинирует.
🔅09:00–10:00 :: утро,
– Ржу над тем, что вечером реально хотел встать так рано😒,
– Пытаюсь зарешать хотя бы пару теоретических задачек по нейронкам на степике 🎓.
🍳10:00–10:45 :: завтрак,
– Читаю книжку, которую вечером мне пересказывать в канал🤡,
– Пишу бывшему куратору, окончившему РЭШ, о планируемом созвоне в 15:00👨💻,
– Делаю вид, что не хочу убить всех вокруг из-за раннего подъёма🎳,
– Потихоньку планирую поездку в Долгопу в четверг💀.
☔️10:45–11:15 :: душ.
🙌11:15–14:00 :: жоский забот,
– Делаю домашку по ML от ААА 🐸,
– Делаю домашку по алгосам от ААА🥗,
– Продолжаю ботать брошюрку от Яндекса❓.
🫔14:00–14:45 :: обед.
📇14:45–15:15 :: чтиво,
– Читаю книжку по алгосам 🧠.
👨💻15:15–19:00 :: сиквел жоского забота,
– Сначала у меня созвон с крутым дядей из РЭШ👨🏫,
– Тут надо посмотреть на код в научке, ужаснуться и закрыть его до завтра🤯,
– Понять, что не успею завтра доделать ML и начать усиленно фигачить🤖.
🍱19:00–19:45 :: ужин.
✍️19:45–21:00 :: саммари дня и постик,
– Дочитываю главу, перевариваю, пишу краткое содержание🔖,
– Пишу расписание пораньше 🗓.
🐔21:00–22:00 :: залипуха,
– Антипродуктивность и всё такое☹️.
🦄22:00–00:00 :: доделывание остатков за день.
👾Как-то неожиданно мне понравилось делать расписание с эмодзи, есть в нём что-то тёплое🥰 и ламповое🪔.
☦️Кажется, я не выживу в РЭШ без расписания, так сильно это дисциплинирует.
🔅09:00–10:00 :: утро,
– Ржу над тем, что вечером реально хотел встать так рано😒,
– Пытаюсь зарешать хотя бы пару теоретических задачек по нейронкам на степике 🎓.
🍳10:00–10:45 :: завтрак,
– Читаю книжку, которую вечером мне пересказывать в канал🤡,
– Пишу бывшему куратору, окончившему РЭШ, о планируемом созвоне в 15:00👨💻,
– Делаю вид, что не хочу убить всех вокруг из-за раннего подъёма🎳,
– Потихоньку планирую поездку в Долгопу в четверг💀.
☔️10:45–11:15 :: душ.
🙌11:15–14:00 :: жоский забот,
– Делаю домашку по ML от ААА 🐸,
– Делаю домашку по алгосам от ААА🥗,
– Продолжаю ботать брошюрку от Яндекса❓.
🫔14:00–14:45 :: обед.
📇14:45–15:15 :: чтиво,
– Читаю книжку по алгосам 🧠.
👨💻15:15–19:00 :: сиквел жоского забота,
– Сначала у меня созвон с крутым дядей из РЭШ👨🏫,
– Тут надо посмотреть на код в научке, ужаснуться и закрыть его до завтра🤯,
– Понять, что не успею завтра доделать ML и начать усиленно фигачить🤖.
🍱19:00–19:45 :: ужин.
✍️19:45–21:00 :: саммари дня и постик,
– Дочитываю главу, перевариваю, пишу краткое содержание🔖,
– Пишу расписание пораньше 🗓.
🐔21:00–22:00 :: залипуха,
– Антипродуктивность и всё такое☹️.
🦄22:00–00:00 :: доделывание остатков за день.
#thoughts
👾Академия авито попросили подписать NDA, чтобы давать нам реальные датасеты в курсе по машинке.
С одной стороны, прикольно, что доверяют, а с другой, — «если ты подписал NDA, то у тебя забрали часть жизни»
👾Академия авито попросили подписать NDA, чтобы давать нам реальные датасеты в курсе по машинке.
С одной стороны, прикольно, что доверяют, а с другой, — «если ты подписал NDA, то у тебя забрали часть жизни»
#challenge
👾Сегодня я рассказываю про теорию в первой главе замечательной книжки по алгосикам для нубов.
1️⃣Первая глава — не сложная, называется введением, рассказывает нам о том, что перед прочтением мы должны уметь написать пару строк на C++ и мягко намекает, что является конспектом и всё такое.
🍴Массивы переменного размера
☝️Тут идёт речь о векторе (классе std::vector) в плюсах, рассказывается о том, что это — динамический массив, с возможностью изменения количества лежащих в нём элементов.
👾Сначала я хотел определить массив через контракт, но вспомнил, что плюсы, кажется, не поддерживают Design by Contract на языковом уровне, поэтому просто расскажу, чего мы ждём от этой штуки.
🧾Определим, что вообще мы ожидаем от реализации динамического массива — хочется получить структуру данных, которая:
– Хранит последовательность элементов,
– Имеет возможность вставки нового элемента в конец последовательности и делает это по возможности быстро, а насколько быстро, разберёмся чуть позже,
– А ещё имеет возможность пощупать любой элемент по его индексу за быстрое время, в нашем случае за О(1).
🅾️Кстати, что такое быстро в книге не определяется, то есть читатели заранее должны быть знакомы с big-O нотацией.
🦄Переходим к реализации:
🔬Пацаны, создавшие плюсы, не дураки. Они решили взять массив фиксированного размера из чистых сей, который задаётся указателем на нулевой элемент, но, т.к. иногда выделенное место заканчивалось, а элементы — нет, просто сделали автоматической операцию перевыделения памяти (reallocation), сперев и его из чистых сей и немного автоматизировав.
🤷♂️Такой подход хорош тем, что мы, особо не запариваясь, получили готовый массив и всё такое, но плох тем, что когда выделенное в оперативе место заканчивается (а заканчивается оно чаще чем вы думаете), мы ищем место под увеличенный массив, копируем туда все наши предыдущие элементы, а сверху кладём новый.
👷♂️Работает эта штука за линию (O(n)), что довольно грустно: если каждый раз, когда мы будем добавлять элемент, мы будем искать место под него, копировать туда все старые элементы, сверху класть новый, это будет неимоверно долго, ведь если захочется добавить n элементов в конец, мы совершим O(n**2) операций, а это очень ужасно.
👨🎨Тут пришёл умный дядя (не знаю, как его зовут) и сказал: "А давайте будем каждый раз увеличивать массив во сколько-то раз?" и, т.к. дядя был авторитетным, ему поверили и теперь каждый раз плюсы выделяют чуть больше памяти, чем вам нужно. В пайтоне, например, массив каждый раз растёт (хы) на 1/8 от его изначальной длины.
📉Докажем, что этот подход уже работает за O(n) для n вставок методом из экономического анализа.
🤸♀️Амортизационный анализ a.k.a. усредним неусредняемое.
💡Идея в следующем: допустим, у нас есть операция, которая сильно чаще выполняется с одной асимптотической сложностью, чем с другой (в данном случае мы постоянно вставляем за O(1) и лишь раз в переполнение массива за O(n)). Тогда мы можем взять и усреднить таким образом:
🤯Если мы выделяем новый массив в размере const * sizeof(предыдущий массив), тогда при добавлении m новых элементов мы максимум 1/const раз перевыделяем массив, что стоит O(m) по времени (тут m взята в качестве максимальной, потому что я принял изначальный массив пустым, иначе идея такая же).
➡️В таком случае для m элементов я делаю перевыделение 1/const раз, а остальные m - 1/const раз я добавляю за константу. Всего операции стоят (m - 1/const) * O(1) + 1/const * O(m) времени, что прекрасно ограничивается сверху O(m).
👾Такая математика: сложить и поделить, в общем, добавление n элементов в конец массива работает за O(n).
🧠Итоговые ♂ass♂имптотики:
– Добавление элемента в конец: O(1),
– Добавление элемента в середину: O(n), т.к. мы сдвигаем весь массив вбок, а потом кладём на освобождённое место новый элемент,
– Вставка элемента в середину: O(n) по тем же причинам,
– Поиск элемента по его индексу: O(1),
– Поиск элемента по его значению: O(n).
👾Пишите, пожалуйста, свои пожелания по этому всему в комменты, если вам вдруг интересно.
👾Сегодня я рассказываю про теорию в первой главе замечательной книжки по алгосикам для нубов.
1️⃣Первая глава — не сложная, называется введением, рассказывает нам о том, что перед прочтением мы должны уметь написать пару строк на C++ и мягко намекает, что является конспектом и всё такое.
🍴Массивы переменного размера
☝️Тут идёт речь о векторе (классе std::vector) в плюсах, рассказывается о том, что это — динамический массив, с возможностью изменения количества лежащих в нём элементов.
👾Сначала я хотел определить массив через контракт, но вспомнил, что плюсы, кажется, не поддерживают Design by Contract на языковом уровне, поэтому просто расскажу, чего мы ждём от этой штуки.
🧾Определим, что вообще мы ожидаем от реализации динамического массива — хочется получить структуру данных, которая:
– Хранит последовательность элементов,
– Имеет возможность вставки нового элемента в конец последовательности и делает это по возможности быстро, а насколько быстро, разберёмся чуть позже,
– А ещё имеет возможность пощупать любой элемент по его индексу за быстрое время, в нашем случае за О(1).
🅾️Кстати, что такое быстро в книге не определяется, то есть читатели заранее должны быть знакомы с big-O нотацией.
🦄Переходим к реализации:
🔬Пацаны, создавшие плюсы, не дураки. Они решили взять массив фиксированного размера из чистых сей, который задаётся указателем на нулевой элемент, но, т.к. иногда выделенное место заканчивалось, а элементы — нет, просто сделали автоматической операцию перевыделения памяти (reallocation), сперев и его из чистых сей и немного автоматизировав.
🤷♂️Такой подход хорош тем, что мы, особо не запариваясь, получили готовый массив и всё такое, но плох тем, что когда выделенное в оперативе место заканчивается (а заканчивается оно чаще чем вы думаете), мы ищем место под увеличенный массив, копируем туда все наши предыдущие элементы, а сверху кладём новый.
👷♂️Работает эта штука за линию (O(n)), что довольно грустно: если каждый раз, когда мы будем добавлять элемент, мы будем искать место под него, копировать туда все старые элементы, сверху класть новый, это будет неимоверно долго, ведь если захочется добавить n элементов в конец, мы совершим O(n**2) операций, а это очень ужасно.
👨🎨Тут пришёл умный дядя (не знаю, как его зовут) и сказал: "А давайте будем каждый раз увеличивать массив во сколько-то раз?" и, т.к. дядя был авторитетным, ему поверили и теперь каждый раз плюсы выделяют чуть больше памяти, чем вам нужно. В пайтоне, например, массив каждый раз растёт (хы) на 1/8 от его изначальной длины.
📉Докажем, что этот подход уже работает за O(n) для n вставок методом из экономического анализа.
🤸♀️Амортизационный анализ a.k.a. усредним неусредняемое.
💡Идея в следующем: допустим, у нас есть операция, которая сильно чаще выполняется с одной асимптотической сложностью, чем с другой (в данном случае мы постоянно вставляем за O(1) и лишь раз в переполнение массива за O(n)). Тогда мы можем взять и усреднить таким образом:
🤯Если мы выделяем новый массив в размере const * sizeof(предыдущий массив), тогда при добавлении m новых элементов мы максимум 1/const раз перевыделяем массив, что стоит O(m) по времени (тут m взята в качестве максимальной, потому что я принял изначальный массив пустым, иначе идея такая же).
➡️В таком случае для m элементов я делаю перевыделение 1/const раз, а остальные m - 1/const раз я добавляю за константу. Всего операции стоят (m - 1/const) * O(1) + 1/const * O(m) времени, что прекрасно ограничивается сверху O(m).
👾Такая математика: сложить и поделить, в общем, добавление n элементов в конец массива работает за O(n).
🧠Итоговые ♂ass♂имптотики:
– Добавление элемента в конец: O(1),
– Добавление элемента в середину: O(n), т.к. мы сдвигаем весь массив вбок, а потом кладём на освобождённое место новый элемент,
– Вставка элемента в середину: O(n) по тем же причинам,
– Поиск элемента по его индексу: O(1),
– Поиск элемента по его значению: O(n).
👾Пишите, пожалуйста, свои пожелания по этому всему в комменты, если вам вдруг интересно.
Wikipedia
Big O notation
Big O notation is a mathematical notation that describes the limiting behavior of a function when the argument tends towards a particular value or infinity. Big O is a member of a family of notations invented by German mathematicians Paul Bachmann, Edmund…
#schedule
👾Завтра не успею сгонять в Долгопрудный, хотя хотелось. Тогда перенесу на послезавтра.
🔅07:30–09:15 :: утро,
– В спешке дописываю класс с логистической регрессией для AAA🚛.
🍳09:15–09:30 :: завтрак,
– Потихоньку планирую поездку в Долгопу в пятницу💀.
🏎09:30–11:30 :: помощь подруге,
– Помогаю подруге с лютым контестом в М(ФТИ)🤯.
🏁11:30–12:30 :: дедлайн в степике,
– Быстро дописываю класс с логистической регрессией для AAA👨🏫.
🏦12:30–13:00 :: знакомство с командой Sberdevices,
– Ну а чо, они позвали пообщаться, а я вроде не против📸.
🧬13:00–14:00 :: мини-жоский забот,
– Тут надо посмотреть на задачки по алгосам на рекурсию 🔃,
– Ну и взглянуть на задание по нейрон_очкам🧐.
🧆14:00–14:45 :: обед.
📇14:45–15:15 :: чтиво,
– Читаю книжку по алгосам 🧠.
👨💻15:15–17:45 :: сиквел жоского забота,
– Тут можно поработать над научкой🤖,
– А ещё посмотреть на не доделанное во время минизабота👀.
🍱17:45–18:00 :: ужин.
🤯18:00–21:00 :: алгосы в ААА,
– Тема занятия: бинарные деревья поиска🌳.
✍️21:00–23:00 :: саммари дня и постик,
– Дочитываю главу, перевариваю, пишу краткое содержание🔖,
– Пишу расписание🗓.
🐔23:00–00:00 :: залипуха,
– Доделывание всего, что не успел💨,
– Антипродуктивность и всё такое☹️.
👾Завтра не успею сгонять в Долгопрудный, хотя хотелось. Тогда перенесу на послезавтра.
🔅07:30–09:15 :: утро,
– В спешке дописываю класс с логистической регрессией для AAA🚛.
🍳09:15–09:30 :: завтрак,
– Потихоньку планирую поездку в Долгопу в пятницу💀.
🏎09:30–11:30 :: помощь подруге,
– Помогаю подруге с лютым контестом в М(ФТИ)🤯.
🏁11:30–12:30 :: дедлайн в степике,
– Быстро дописываю класс с логистической регрессией для AAA👨🏫.
🏦12:30–13:00 :: знакомство с командой Sberdevices,
– Ну а чо, они позвали пообщаться, а я вроде не против📸.
🧬13:00–14:00 :: мини-жоский забот,
– Тут надо посмотреть на задачки по алгосам на рекурсию 🔃,
– Ну и взглянуть на задание по нейрон_очкам🧐.
🧆14:00–14:45 :: обед.
📇14:45–15:15 :: чтиво,
– Читаю книжку по алгосам 🧠.
👨💻15:15–17:45 :: сиквел жоского забота,
– Тут можно поработать над научкой🤖,
– А ещё посмотреть на не доделанное во время минизабота👀.
🍱17:45–18:00 :: ужин.
🤯18:00–21:00 :: алгосы в ААА,
– Тема занятия: бинарные деревья поиска🌳.
✍️21:00–23:00 :: саммари дня и постик,
– Дочитываю главу, перевариваю, пишу краткое содержание🔖,
– Пишу расписание🗓.
🐔23:00–00:00 :: залипуха,
– Доделывание всего, что не успел💨,
– Антипродуктивность и всё такое☹️.
#challenge
👾В общем, я решил рандомную задачку с codewars.com.
👀На первый взгляд, задачка простая: написать класс, который реализует модифицированный шифр Цезаря. По своей гениальности, я решил, что "ну мы же только с английским алфавитом работаем, да?" и долго не мог допереть, что не так, когда в тесты засунули ЯПОНСКИЙ 🇯🇵сука 🇯🇵 АЛФАВИТ катакану. Потом до меня дошло, что
🎞Скрин условия прикрепил, мойужасно неоптимальный код — в комментах.
💡Кстати, я знаю, как можно его оптимизировать, поэтому если сильно хотите написать лучше, можете форкать код из комментов исамоутверждаться показывать более оптимальный solution
👾В общем, я решил рандомную задачку с codewars.com.
👀На первый взгляд, задачка простая: написать класс, который реализует модифицированный шифр Цезаря. По своей гениальности, я решил, что "ну мы же только с английским алфавитом работаем, да?" и долго не мог допереть, что не так, когда в тесты засунули ЯПОНСКИЙ 🇯🇵
ord(char)
использовать нехорошо, а если дают кастомный алфавит, будь добр, пользуйся им и пиши для общего случая. В итоге все тесты прошли, а я потратил на такую простую задачку около получаса.🎞Скрин условия прикрепил, мой
💡Кстати, я знаю, как можно его оптимизировать, поэтому если сильно хотите написать лучше, можете форкать код из комментов и
#schedule
🧐Видимо, в 12 уже поздно делать расписание, но сегодня я собирался:
– Сгонять в Долгопу🇷🇺,
– Поботать вопросы с собесов по машинке🦿,
– Поботать алгосики🧠,
– Начать делать нейроночки, а то там чёта дофига🕸,
– Возможно, дойти до научки🧪.
🧐Видимо, в 12 уже поздно делать расписание, но сегодня я собирался:
– Сгонять в Долгопу🇷🇺,
– Поботать вопросы с собесов по машинке🦿,
– Поботать алгосики🧠,
– Начать делать нейроночки, а то там чёта дофига🕸,
– Возможно, дойти до научки🧪.