Abekek Notes
1.03K subscribers
173 photos
19 videos
12 files
295 links
Канал с моими заметками.

Обо мне: abekek.github.io
Download Telegram
#30_days_of_code

👨‍💻 День 17

Сегодня я продолжил изучать машинное обучение по курсам на Kaggle. После обеда, в UNICEF Summer Residency к нам пришел СЕО Absolute Technologies - Тимур Рыспеков - крутой программист. Он рассказал нам об основах метапрограммирования, которое заключается в том, что программный код самомодифицирует себя во время выполнения. Таким образом можно достичь огромного выигрыша во времени, походу выполнения программы.

Ещё я вступил в группу Kazakhstan Data Science Community в телеграме и задал парочку вопросов опытным дата сайентистам. Они очень отзывчивые и ответили на мой вопрос:

Друзья, на Kaggle есть бесплатные курсы по DS, и я сейчас заканчиваю проходить Intermediate ML. 

Так вот, стоит ли сразу переходить на Deep Learning или лучше попрактиковаться с приобретенными знаниями на соревнованиях?


В итоге мне посоветовали поучаствовать в соревнованиях, и сказали, что Deep Learning на Kaggle - неоч. Ещё хорошие ресурсы по их мнению это mlcourse.ai и dlcourse.ai.
#30_days_of_code

👨‍💻 День 18

Наконец-то я закончил курс Intermediate ML на Kaggle. В итоге я научился:

• Чистить датасет от неполноценных данных (NaN)
• Превращать категориальные данные датасета в те данные, которые будут иметь смысл
Кросс-валидация (cross-validation) - для уменьшения Mean Absolute Error
Пайплайны (Pipelines) - для улучшения читабельности и эффективности кода
Использование XGBoost - для улучшения предсказаний
Data Leakage - не особо понял эту тему, поэтому надо будет ещё почитать

С завтрашнего дня я начну проходить соревнования на Kaggle, и набивать в них шишки. Наверное это будет соревнование с Титаником.
#30_days_of_code

👨‍💻 День 19

Сегодня я сделал свой первый submission на Kaggle в соревновании с Титаником. Я сделал всего один сабмит и получил точность - 0.77033, что подняло меня в рейтинге на 6276 место из 12000😂.

Думаю результат не такой высокий, но за то я в первый раз написал весь код машинного обучения сам.

Конечно, для улучшения результата можно ещё посидеть и постараться улучшить модель и её предсказания, но мне лень, поэтому завтра я начну фигачить реальные соревнования, в которых люди борятся за деньги и медали. Это будет хотя бы источником мотивации для меня.

Код моего сабмита пожалуй закидывать не буду, так как там нет никаких комментариев и описаний к коду.
Finally done!

Закончил читать книгу про Theranos, компанию, которая обманывала всех, что привело не только к многочисленным финансовым убыткам для инвесторов, но и к смертям обычных людей.

Временами скучноватая книга, но в целом интересная, так как показывает, как работает Кремниевая Долина изнутри.
John_Carreyrou_Bad_Blood_Secrets.mobi
2.5 MB
Книга в формате mobi. Может кто-нибудь захочет почитать
#30_days_of_code

👨‍💻 День 20

Как и говорил, хотел поучаствовать в соревновании, где даются деньги в качестве призов, но оказывается многие из них уже подходят к концу, и многие требуют знаний в Deep Learning.

Не смотря на это, я решил поучаствовать в тренировочном соревновании House Prices, где я вошёл в Top 59%, сделав 4 коммита. Фигово, но я понятия не имею, как улучшить свою предсказательную модель. Я использовал GradientBoostingRegressor, который работает эффективнее RandomForestRegressor. Я посмотрел решения других людей, и они используют слишком сложные решения: там используется какой-то стэкинг, а что это такое я хз.

Ещё я попробовал улучшить свой код в соревновании с Титаником, используя GradientBoostingRegressor, что в итоге перенесло меня на ~4000 позиций вверх и я вошёл в Top 21%.

Не знаю, что я буду делать дальше. Может быть буду изучать Deep Learning или поучаствую в ещё каких-нибудь соревнованиях.

Код для House Prices:
https://www.kaggle.com/abekek/kernel2d8cce840e
Как я и предполагал, около половины подписчиков реально интересуются челленджом #30_days_of_code.
Спасибо вам за то, что активно читаете меня!

Те кому этот контент не очень интересен, не расстраивайтесь.
Уже через 10 дней челлендж закончится.

А ещё, я недавно зарегистрировался на АСТ, и в будущем начну писать о том, как готовлюсь к нему.

Делать сразу 2 марафона будет слишком хардкорно, поэтому сейчас я готовлюсь к АСТ не очень интенсивно.
#30_days_of_code

👨‍💻 День 21

Пытался найти на Kaggle нормальный компетишн, где будут давать деньги, но чет не нашел такой. Далее, я попробовал пройти курс по Deep Learning, но он мне жёстко не понравился, так как он ничуть не похож на тот, что я проходил по ML.

После этого я понял, что мне нужно ещё раз пройтись по ML, но более углубленно, с пониманием всех концепций и моделей. Я посоветовался с людьми из DS/ML, и они посоветовали курс mlcourse.ai.

Этот бесплатный курс разработан сообществом Open Data Science, которые помогают новичкам в освоении Data Science. Я начал смотреть нулевую лекцию, где разбирался контент всего курса, и понял, что это очень ценный ресурс.

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

Вот плейлист к этому курсу на YouTube (вся остальная информация на их официальном сайте):
https://www.youtube.com/playlist?list=PLVlY_7IJCMJeRfZ68eVfEcu-UcN9BbwiX
Чтобы вы понимали насколько у них понятные туториалы, почитайте эту статью:
https://mlcourse.ai/articles/topic2-visual-data-analysis-in-python/
#30_days_of_code

👨‍💻 День 22

Сегодня я не делал ничего особенного - всего лишь прошёл 1 лекцию курса mlcourse.ai по Exploratory Data Analysis with Pandas. В принципе, там было все понятно и не было сильно сложных концепций.

Ещё мне пришла идея сделать своего рода генератора текста для этого канала, который будет анализировать все мои посты и писать их с нуля. Это можно реализовать с помощью HTML кода, который предоставляет Telegram для каждого канала.
#30_days_of_code

👨‍💻 День 23

В это воскресенье, я посвятил достаточно много времени программированию.
Сначала сделал demo assignment на mlcourse.ai к первой лекции, где нужно было применить все свои знания по pandas на практических заданиях. В каждом задании нужно было ответить на вопрос, и я набрал 9/10 баллов по этому assignment.

Далее я просмотрел вторую лекцию по Data Visualization, и в принципе ничего нового там для меня не было. Seaborn и Matplotlib - всё по классике.

Ещё я думал над исправлением бага в своем Telegram боте и обратился к англоязычному коммьюнити. Там один чувак мне очень сильно помог, и подсказал очень простое решение проблемы :) Спасибо ему за это. Завтра я протестирую это решение.
#30_days_of_code

👨‍💻 День 24

По семейным обстоятельствам не было возможности заняться программированием. Буду отрабатывать всё завтра.
#30_days_of_code

👨‍💻 День 25

Сегодня я прочитал 2 статьи по Data Visualization на mlcourse.ai и законспектировал их. Было довольно много новых понятий, как t-SNE сложная штука и вид визуализации данных в Python.

Также я немного изучил библиотеку Plotly, которая позволяет создавать интерактивную визуализацию данных без использования Javascript.

В общем, интересно, поэтому завтра я начну делать assignment по этой теме.
#30_days_of_code

👨‍💻 День 26

Сложноватый был assignment, так как я постоянно пользовался решением и временами копипастил код.

Ещё сегодня я посетил лекции и воркшопы от Microsoft по анализу данных и машинному обучению. Я ожидал увидеть там больше практики, нежели теории и лекций, так как само название воркшоп говорит о какой-то практической работе. Однако вместо того, чтобы работать с Microsoft Azure ML Studio, мы слушали лекции от бизнесменов, которые используют данные в своем бизнесе. Одним из них был СЕО Smart Satu - Болатбек Османов. Конечно, было интересно слушать истории про его бизнес, но это было не то за чем я пришел туда.

Хотел бы, чтобы в Казахстане лекции проходили в таком виде, в котором они проводятся в России. Например эта, которую я посмотрел сегодня:

https://youtu.be/NDElJCVejTU
Сейчас будет произведена чистка на канале - будут удалены неактивные пользователи.

Готово!
#30_days_of_code

👨‍💻 День 27

Сегодня я посмотрел теоретическую лекцию по машинному обучению на mlcourse.ai (Topic 3). Всё было довольно понятно, и я понял как работает модель Decision Tree.
По сути чем глубже Decision Tree (параметр max_depth), тем лучше проходят предсказания модели, ибо ответвлений становится больше (Decision Tree - это как много if-else стэйтментов). Однако, чем лучше наша модель работает на обучающей выборке данных (training dataset), тем больше вероятности того, что она переобучится (overfitting), и будет ужасно работать на реальных данных.
Поэтому нужно использовать кросс-валидацию, которая будет избавляться от переобучения.

Ещё мне кажется, что завтра придется преждевременно закончить мой марафон, так как завтра у меня вылет в Японию на стажировку. Об этом напишу чуть позже в следующем посте.
↓↓↓
International High School Internship Program in Shibaura Institute of Technology

Ну крч, ещё в мае я подал на программу стажировки в SIT. Узнал я об этой программе за 3-4 дней до дедлайна от Ivy League Education (они скинули мне ссылку).

Я быстро спохватился и за день до дедлайна отправил на почту им свой personal statement, cover letter и recommendation letter от своей учительницы по Computer Science. Во всем этом мне помогла мама :)

Через несколько недель мне приходит письмо о том, что я прошёл на эту стажировку. Если честно, я и не думал, что пройду.

Изучать я буду там Material Science and Engineering, хотя подавал на Computer Science. Я просил, чтобы они поменяли специальность, но оказывается все места уже заполнили, и нет возможности меняться местами.

Сейчас я еду в аэропорт, и через несколько часов у меня вылет. Я буду вам рассказывать о том, что мы делаем на стажировке, и может в следующем году и вы подадите документы на эту программу :)
#30_days_of_code

👨‍💻 День 28

Так как я собирал вещи в полет, сегодня я мало что успел сделать. Посмотрел часовую практическую лекцию на mlcourse.ai по Decision Trees и понял как визуализировать модель дерева. Также я научился применять кросс валидацию для улучшения предсказательной модели.

Ещё в Summer Residency была гостевая лекция с Senior Data Scientist-ом из Alem Research, но он рассказывал базовые вещи, и поэтому мне было скучно.