Русский
Русский
English
Статистика
Реклама

Марафон

Заметки Дата Саентиста как измерить время забега марафона лежа на диване

06.08.2020 12:10:31 | Автор: admin


Продолжая цикл заметок про реальные проблемы в Data Science, мы сегодня разберемся с живой задачей и посмотрим, какие проблемы нас ждут в пути.

Например, помимо Data Science, я давно увлекаюсь атлетикой и одной из целей в беге для меня, конечно, является марафон. А где марафон там и вопрос за сколько же бежать? Часто ответ на этот вопрос дается на глаз ну в среднем бегут или вот Х хорошее время!

И сегодня мы займемся важным делом применим Data Science в реальной жизни и ответим на вопрос:

А что нам говорят данные о московском марафоне?

Точнее, как уже понятно по таблице в начале мы соберем данные, разберемся, кто и как бежал. А заодно это поможет понять, стоит ли нам соваться и позволит здраво оценить свои силы!

TL;DR: Я собрал данные по забегам московского марафона за 2018/2019, проанализиворовал время и показатели участников, а код и данные выложил в открытый доступ.

Сбор данных


Путем шустрого гугления мы обнаружили результаты прошлых пары лет, 2019 и 2018 годов.



Внимательно посмотрел на веб страницу, стало понятно, что данные довольно просто достать нужно лишь разобраться, какие классы за что отвечают, например, класс results-table__col-result, понятное дело, за результат и тд.

Осталось понять как достать все данные оттуда.



И это, оказывается, несложно, ибо тут есть прямая пагинация и собственно мы итерируем по всему отрезку чисел. Бинго, выкладываю собранные данные за 2019 и 2018 год здесь, если кому-то интересно для последующего анализа, то сами данные можно скачать здесь: здесь и здесь.

С чем тут пришлось повозиться


  • Страница не отдает ошибок если что-то идет не так, никто не посигналит, сайт просто отдает какие-то данные (например, повторяет прошлую страницу с результатами).
  • В какой-то момент сервер решает, что он устал и перестает отдавать данные и виснет проблема решается с помощью поспать и продолжить сбор с прошлой точки.
  • Url-магия сайт что-то мудрит со ссылками, и нельзя просто поменять год в url и получить результаты другой гонки приходится ручками через поиск искать и перепроверять, что мы действительно получаем свежие данные иначе отгружает молча данные последнего года.
  • В какой момент я собирал данные и параметризовал скрипт сбора данных годом запустил и стал собирать через час другой у меня было четыре датасета за 2016, 2017 и оказалось, что страница молча отдавала данные за 2019 год потому что в том месте год вообще игнорировался, что было совершенно неожиданно вывод стоит всегда проверять такие вещами руками, а не только постфактум хотя и постфактум, конечно, надо проверять данные.
  • Здесь есть несколько типов NA: DNF, DQ, "-" придется проводить анализ и перепроверять, и чистить данные, иначе на выходе мусор.
  • Типы данных: время здесь это timedelta, но из-за перезапусков и невалидных значений приходится поработать с фильтрами и очисткой временных значений, чтобы мы оперировали над чистыми временными результатами для подсчета средних значений все результаты здесь это усреднение по тем, кто финишировал и у кого зафиксировано валидное время.

А вот и код спойлера, если кто-то решит продолжить собирать интересные беговые данные.

Код парсера
from bs4 import BeautifulSoupimport requestsfrom tqdm import tqdmdef main():    for year in [2018]:        print(f"processing year: {year}")        crawl_year(year)def crawl_year(year):    outfilename = f"results_{year}.txt"    with open(outfilename, "a") as fout:        print("name,result,place,country,category", file=fout)    # parametorize year    for i in tqdm(range(1, 1100)):        url = f"https://results.runc.run/event/absolute_moscow_marathon_2018/finishers/distance/1/page/{i}/"        html = requests.get(url)        soup = BeautifulSoup(html.text)        names = list(            map(                lambda x: x.text.strip(),                soup.find_all("div", {"class": "results-table__values-item-name"}),            )        )        results = list(            map(                lambda x: x.text.strip(),                soup.find_all("div", {"class": "results-table__col-result"}),            )        )[1:]        categories = list(            map(                lambda x: x.text.strip().replace(" ",""),                soup.find_all("div", {"class": "results-table__values-item-country"}),            )        )        places = list(            map(                lambda x: x.text.strip(),                soup.find_all("div", {"class": "results-table__col-place"}),            )        )[1:]        for name, result, place, category in zip(names, results, places, categories):            with open(outfilename, "a") as fout:                print(name, result, place, category, sep=",", file=fout)if __name__ == "__main__":    main()```

Анализ времени и результатов


Перейдем к анализу данных и собственно результатов забега.
Использовались pandas, numpy, matplotlib и seaborn все по классике.

Помимо средних значений по всем массивам, мы отдельно рассмотрим следующие группы:

  • Мужчины так как я вхожу в эту группу мне интересны именно эти результаты.
  • Женщины для симметрии.
  • Мужчины до 35 это условно одна из самых соревновательных групп и понятно, что сравнивать мне стоит именно с ними так как я в этой группе.
  • Отдельно посмотрим на 2018 и 2019 годы а вдруг что поменялось?.

Сначала бегло глянем на таблицу ниже здесь еще раз, чтобы не скроллить: участников стало больше, 95% в среднем добегает до финиша и большая часть участников мужчины. Хорошо, это значит, что в среднем я в основной группе и данные в среднем должно хорошо отображать среднее время для меня. Продолжаем.





Как мы видим средние показатели за 2018 и 2019 практически не изменились примерно 1.5 минуты стали быстрее бегуны в 2019 году. Разница между интересующими меня группами незначительна.

Перейдем к распределениям целиком. И сначала к общему времени забега.


Как мы видим пик прямо перед 4 часами это условная отметка для любителей пробежать хорошо = выбежать из 4-х часов, данные подтверждают народную молву.

Далее, посмотрим, как в среднем изменилась ситуация за год.



Как мы видим фактически вообще ничего не поменялось распределения выглядят фактически идентичными.

Далее рассмотрим распределения по полу:





В целом оба распределения нормальные с чуть разным центром мы видим, что пик на мужском так же проявляет себя на основном (общем) распределении.

Отдельно перейдем к самой интересной для меня группе:



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

Изучаем улучшения участников 2018 2019


Из интересностей: я почему-то думал, что сейчас быстренько соберу данных и можно углубиться в анализ, искать там закономерности часами и тд. Оказалось все наоборот, сбор данных оказался сложнее самого анализа по классике работа с сетью, сырыми данными, очисткой, форматирование, приведение типов и тд заняло куда больше времени чем анализ и визуализация. Не стоит забывать, что мелочи отнимают немного времени но их [мелочей] совсем не мало и в конце они-то и скушают весь ваш вечер.

Отдельно хотелось посмотреть, а как улучшили свои результаты люди, которые участвовали оба раза, путем сопоставления данных между годами мне удалось установить следующее:

  • 14 человек участвовали оба года и ни разу не финишировали
  • 89 человека добежали в 18 м, но не смогли в 19
  • 124 наоборот
  • Те, кто смогли добежать оба раза в среднем улучшили на 4 минуты свой результат

Но тут оказалось довольно интересно все:



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

Выводы


Я сделал для себя следующие выводы из проанализированных данных

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

Подробнее..

Технический марафон Microsoft Dynamics 365

03.12.2020 10:23:07 | Автор: admin
Приглашаем Вас принять участие в онлайн мероприятии Технический Mарафон Microsoft Dynamics 365, где вы и ваши коллеги познакомитесь с ключевыми сценариями использования платформы, а также с новыми предложениями, направленными на успешное внедрение и использование Dynamics 365.

Когда: 8 декабря
Язык: русский

Регистрация

Ну а под катом программа.



Программа


Название
Выступающий
Вступление
Дмитрий Лобода, архитектор по работе с партнерами, Microsoft CEE
Трек Dynamics 365 Finance and Operations
Новости Finance and Operations
Владимир Ручкин, эксперт по бизнес-решениям, Microsoft
Cloud Scale Unit
Вадим Корепин, ведущий функциональный архитектор, Microsoft
Дополнение управление изменениями (Product Engineering Add-in for SCM)
Вадим Корепин, ведущий функциональный архитектор, Microsoft
Customer portal for SCM (Клиентский портал)
Александр Яковлев, эксперт по бизнес-решениям, Microsoft
Практический опыт интеграции с Dynamics 365 FO
Алексей Шурмель, технический эксперт, КОРУС Консалтинг
трек Dynamics 365 Customer Engagement
Новости Customer Engagement
Дмитрий Лобода, архитектор по работе с партнерами, Microsoft CEE
Сustomer insights
Дмитрий Лобода, архитектор по работе с партнерами, Microsoft CEE
Microsoft Dynamics 365 Field Services: как закрыть все потребности выездного сервиса одним приложением
Мария Иванова, ведущий консультант по внедрению, Ёлва
Трек Dynamics 365 Power Platform
Новости Power Platform
Андрей Голубев, Power Platform Lead, Microsoft
Встроенные инструменты тестирования приложений: Power Apps Test Studio
Евгений Бартенев, менеджер по работе с клиентами, Microsoft
Power Automate: возможности UI Flows Robotic Process Automation
Михаил Головастиков, Power Platform евангелист, GGroupp
Microsoft Teams + Power Platform = Friends
Андрей Голубев, Power Platform Lead, Microsoft
Подробнее..

Про курсы, марафоны и ожидании

25.02.2021 08:12:25 | Автор: admin

Я тут решил поделиться своими выводами относительно курсов обучения онлайн.

Примерно пару лет назад я решил сменить вид деятельности. И, так как со школы мне нравилась математика, информатика и всё такое, то я решил пойти в разработчики. Тогда я не понимал, что это, имел только приблизительные представления. Но твердо решил, что буду делать что-нибудь, что связано с "сайтостроением".

В сети я нашел пару бесплатных курсов по верстке и решил заниматься по ним. Но, т.к. у меня было много вопросов, а ответы на них я получал очень и очень долго и от посторонних лиц, то я решил пройти платный курс. Платный курс закончился печально. Это оказался так называемый марафон. И я скажу сразу - избегайте марафонов. Про них я напишу позже.

Поэтому я стал искать платные курсы. Ну как искать - забил в гугле и сравнил программы и цены. В итоге нашел то, что мне надо и недорого. И, если честно - тот объем информации что есть на курсе, позволил легко понять суть профессии верстальщика, так же наметить подробный план дальнейшего развития до разработчика. Уже сейчас, проходя этот курс, я понял чего я хочу и как этого добиться.

Кроме верстки я приобретал курсы по PHP, Python, основам программирования в целом. Но эти курсы я не прошел по двум причинам. Первое - я не до конца понимал чего я хочу. Второе - курсы были такие замудреные, хотя и сказано, что они для тех кто вообще не шарит, но даже для тех кто шарит немного они не помогут. В итоге деньги за них мне вернули полностью и без проблем.

И вот к каким выводам я пришел в результате своих мытарств. Мое видение платных и бесплатных курсов уложилось в сравнении плюсов и минусов. Там же все более-менее расписано.


Плюсы бесплатных

  • Бесплатность. Тут все понятно.

  • Доступность. Тоже понятно. Без регистрации и смс.

  • Комьюнити. Т.к. курс находится в открытом доступе, то можно получить помощь профессионала или найти ответ на вопрос который уже кто-то задал. Если повезет, то можно быстро получить правильный ответ. "Если повезет" - ключевая фраза.

  • Время. Меня никто не торопит. Я в любой момент могу выбрать нужную тему или вернуться к той, в которой до конца не разобрался. Процесс обучения ограничен только моей дисциплиной.

  • Возможность выбора конкретной темы. Не надо ждать когда проверят домашку, когда дойдет до того, что мне надо.

Минусы бесплатных

  • Актуальность. Информация актуальна на момент ее публикации. Так как большинство курсов выкладывают на ЮТ, то переснимать видео, в котором будет актуальная информация никто не будет. Ну я такого не нашел. Смотреть курсы 3 летней давности и больше нет никакого смысла. Даже сегодня смотреть курсы 2020 года где все завязано на Bootstrap 4 уже не актуально. Да и вообще, смотреть курс, где рассказывают о технологии, которая не использует современные тренды, не вижу смысла. Если только для общего развития.

  • Поддержка. В 99% отсутствует от слова "совсем". Максимум на что можно рассчитывать - ответ на комментарии.

  • Объем знаний. Зачастую, из-за того, что автор понимает, что поддерживать тему не планирует, он дает только то, что считает нужным и в чем он сам хорошо разобрался. Очень редко когда даются ссылки на дополнительные ресурсы. Так же редко рассматриваются альтернативные варианты получения аналогичного результата.

  • Процесс обучения. Строится по принципу "Повторяй за мной", т.е. простое копирование кода. Очень редко встречается человек, которые разъясняет основы, что он делает, почему и для чего.

  • Последовательность. Уроки идут так как решит автор. В принципе, в платных так же. Часто встречаются моменты, когда автор скачет от темы к теме. Я находил много курсов, которые начали "За здравие", а закончили "За упокой". А еще бывает так, что по каким-то причинам курс или забрасывают или автор начинает вести новый. Начинал про верстку, а потом резко перешел на PHP.

  • Ресурсы. Уроки могут проходить на разных ресурсах. Иногда автор создает сайт, на котором выкладываются уроки. Видео к урокам находится на ЮТ в 99% случаев, а может вообще на специфических ресурсах (что бы не скачали). Получается, что комментарии могут быть везде. А в них есть ответы на вопросы. В итоге - не знаю где задать вопрос.

  • Отсутствие самостоятельных заданий. В бесплатных их нет по причине того, что их проверять никто не будет. Обычно это сводится к тому, что верстается один конкретный проект. Магазин, лендинг, визитка. И весь курс заточен под конкретный макет.

  • Отсутствие сроков обучения. Отсутствие сроков, пусть и формальных, пагубно влияет на любую деятельность. Если курс, к тому же, находится в процессе выпуска, т.е. не закончен, то вы не знаете когда будет следующий урок.


Плюсы платных

  • Актуальность. Автор всегда старается давать актуальную информацию. Если курсу не один год, и его постоянно покупают, то автор следит за тем, чтобы информация планомерно обновлялась.

  • Поддержка. Тут понятно, ответы дает сам автор, что не может не радовать. К тому же всегда есть раздел вопросов/ответов в которых другие пользователи разобрали большую часть непонятных моментов.

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

  • Последовательность. Курс - законченный продукт с определенным последовательным объемом информации.

  • Ресурсы. Курс расположен на одном ресурсе где автор выкладывает уроки, видео, образцы кода, тут же происходит общение. Очень удобно.

  • Самостоятельные работы с возможностью разбора и получения обратной связи.

  • Срок обучения. Обычно весь курс виден сразу и я могу планировать свое время на обучение.

  • Возврат денег. В тех курсах, которые мне не подошли мне всегда возвращали все деньги.

  • В хороших платных курсах доступ к материалам остается навсегда и бесплатно.

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

  • Домашние задания с проверками и разборами ошибок.

Минусы платных

  • Не бесплатно.


Марафоны.

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

Чем плохи марафоны?

Во первых - временем прохождения. Я живу в Иркутской области. Все марафоны, что мне попадались, идут по московскому времени. Я проходил свой с 23.00 до 2-3 часов ночи, а утром на работу. И так 2 недели.

Во вторых - проверка заданий. Так как это марафон и он всегда ограничен по времени, то задания проверяют или очень плохо или очень дотошно, что бы ты отстал и записался на следующий (поясню ниже). Организаторы спешат закончить этот и начать другой.

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

В четвертых - там, по сути, нет никакого обучения. Все чему учат это печатать код как показывают на экране. А иногда сводится и к такому:

По поводу второго пункта. Меня насторожил тот факт, что в группе было, как минимум треть, тех кто проходил марафон во второй раз. Потом уже я понял, что это были те, кто отстали на первом и сейчас, ради заветного сертификата, проходят его еще раз. У меня не принимали домашку, объясняя тем, что она не подходит под Pixel Perfect, как исправить и что, никто ничего не говорил. Плюс ко всему, во время марафона постоянно говорили, что скоро стартует такой же марафон

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

Марафон для новичка это самый настоящий лохотрон (не в уголовно-процессуальном контексте). Тебе показали кучу красивых картинок, что-то рассказали, взяли деньги и до свидания. Вроде бы что-то делал сам, а повторить не сможешь.


А теперь немного суровой правды жизни. Имей в виду, чтобы не питать каких-то там иллюзий. Цель любого образовательного процесса - проверить как студент усвоил новые знания и правильно ли он применяет их на практике. Цель курса или марафона не научить тебя, а заработать на тебе. На курсах и марафонах тщательно проверяют только поступивший платеж. Это не хорошо и не плохо. Это бизнес.

Но! На сегодняшний день курсы - единственный способ быстро получить новую профессию. И неплохую профессию, с высокой з/п и без требования предъявить диплом о высшем образовании. Курсы дают неплохую теоретическую базу и примерное направление дальнейшего развития с указанием знаний, которые необходимо получить дополнительно. Но никто не будет переживать за тебя, поддерживать и подсказывать. Курсы учат учиться.

Учись быть самостоятельными!

Напиши про свой опыт обучения. Может там где я увидел минусы ты увидел плюсы и наоборот? А может я что-то упустил? Будет интересно почитать.

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru