Закладки из браузера за 2017 год в относительно хронологическом порядке по Python. Это всё, что нагулилось в процессе: никогда не программировал - относительно свободно изучаю учебные курсы сообщества ODS и пользуюсь Pandas и t-SNE. Если что - то как программист Python я справа, но всё это читал и вам советую, годный саундтрек для чтения прилагается.
Обычно, новичкам, которые "никогда не программировали" советуют читать Лутца, но сам Лутц считает, что его книжка не зайдёт тем, у кого нет "минимальной базы". Я пробовал читать Лутца без базы в языке - дядька прав, прежде чем открыть 1200 страничный артефакт, содержащий свет истины - необходимо получить минимальный минимум.
Выдержкам из первых глав Лутца посвящен отдельный репозиторий. Для начала стоит немного потренироваться.
- Учимся пользоваться голым интерпретатором Python, учимся печатать код
- Самый первый полезный учебник с задачами которые можно и нужно решить.
- Разбираемся с первыми трудными вопросами из учебника и переходим к Лутцу.
Несколько полезных уроков про модули в Python раз, два, три.
Каждая из ссылок ведёт на разные ресурсы одинаковой полезности, там вы сможете найти ответы практически на любые вопросы, которые могут возникнуть у вас при выполнении задач из учебника или чтении Лутца.
В теории, достаточно один раз самостоятельно решить задачи из первого учебника и переходить к Лутцу, но, на практие есть один нюанс - меньшая половина того материала, который представлен выше, займёт в изложении Лутца страниц 300.
4-ое издание нужно читать (как минимум до 8-10 главы) поскольку Лутц позволяет сформировать восприятие о языке как о инструменте, которым вы собираетесь пользоваться. Но 1200 страниц без подготовки это долго.
Поэтому, я рекомендую сразу ознакомиться со справочными материалами с этих ресурсов, прочитать Лутца и по готовности переходить к изучению учебных материалов ODS.
Изучение учебных курсов ODS предполагает не только необходимый минимум в знании языка, но и ряд других требований. Владение библиотекой Pandas является обязательным. Поэтому, прежде чем задаваться вопросом - насколько я силен в математике, необходимо научиться пользоваться этим, во всех отношениях, отличным инструментом.
- Лучший стартовый tutorial по Pandas.
- Хорошее продолжение первого знакомства с Pandas.
- Старт учебного курса ODS и отличный пример работы с Pandas
- Первый вызов для начинающего и прекрасная иллюстрация практики.
Стоп - вот тут нужно остановиться и прежде чем переходить к следующему уроку из ODS - серьёзно подготовиться. Любой провал в знаниях на данном этапе сделает последующие усилия бесполезными.
Прежде чем двигаться дальше в рамках учебного курса ODS, нужно разобраться как всё это работает.
Заглянем в оф.док по Pandas и познакомимся со средствами визуаллизации
- Визуализация данных с помощью Pandas и matplotlib.
- Более подробно о визуализации данных с помощью Pandas.
- Процедура логической индексации данных в Pandas - кратко.
- Мануал Pandas, в которой рекомендуется хоть иногда заглядывать.
- Хорошая иллюстрация возможностей конструктора сводных таблиц.
- Хороший и наглядный мануал по научной графике в исполнении matplotlib.
- Архив, который описывает возможности других библиотек в отношении графики в Pandas.
- На случай, если происходящее как то будет связано с Excel без участия Pandas, хотя Pandas умеет в Excel.
Заглянем на оф.сайт Анаконды и найдём мануал по ней
Режим читов - тетрадка Юпитер
- Сайт проекта Юпитер.
- Введение в тетрадку Юпитер.
- Второй полезный tutorial по тетрадке.
- Это не баг - а фича! сборник особенностей тетрадки.
IPython
Либы
- Plotly - интерактивные HTML графики и красота.
- Seaborn - основной инструмент визуального анализа.
- NumPy - инструкция к математическому аппарату происходящего.
- Scikit-learn - инструкция к библиотеки про machine learning, сложная.
Предпологаеться хотя бы иногда подглядывать в тот или иной мануала за вопросом "как сделать" прежде чем искать готовый ответ в google, кстати, достаточно часто его там нет. Его там нет не потому что его нет - нет няши, всё проще, его там нет потому, что ответ на вопрос будет звучать так: RTFM.
Если часть 3 носит относительно обзорный характер материалов, которыми вы будете пользоваться несколько лет, то эта часть более важна. Богом математики быть не обязательность, но разруха в голове должны быть на уровне: мне известна разница между корреляцией по Пирсону и по Спирману и один из этих методов является для меня более предпочтительным. Лично я всегда любил ранговую корреляцию и все свои модели приводил именно к ней.
- Кратко про коэффициент корреляции Пирсона.
- Про математику как часть визуального анализа.
- Хорошая шпаргалка по статистическому анализу.
- Серия поучительных лекций про инструменты анализа.
- Отличный материал по анализу статистических данных в Pandas
В теории, нужно хотя бы запомнить что между 1 и 0 есть 0.25, 0.5 и 0.75.
Второй урок учебного курса ODS наглядно демонстрирует один из методов построения t-SNE представления. Забегая вперёд могу сказать - что, эта штука такая же полезная как и весь остальной "machine learning" и такой вариант, как "потратить пару лет только на изучение t-SNE вполне уместен. Например, если овладеть одним из методов, можно сразу идти устраиваться работать с поисковыми системами.
- Сложное, но очень хорошее intro.
- Инструкция к этому празднику жизни.
- Причина - по которой нужно уметь в Pandas и t-SNE.
- Техника визуализации представления слов с помощью t-SNE.
- Сочетание возможностей t-SNE в алгоритмами компьютерного зрения.
- После чтения статьи про алгоритм Джонкера-Волгенанта советую посмотреть сюда.
- Пожалуй, самая важная ссылка раздела - репозиторий с кодом посвященный библиотеке scikit-learn.
- Multicore t-SNE modification - актуально, когда массив данных большой и интерпретатор возвращают memory error.
Эксперименты с датафреймами из первого и второго запуска учебного курса ODS в части t-SNE могут легко и красиво познакомить вас с пределом вычислительных мощностей вашего компьютера, даже если вы работаете с маленькими массивами вроде telecom churn.csv. В теории Multicore-t-SNE лучше работает с большим выборками, на практике t-SNE прожорлив в следствии большой вычислительной сложности. Скажем так - если дома калькулятор, можете забыть.
Как минимум это 14(12) GB Ram и разлоченный 4170 quad-core
Вот теперь, можно вернуться к началу учебного курса ODS и попробовать самостоятельно провести анализ данных из первой части курса прежде чем отправляться в дебри machine learning. Так или иначе вам потребуется способность формировать оценочное суждение о данных с которыми вы работаете прежде чем строить вокруг них лес решений.
Бонус для облегчения процесса.
- Ранговая корреляция.
- Полезная подборка годноты.
- Функция, которую нужно выучить.
- Это не баг - это фича статистики.
- Если вы до сих пор читали по диагонали.
- Возможности PyCharm в сочетании с Pandas.
- Полезный раздел мануала Pandas в области статистики.
- Важно знать что Pandas самостоятельно работает с датами.
Серия полезных материалов для ознакомления с предметной областью machine learning.
- Обзорная статья.
- Источник годноты ODS.
- Строим первый лес решений.
- Ломаем голову над математикой.
- Поучительный пример построения прогноза.
- Ещё один хороший пример и набор данных для тренировки.
- Лекция про то - что такое Churn и почему он именно такой.
- Ну, типа учебный курс udemy
Если вы смогли прочитать по-диагонали хотя-бы половину ссылок, значит:
- вам пришлось много кодить на Python в IDE и IPyhton в тетрадке.
- вы смогли пару раз криво построить представление t-SNE.
- вы получили кучу memory error и теперь у вас 14Gb MRam.
- вас ненавидят в чатике https://t.me/ru_python_beginners
- вы ненавидите богов математики из слака ODS.
- по ночам пришлось спать.
- а не смотреть аниме.
- отлично!
Поздравляю, вы испортили себе жизнь настолько, что теперь можете написать датафрейм самостоятельно, пришло время для следующей части учебного курса.
Кроме этого, настоятельно рекомендуеться научиться логический индексации в Pandas, разобрать свалку тетрадок и хоть что нибудь залить на Гит.
Рори одобряет
Дорогие бегинеры! если вы, как и я любите аниме - не читайте ссылки на материалы представленные в этом файле, изучение Python имеет одну особенность, которую лучше всего можно описать так. Поэтому, даже если у вас - это не повод портить себе жизнь и прекращать смотреть мультики.
Когда год назад один лид продюсер дал мне совет "ну... с твоими скиллами и сколнностью к ранговой корреляции всего и вся в процессе танслирования той разрухи в голове, которую ты выдаешь за скилл и идеи в области проектирования EPR систем тебе надо выучить Питон"..
Я не распознал подвоха и повёлся на этот прикол из уст человека, который в тот момент занимался тем, что учился кодить в руби шахте с целью перезда в другой город подальше от своих карьерных достижений...
И в результате оказался занят чем угодно, кроме просмотра аниме.
Это не вдохновляет, я хочу обратно! И хуже всего то, что я стал понимать о чём говорят другие программисты в чатике, хотя сначала чатик для меня выглядел примерно вот так.
*Материала много(!), даже по диагонали это только для тех, кто готов убить год своей жизни дома у компа и потратить несколько следующих лет на переваривание прочитанного и прокачку скиллов, если работаете на фулл-тайм то такой объём не вариант, попробуйте книжку.
За год я нагулил раз в 10(x) больше ссылок и был вынужден их прочесть, часто они вели на уже просмотренные ранее ресусры, но на другие разделы, поэтому для вас я отобрал только те ссылки, которые в основной своей массе не дублируют ссылки на ранее указаный ресурс, к которому вы уже обращались.
Но, это не значит что другие разделы не нужно читать. Читать всё это нужно как минимум до состояния "оф.док по Pandas перестал быть непонятной книжкой для программистов, в противном случае не сможете продвигаться дальше по учебному курсу ODS.
Поскольку несколько человек написали мне и попросили развить тему - выкатываю вторую часть гайд в формате ipnynb, пачка ссылок на полезные статьи, найденные в промежутке между гайдам - в комплекте.