введение в машинное обучение github

Введение в машинное обучение github

Введение в анализ данных и машинное обучение

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

Что требуется для прохождения курса?

Все примеры кода созданы на языке Python, поэтому необходимо знать этот язык. К счастью, Python легко освоить, он очень интуитывный. Если вы не знаете Python, то можете пройти короткий курс Google’s Python Class или любой другой, который вам больше подходит.

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

Все примеры кода созданы в третьей версии Python. Вторая и третья версии несовместимы между собой, поэтому убедитесь, что вы используете версию 3 или выше.

Установка необходимого ПО

Чтобы локально запустить код необходимо установить все зависимые библиотеки.

Для ОС Windows рекомендуется установить Anaconda, который содержит все необходимые библиотеки.

Лицензия на материалы курса

Исходный код курса распростроняется под лицензией MIT, текст под лицензией CC BY-SA.

About

Введение в анализ данных и машинное обучение

Источник

bashkirtsevich / reading.md

Для тех, кто хочет на русском языке почитать:

Джеймс Г., Уиттон Д., Хасти Т., Тибширани Р. Введение в статистическое обучение с примерами на языке R источник, Оглавление и отрывки из глав

Себастьян Рашка Python и машинное обучение источник

Хенрик Бринк, Джозеф Ричардс Машинное обучение источник

Хараламбос Марманис, Дмитрий Бабенко Алгоритмы интеллектуального Интернета. Передовые методики сбора, анализа и обработки данных источник

К. В. Воронцов. Математические методы обучения по прецедентам (теория обучения машин) источник

Мерков А.Б. Введение в методы статистического обучения источник

Аркадий Гелиг, Алексей Матвеев Введение в математическую теорию обучаемых распознающих систем и нейронных сетей. Учебное пособие источник

Мерков А.Б. Построение и обучение вероятностных моделей источник

Ричарт В., Коэльо П.Л. Построение систем машинного обучения на языке Python источник, Оглавление и отрывки из глав (тут больше практика по машинному обучению)

Вьюгин В. Математические основы машинного обучения и прогнозирования источник

Червоненкис А.Я. Теория обучения машин

Ричард С. Саттон, Эндрю Г. Барто Обучение с подкреплением источник

Андреас Мюллер, Сара Гвидо Введение в машинное обучение с помощью Python. Руководство для специалистов по работе с данными источник

Дэви Силен, Арно Мейсман Основы Data Science и Big Data. Python и наука о данных источник

Лепский А.Е., Броневич А.Г. Математические методы распознавания образов: Курс лекций источник

В. И. Донской Алгоритмические модели обучения классификации:обоснование, сравнение, выбор источник

Местецкий Л.М. Математические методы распознавания образов Курс лекций источник

Кристофер Д. Маннинг, Прабхакар Рагхаван Введение в информационный поиск источник

Юре Лесковец, Ананд Раджараман Анализ больших наборов данных источник, оглавление и отрывки из глав

Шлезингер М.И. Десять лекций по статистическому и структурному распознаванию образов источник

Для тех, кто хочет на русском языке посмотреть:

Высшая школа экономики «Введение в машинное обучение» источник Coursera

Специализация Машинное обучение и анализ данных включающая себя 6 курсов : источник Coursera

Видеолекции курса «Машинное обучение» от Школы анализа данных Яндекса источник на яндексе или источник на ютубе

Специализация Анализ Данных от Stepik (часть курсов из этой специализации отображена тут)

Курс от Stepik Нейронные сети источник

Видеолекциии (13шт.) Введение в анализ данных источник Mail.ru

Видеолекциии (1 семестр) Data Minig источник Mail.ru

Видеолекциии (2 семестр) Data Minig источник Mail.ru

Computer Science Center Машинное обучение, часть 1 (осень 2016) источник ютуб

Computer Science Center Машинное обучение, часть 2 (весна 2017) источник ютуб

Data Mining in Action 10 лекций по ML источник ютуб

Компьютерные науки Тренировки Machine Learning источник ютуб здесь люди делятся своим реальным опытом в ML

Высшая школа экономики, курс Линейная алгебра источник Coursera

Лекториум Линейная алгебра и аналитическая геометрия источник ютуб

МФТИ, курс Теория вероятностей для начинающих источник Coursera

МФТИ, курс Математика для всех источник Coursera

Курс от Stepik Основы статистики часть1,часть2, часть3

Курс от Stepik Математическая статистика источник

Курс от Stepik Введение в дискретную математику источник

Курс от Stepik Ликбез по дискретной математике источник

Курс от Stepik Введение в математический анализ источник

Курс от Stepik Математический анализ часть1, часть2

Курс от Stepik Анализ данных в R часть1, часть2

Computer Science Center Анализ данных на R в примерах и задачах (весна 2016) источник ютуб

Computer Science Center Анализ данных на R в примерах и задачах, часть 2 (весна 2017) источник ютуб

Канал на ютубе Основы анализа данных источник

KhanAcademyRussian Теор. вероятн-ей и комбинаторика источник ютуб

Прежде чем заниматься конкретно машинным обучением, рекомендую всё же ознакомится с книгами

С_тюарт Рассел, Питер Норвиг_ Искусственный интеллект. Современный подход источник

Джордж Ф. Люгер Искусственный интеллект. Стратегии и методы
решения сложных проблем
источник

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

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

Борис Миркин Введение в анализ данных. Учебник и практикум источник

Марина Архипова, Татьяна Дуброва Анализ данных. Учебник источник

Загоруйко Н.Г. Прикладные методы анализа данных и знаний источник

Мостеллер Ф., Тьюки Дж. Анализ данных и регрессия источник

Рубан А.И. Методы анализа данных

Уэс Маккинни Python и анализ данных источник (практика)

Роберт И. Кабаков R в действии. Анализ и визуализация данных на языке R источник (практика)

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

Стивен Х. Строгац Удовольствие от x. Увлекательная экскурсия в мир математики от одного из лучших преподавателей в мире источник

Юрий Шиханович Введение в современную математику. Начальные понятия источник

Рональд Л. Грэхем, Дональд Эрвин Кнут Конкретная математика. Математические основы информатики источник

Юрий Пухначев Математика без формул книга1, книга2

Риxард Курант, Герберт Роббинс Что такое математика? источник

Тарасов Л.В. Азбука математического анализа. Беседы об основных понятиях. Учебное пособие источник

Потом уже можно браться за стандартный учебник математического анализа

Статистика, теория вероятностей:

Гнеденко Б.В., Хинчин А.Я. Элементарное введение в теорию вероятностей источник

Сара Бослаф Статистика для всех источник

Чарльз Уилан Голая статистика. Самая интересная книга о самой скучной науке источник

Перечень будет дополнятся только если появится действительно стоящий курс или книга.

Источник

Введение в машинное обучение

Обучение — это универсальный навык, который присущ любому живому организму на планете.

Обучение — это приобретение знаний и навыков посредством опыта или учебы. Это то, что нас объединяет и в то же время делает уникальными. Это то, что развивается с течением времени.

введение в машинное обучение github

Что, если я скажу: «Машины тоже могут учиться»?

Мы живем в удивительное время развития роботизации, искусственного интеллекта и машинного обучения. Машинное обучение по-прежнему довольно новая концепция. Мы можем научить машины тому, как учиться, а некоторые машины могут учиться самостоятельно. Магия!

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

Что такое машинное обучение

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

Машинное обучение — создание алгоритмов (набора правил), которые учатся на сложных функциях (шаблонах) из данных и делает прогнозы.

Это происходит в 3 этапа:
1) Анализ данных
2) Нахождение шаблонов
3) Предсказание на основе шаблона

Применение машинного обучения

Краткий обзор, где можно использовать машинное обучение

Не хочу вас запутать, поэтому просто скажу, что машины учатся, находя похожие данные в больших массивах данных. Чем больше данных передается машине, тем «умнее» она становится.

Не все данные одинаковы. Представьте, что вы пират и ваша цель — найти клад где-то на острове. Для того, чтобы это сделать, понадобится большое количество информации. Как и данные, эта информация может вести вас либо в правильном направлении, либо в неправильном. Чем точнее полученная информация/данные, тем больше шансов на успех. Поэтому важно учитывать тип данных, с помощью которых будет проходить обучение.

Тем не менее, после достаточного объема данных, машина может делать прогнозы. Машины могут предсказывать будущее до тех пор, пока будущее не будет сильно отличаться от прошлого.

Типы машинного обучения

Существует три основные категории машинного обучения:

Supervised learning (обучение с учителем): Машина учится по выбранным данным. Обычно, данные отмечаются людьми.

Unsupervised learning (обучение без учителя): Машина учится не по выбранным данным. Смысл в том, что среди данных нет «правильного» ответа, машина должна найти зависимость между объектами.

Reinforcement learning (обучение с подкреплением): Машина учится через систему на основе вознаграждения.

1. Supervised learning (обучение с учителем)

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

Задача регрессии:

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

Если требуется спрогнозировать дискретные значения, например классифицировать что-либо по категориям, используйте классификацию. Вопрос «Будет ли человек делать покупку», имеет ответ, который попадает в две конкретные категории: да или нет. Число допустимых ответов конечно.

2. Unsupervised learning (обучение без учителя)

Поскольку у машин нет отмеченных данных для обучения, цель машинного обучения без учителя — обнаружение закономерностей в данных и их группировка.
Обучение без учителя решает 2 типа задач: задача кластеризации и задача поиска ассоциациативных правил.

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

Задача поиска ассоциациативных правил:

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

3. Reinforcement learning (обучение с подкреплением)

Этот тип машинного обучения требует использования системы вознаграждения/штрафа. Цель — вознаградить машину, когда она учится правильно, и наказать машину, когда она учится неправильно.

Примеры обучения с подкреплением

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

Источник

Другой Github 2: машинное обучение, датасеты и Jupyter Notebooks

введение в машинное обучение github

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

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

Машинное обучение

Awesome Machine Learning
введение в машинное обучение github38 809, введение в машинное обучение github9 615

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

Scikit-learn
введение в машинное обучение github34 067, введение в машинное обучение github16 698

Развиваемый с 2007 г. Python-модуль для машинного обучения, построенный на основе библиотек SciPy, NumPy и Matplotlib. Распространяется по лицензии BSD 3-Clause. Scikit-learn — универсальный инструмент для работы, содержащий алгоритмы классификации, регрессии и кластеризации, а также методы подготовки данных и оценки моделей.

PredictionIO
введение в машинное обучение github11 703, введение в машинное обучение github1 903

Фреймворк машинного обучения с открытым исходным кодом, поддерживающий сбор событий, развёртывание алгоритмов, оценку, шаблоны для известных задач, таких как классификация и рекомендации. Подключается к существующим приложениям с помощью REST API или SDK. PredictionIO основан на масштабируемых сервисах с открытым исходным кодом, таких как Hadoop, HBase (и другие БД), Elasticsearch, Spark.

Dive Into Machine Learning
введение в машинное обучение github9 163, введение в машинное обучение github1 673

Материал для новичков в теме. Репозиторий содержит сборник туториалов IPython для библиотеки Scikit-learn, в которой реализовано большое количество алгоритмов машинного обучения, а также несколько ссылок на связанные с Python темы машинного обучения и более общую информацию по анализу данных. Автор дает ссылки на многие другие учебные пособия, охватывающие тему.

Pattern
введение в машинное обучение github6 845, введение в машинное обучение github1 353

Модуль веб-разработки на основе Python с инструментами для анализа, обработки естественного языка (разметка частей речи, поиск n-грамм, анализ настроений, WordNet), машинного обучения, сетевого анализа и визуализации. Модуль создан и хорошо документирован в исследовательском центре компьютерной лингвистики и психолингвистики Антверпенского университета (Бельгия). В репозитории вы найдете более 50 примеров его использования.

GoLearn
введение в машинное обучение github6 374, введение в машинное обучение github867

Активно развивающаяся библиотека машинного обучения для Go. Предоставляет полнофункциональный, простой в использовании, легко настраиваемый программный пакет для разработчиков. GoLearn реализует знакомый многим интерфейс обучения Scikit-learn.

Vowpal Wabbit
введение в машинное обучение github6 189, введение в машинное обучение github1 519

Система Vowpal Wabbit расширяет границы машинного обучения с помощью таких методов, как хэширование, allreduce, learning2search, активное и интерактивное обучение. Vowpal Wabbit нацелена на быстрое моделирование массивных наборов данных и поддерживает параллельное обучение. Особое внимание уделяется обучению с подкреплением с использованием нескольких контекстуальных «бандитских алгоритмов».

NuPIC (Numenta Platform for Intelligent Computing)
введение в машинное обучение github5 852, введение в машинное обучение github1 570

NuPIC реализует алгоритмы машинного обучения иерархической временной памяти (Hierarchical Temporal Memory, HTM). В общем виде HTM является попыткой смоделировать вычислительные операции неокортекса человеческого мозга и фокусируется на сохранении и вызове пространственных и временных паттернов. HTM — это система памяти, она не программируется, не учится выполнять алгоритмы для различных задач, она учится решать проблему. NuPIC подходит для решения всевозможных задач, в частности, для обнаружения аномалий, связанных с паттернами.

aerosolve
введение в машинное обучение github4 522, введение в машинное обучение github570

aerosolve пытается отличаться от других библиотек, концентрируясь на удобных для пользователя средствах отладки, Scala-коде для обучения, механизме анализа контента изображений для удобного ранжирования, гибкости и контроле над функциями. Библиотека предназначена для использования с редкими интерпретируемыми функциями, которые обычно встречаются в поиске (ключевые слова для поиска, фильтры) или ценообразовании (количество комнат в гостиничном номере, местоположение, цена).

Code for Machine Learning for Hackers
введение в машинное обучение github3 467, введение в машинное обучение github2 220

Дополняющий книгу «Machine Learning for Hackers» репозиторий, в котором весь код представлен на языке R, предназначенном для статистической обработки данных (фактически стандарт статистических программ) и работы с графикой. Здесь вы найдете многочисленные пакеты R. В число рассматриваемых тем входят общие задачи классификации, ранжирования и регрессии, а также статистические процедуры анализа компонентов и многомерного масштабирования.

Датасеты на Github

Awesome Public Datasets
введение в машинное обучение github31 852, введение в машинное обучение github5 361

Ещё один впечатляющий своими размерами репозиторий со списком, разделенным на 30 тем: биология, спорт, музеи, естественный язык и т.д. Репозиторий включает в себя несколько сотен наборов данных, большинство из которых бесплатны. Здесь указаны ссылки и на другие подборки больших данных.

OpenAddresses
введение в машинное обучение github1 644, введение в машинное обучение github745

Официальный репозиторий OpenAddresses.io — бесплатная и открытая глобальная коллекция уличных адресов. Проект включает в себя названия улиц, номера домов, почтовые индексы и географические координаты.

Open Exoplanet Catalogue
введение в машинное обучение github583, введение в машинное обучение github176

Каталог всех известных планет, существующих вне Солнечной системы. Раньше база данных обновлялась в течение 24 часов после открытия новой планеты, но сейчас, к сожалению, проект практически не развивается.

CitySDK
введение в машинное обучение github510, введение в машинное обучение github149

База данных Бюро переписи США, адаптированная для интеграции с другими открытыми наборами данных, обладающая удобными функциями для работы и создания собственного настраиваемого набора данных с API Census: статистика, картографический GeoJSON, lat/lng и т.д.

openFDA
введение в машинное обучение github353, введение в машинное обучение github84

openFDA — это проект Управления по санитарному надзору за качеством пищевых продуктов и медикаментов в США (FDA), целью которого является предоставление коллекции публичных наборов данных для исследователей и разработчиков через API, а также примеров использования этих данных и документации. Здесь есть информация о побочных эффектах лекарственных препараторов, маркировка лекарств, отчеты об отзыве препаратов с рынка и о внесении изменений в рецептурную формулу.

CERN Open Data Portal
введение в машинное обучение github247, введение в машинное обучение github88

Исходный код для портала открытых данных Организации по ядерным исследованиям ЦЕРН, который описывается как «точка доступа к растущему спектру данных, полученных в результате исследований ЦЕРНа».

IPython (Jupyter) Notebooks

Список полезных репозиториев Github, состоящий из блокнотов IPython (Jupyter), ориентированных на работу с данными и машинное обучение.

Python Machine Learning Book
введение в машинное обучение github9 655, введение в машинное обучение github3 674

Сопроводительный репозиторий первого издания книги «Machine Learning with Python» (репозиторий ко второму изданию тут), в которой рассматривается работа с недостающими значениями, преобразование категорийных переменных в форматы, применимые при машинном обучении, выбор информативных свойств, сжатие данных с переносом в подпространства с меньшим количеством измерений.

Example Data Science Notebook
введение в машинное обучение github4 156, введение в машинное обучение github1 463

Репозиторий учебных материалов, кода и данных для различных проектов анализа данных и машинного обучения. Notebook содержит все базовые принципы работы с анализом данных на примере датасета Iris, и служит прекрасной иллюстрацией построения рабочего процесса в data science. Базовые пункты для работы в репо почерпнуты из книги «The Elements of Data Analytic Style» (Jeff Leek, 2015).

Learn Data Science
введение в машинное обучение github2 197, введение в машинное обучение github1 228

Коллекция Notebooks и датасетов, охватывающая четыре алгоритмические темы: линейная регрессия, логистическая регрессия, случайные леса и алгоритмы K-Means кластеризации. Learn Data Science основана на материалах, созданных для проекта Open Data Science Training.

IPython Notebooks
введение в машинное обучение github2 106, введение в машинное обучение github1 226

Репозиторий содержит различные Notebooks IPython — от обзора языка и функциональности IPython до примеров использования различных популярных библиотек в анализе данных. Здесь вы найдете исчерпывающую коллекцию материалов по машинному обучению, глубокому обучению и средам обработки больших данных с курсов «Machine Learning» Andrew Ng (Coursera), «Intro to TensorFlow for Deep Learning» (Udacity) и «Spark» (edX).

Scikit-learn Tutorial
введение в машинное обучение github963, введение в машинное обучение github573

Репозиторий для изучения библиотеки Scikit-learn, в которой реализовано большое количество алгоритмов машинного обучения. Библиотека предоставляет реализацию целого ряда алгоритмов для обучения как с учителем, так и без него. Scikit-learn построена поверх SciPy (Scientific Python).

Machine Learning
введение в машинное обучение github543, введение в машинное обучение github336

Серия очень подробных учебных материалов по IPython Notebook, созданная на основе данных из курса Эндрю Нга по машинному обучению (Стэнфордский университет), курса Тома Митчелла (Университет Карнеги-Меллон) и книги Кристофера М. Бишора «Распознавание образов и машинное обучение».

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *