Машинное обучение и большие данные что это
Big Data, блокчейн, машинное обучение — объясняем термины на ёжиках
Искусственный интеллект и машинное обучение всё чаще используются компаниями в маркетинге. О том, как и для чего они применяются в работе, расскажем в следующих статьях. А чтобы лучше понимать, как устроены эти технологии, мы подготовили для вас тематический словарь с наглядными примерами. Объясняем термины так просто, чтобы и ежу стало понятно.
Искусственный интеллект
Он же ИИ, Artificial Intelligence, AI
Точного определения не существует, совсем как в философии. Всё зависит от того, что именно понимать под словами «разум» и «интеллект». Считать это только свойством людей? Или некоторые животные тоже разумны и обладают интеллектом? В целом, искусственный интеллект — это свойство систем имитировать либо психические процессы человека, либо разумное поведение и возможность совершать выбор.
Представьте, вы мечтаете завести ежа. Останавливает только аллергия на этих животных. Тогда друзья предлагают купить робоёжика. Он должен уметь воспроизводить поведение настоящего ежа: фыркать, выражая своё недовольство, сворачиваться в клубочек, когда его пытаются погладить, громко топать лапками по ночам, любить хозяина и кусать незнакомых ему людей. Если ваш робоёж умеет всё это, то можете смело говорить, что он обладает искусственным интеллектом.
Большие данные
Они же Big Data
Вроде сразу понятно, большие данные — это много каких-то данных. Но всё не так просто. Для начала, много — это сколько? Три, десять, миллион, миллиард? А чего — мегабайтов, гигабайтов, терабайтов? Насчёт этого нет единого мнения. Кто-то думает, что это когда данные нельзя посчитать на одном компьютере, кто-то — когда ежедневный поток информации превышает 100 Гб в день. Принято считать, что большие данные — это не только сами данные, но ещё и инструменты, подходы и методы обработки информации.
Допустим, есть задание от Гринпис: каждый день считать белобрюхих, ушастых и африканских карликовых ежей, живущих на территории заповедника. Это нужно, чтобы сравнить их количество между собой и посмотреть, не уменьшается ли популяция одного из видов ежей.
Каждый день вы собираете всех ёжиков и распределяете по трём комнатам.
Если в заповеднике 100 ёжиков, задача кажется легкой. С 1000 ежей становится сложнее (не забывайте, они могут выбегать). А если у вас самый большой в мире ежиный заповедник, то вручную животных уже не посчитать — в этот момент они станут большими данными. Вам придётся обзавестись инструментом обработки больших данных — умным автоматическим сортировщиком ежей. Он не только распределит и посчитает животных, но и найдёт новые зависимости, например, сезонные колебания в ежиной популяции.
Блокчейн
От англ. Blockchain
Блокчейн — это не только про криптовалюту! Это технология хранения информации в цепочке блоков. Каждый из блоков содержит данные о всей предыдущей цепочке: известно, что именно хранится в предыдущих блоках, кто и когда создал информацию, переместил её или изменил. Все сведения дублируются на разных компьютерах, возможно, в разных странах. Благодаря этому подделать их просто невозможно.
Представьте, что у вас есть лучший друг — ёж Соник. Прибегает сосед, грозится вызвать полицию и кричит, что у него есть видео, где Соник два дня назад крадёт огромный алмаз, закопанный в саду. Но такого не может быть: весь вечер вы с ежом смотрели сериалы и ели пиццу.
Предположим, все записи с камер наблюдения района хранятся с помощью технологии блокчейн: запись одного дня с одной камеры — один блок, в новом блоке содержится видеозапись нового дня и код-идентификатор предыдущего блока. Полицейский получает доступ ко всем камерам, на которых виден сад соседа. Затем он ищет код с нужной камеры, смотрит на идентификатор видео, где Соник крадёт алмаз и понимает, что видео сфабриковано. Теперь можно дальше счастливо есть пиццу, а сосед будет отрабатывать наказание за клевету!
Машинное обучение
Оно же МО, Machine Learning, ML
Это алгоритмы, обучающиеся самостоятельно или с помощью учителя. Выглядит это примерно так:
С помощью методов машинного обучения можно научить компьютеры распознавать ёжиков или рисовать их. Ниже расскажем про два разных подхода с конкретными примерами.
1. Градиентный бустинг
От англ. Gradient Boosting
Это способ последовательного построения алгоритмов. Каждый новый алгоритм создаётся, чтобы исправить недостатки предыдущего.
Например, мы придумываем алгоритм, определяющий породу ежей. Для начала смотрим их размеры: большой ёж, средний или маленький. Это наше первое простое дерево решений. Затем ещё несколько:
Далее соединяем все признаки в одно дерево и получаем заготовку, словно мы делаем тест «Какой вы ёжик». Все породы такой тест не покроет, поэтому придётся построить ещё одно дерево с учётом получившейся ошибки. Каждое новое дерево будет уменьшать ошибку и точнее определять породу ежей.
2. Нейронные сети
От англ. Artificial neural network
Это аналог нейронных сетей человеческого мозга. Много маленьких нейронов решают свои простейшие операции. Они взаимосвязаны и вместе выполняют сложные функции.
Предположим, мы много раз сфотографировали и нарисовали ежей, показали компьютеру и сказали: «Смотри, всё это ёжики». Он проанализировал картинки, наложил их друг на друга и выделил признаки ежа. В результате получилось представление — его называют слоем свёртки. Человек, который посмотрит на него, скорее всего, не поймет, почему алгоритм так видит ёжиков. Он увидит только набор пикселей. Такой сверточной нейронной сети теперь можно показать видео из заповедника, а она посчитает, сколько ежей там живет.
Модель машинного обучения
Она же ML model
Это конкретный обученный алгоритм. Модель со своим набором признаков (фич) решает только тот тип задач, для которого была построена. Как ёжик, которого научили ловить определённый вид гусениц.
Фича
От англ. feature — особенность, характеристика, свойство
Это сленговое обозначение признаков, применяющихся в моделях. Помните, мы в градиентном бустинге строили деревья для определения породы ежа? Так вот, форма ушек — это фича. Как и длина иголок.
Если вы хотите подробнее узнать, как устроено машинное обучение, где мы сталкиваемся с ним в жизни и как оно используется в маркетинге, переходите на статью «Вторжение машинного обучения: от заказа такси до персонализации контента».
В чем разница между наукой о данных, анализом данных, большими данными, аналитикой, дата майнингом и машинным обучением
В последнее время слово big data звучит отовсюду и в некотором роде это понятие стало мейнстримом. С большими данными тесно связаны такие термины как наука о данных (data science), анализ данных (data analysis), аналитика данных (data analytics), сбор данных (data mining) и машинное обучение (machine learning).
Почему все стали так помешаны на больших данных и что значат все эти слова?
Почему все молятся на биг дату
Чем больше данных, тем сложнее с ними работать и анализировать. Математические модели, применимые к небольшим массивам данных скорее всего не сработают при анализе биг даты. Тем не менее в науке о данных большие данные занимают важное место. Чем больше массив, тем интересней будут результаты, извлеченные из глубоких недр большой кучи данных.
Преимущества больших данных:
Наука о данных
Наука о данных это глубокие познания о выводимых данных. Чтобы заниматься наукой о данных необходимо знать математику на высоком уровне, алгоритмические техники, бизнес-аналитику и даже психологию. Все это нужно чтобы перелопатить огромную кучу инфы и обнаружить полезный инсайт или интересные закономерности.
Наука о данных базируется вокруг строгих аналитических доказательств и работает со структурированными и не структурированными данными. В принципе все, что связано с отбором, подготовкой и анализом, лежит в пределах науки о данных.
Примеры применения науки о данных:
Аналитика
Аналитика — это наука об анализе, применении анализа данных для принятия решений.
Аналитика данных предназначена для внедрения инсайтов в массив данных и предполагает использование информационных запросов и процедур объединения данных. Она представляет различные зависимости между входными параметрами. Например, автоматически выявленные, не очевидные связи между покупками.
В науке о данных для построения прогнозируемой модели используются сырые данные. В аналитике зачастую данные уже подготовлены, а отчеты может интерпретировать практически любой юзер. Аналитику не нужны глубокие знания высшей математики, достаточно хорошо оперировать данными и строить удачные прогнозы.
Анализ данных
Анализ данных — это деятельность специалиста, которая направлена на получение информации о массиве данных. Аналитик может использовать различные инструменты для анализа, а может строить умозаключения и прогнозы полагаясь на накопленный опыт. Например, трейдер Forex может открывать и закрывать трейдерские позиции, основываясь на простых наблюдениях и интуиции.
Машинное обучение
Машинное обучение тесно связано с наукой о данных. Это техника искусственного обучения, которую применяют для сбора больших данных. По-простому это возможность обучить систему или алгоритм получать различные представления из массива.
При машинном обучении для построения модели прогнозирования целевых переменных используется некий первичный набор знаний. Машинное обучение применимо к различным типам сложных систем: от регрессионных моделей и метода опорных векторов до нейронных сетей. Здесь центром является компьютер, который обучается распознавать и прогнозировать.
Примеры алгоритмов:
Отбор данных
Сырые данные изначально беспорядочны и запутаны, собраны из различных источников и непроверенных записей. Не очищенные данные могут скрыть правду, зарытую глубоко в биг дате, и ввести в заблуждение аналитика.
Дата майнинг — это процесс очистки больших данных и подготовки их последующему анализу или использованию в алгоритмах машинного обучения. Дата майнеру нужно обладать исключительными распознавательными качествами, чудесной интуицией и техническими умениями для объединения и трансформирования огромного количества данных.
🤖📊 Как машинное обучение упорядочивает большие данные
Что такое большие данные?
Big Data – область, в которой рассматриваются различные способы систематического извлечения полезных для решения бизнес-задач знаний из больших объемов данных. Для этого существуют различные механические или алгоритмические процессы получения оперативной информации. Специалисты по Big Data работают с сырыми неструктурированными данными, результаты анализа которых используются для поддержки принятия решений. Аналитика включает проверку, преобразование, очистку и моделирование данных.
5V больших данных
Работа с большими данными строится вокруг пяти основных принципов (c англ. V’s of Big Data: Volume, Velocity, Variety, Veracity, Value):
Откуда получают большие данные
Информация собирается из самых разных источников. Рядовые пользователи осуществляют в онлайне множество действий, от деловых коммуникаций до покупок и общения в социальных сетях. Миллиарды подключенных устройств и встроенных систем по всему миру также ежедневно создают, собирают и совместно используют данные Интернета вещей.
Некоторые из основных источников Big Data:
Интеллектуальный анализ и аналитика – два ключевых метода работы с большими данными. Интеллектуальный анализ включает сбор информации и применение к ней логических рассуждений. Сортировка и аналитика данных позволяют выявить скрытые закономерности и идеи, которые могут стать источником инсайтов для принятия решений практически в каждой отрасли. Например, с помощью идентификации паттернов и прогнозной аналитики.
Что такое машинное обучение?
Машинное обучение исследует построение и оптимизацию алгоритмов, задача которых – прогнозирование непредвиденных/будущих данных. В сочетании с возможностями облачных вычислений оно обеспечивает гибкость обработки и интеграции больших объемов данных вне зависимости от источника.
Алгоритмы машинного обучения могут быть применены к каждому этапу работы с большими данными, включая следующие:
Как машинное обучение применяется в Big Data?
В контексте больших данных машинное обучение используется, чтобы идти в ногу с постоянно растущим и меняющимся потоком информации. Алгоритмы машинного обучения определяют поступающие данные и выявляют связанные с ними закономерности, которые впоследствии преобразуются в ценные идеи и могут быть внедрены в бизнес-операции для автоматизации некоторых аспектов процесса принятия решений.
Примеры применения алгоритмов МО для больших данных
Автоматизация Маркетинга
Целевая аудитория – это краеугольный камень любого бизнеса. Каждое предприятие должно понимать рынок, на который оно хочет ориентироваться. Машинное обучение использует контролируемые и неконтролируемые алгоритмы для точной интерпретации потребительских паттернов и поведения. Опираясь на машинное обучение и большие данные, автоматизация маркетинга может использовать анализ тональности текста, сегментацию клиентов и прямой маркетинг, с помощью персонализированных сообщений для удовлетворения потребностей клиентов. СМИ и индустрия развлечений используют машинное обучение, чтобы понять симпатии и антипатии аудитории и предложить ей подходящий контент.
Анализ тональности текста
Анализ тональности текста – мощный инструмент для запуска нового продукта или внедрения новых функций. Тренированные на больших данных модели машинного обучения позволяют с высокой точностью предсказать реакцию клиентов: полюбят ли они продукт или полностью проигнорируют его. Предсказание результатов возможно в самом начале разработки продукта! Это позволяет изменить дизайн или маркетинговую стратегию в соответствии с потребностями рынка.
Рекомендательные системы
Машинное обучение на больших данных лучше всего использовать в рекомендательных механизмах: для воздействия на пользовательский опыт оно сочетает контекст с прогнозами поведения, давая компаниям возможность формировать эффективные предложения для клиентов
Чтобы создать хорошую рекомендацию по продукту, система должна иметь четкое представление о желаниях и потребностях как клиента, так и компании. Большая часть этой информации может быть собрана из активности в социальных сетях, веб-форм, истории местоположений и множества других источников. Сопоставляя данные с конкретными уникальными потребностями человека и активностью других клиентов, основанные на машинном обучении рекомендательные системы обеспечивают бизнесу автоматизированный маркетинговый процесс. Например, Netflix широко их использует, чтобы предложить правильный контент зрителям.
Регулирование рисков
Регулирование рисков – одна из самых востребованных областей применения машинного обучения и больших данных. К примеру, их использование для автоматизации банковского скоринга и цифровизации ключевых этапов создания стоимости кредита могут значительно снизить затраты финансовой организации. Наиболее полезными методами машинного обучения в этой области являются регрессии, деревья решений и нейронные сети.
Расшифровка паттернов
Машинное обучение эффективно в отраслях, где понимание потребительских моделей может привести к крупным прорывам. В таких сферах, например, как здравоохранение и фармацевтика, где приходится иметь дело с большим количеством данных. Методы машинного обучения выявляют заболевания на начальной стадии и позволяют больницам лучше управлять услугами, анализируя прошлые отчеты о состоянии здоровья, патологические отчеты и истории болезней пациентов. Это улучшает диагностику, а в долгосрочной перспективе стимулирует медицинские исследования.
Прогнозная аналитика
Алгоритмы машинного обучения используют большие данные для изучения будущих тенденций и их прогнозирования для бизнеса. Прогнозная аналитика широко используется в автомобильной промышленности: она позволяет производителям отслеживать поломки и обмениваться важной информацией о неисправностях автомобилей.
Мы рассмотрели возможности и сферы применения машинного обучения в больших данных. Если вы еще не определились со специализацией, начните с базового онлайн-курса «Библиотеки программиста» по математике в Data Science. Без царицы наук в этой области обойтись не получится, а с помощью опытных преподавателей из ведущих вузов страны получить знания намного проще, чем самостоятельно по книгам. Также ведется запись и на продвинутый курс. Удачи в освоении востребованной профессии!
Машинное обучение — это легко
Для кого эта статья?
Каждый, кому будет интересно затем покопаться в истории за поиском новых фактов, или каждый, кто хотя бы раз задавался вопросом «как же все таки это, машинное обучение, работает», найдёт здесь ответ на интересующий его вопрос. Вероятнее всего, опытный читатель не найдёт здесь для себя ничего интересного, так как программная часть оставляет желать лучшего несколько упрощена для освоения начинающими, однако осведомиться о происхождении машинного обучения и его развитии в целом не помешает никому.
В цифрах
С каждым годом растёт потребность в изучении больших данных как для компаний, так и для активных энтузиастов. В таких крупных компаниях, как Яндекс или Google, всё чаще используются такие инструменты для изучения данных, как язык программирования R, или библиотеки для Python (в этой статье я привожу примеры, написанные под Python 3). Согласно Закону Мура (а на картинке — и он сам), количество транзисторов на интегральной схеме удваивается каждые 24 месяца. Это значит, что с каждым годом производительность наших компьютеров растёт, а значит и ранее недоступные границы познания снова «смещаются вправо» — открывается простор для изучения больших данных, с чем и связано в первую очередь создание «науки о больших данных», изучение которого в основном стало возможным благодаря применению ранее описанных алгоритмов машинного обучения, проверить которые стало возможным лишь спустя полвека. Кто знает, может быть уже через несколько лет мы сможем в абсолютной точности описывать различные формы движения жидкости, например.
Анализ данных — это просто?
Да. А так же интересно. Наряду с особенной важностью для всего человечества изучать большие данные стоит относительная простота в самостоятельном их изучении и применении полученного «ответа» (от энтузиаста к энтузиастам). Для решения задачи классификации сегодня имеется огромное количество ресурсов; опуская большинство из них, можно воспользоваться средствами библиотеки Scikit-learn (SKlearn). Создаём свою первую обучаемую машину:
Вот мы и создали простейшую машину, способную предсказывать (или классифицировать) значения аргументов по их признакам.
— Если все так просто, почему до сих пор не каждый предсказывает, например, цены на валюту?
С этими словами можно было бы закончить статью, однако делать я этого, конечно же, не буду (буду конечно, но позже) существуют определенные нюансы выполнения корректности прогнозов для поставленных задач. Далеко не каждая задача решается вот так легко (о чем подробнее можно прочитать здесь)
Ближе к делу
— Получается, зарабатывать на этом деле я не сразу смогу?
Итак, сегодня нам потребуются:
Дальнейшее использование требует от читателя некоторых знаний о синтаксисе Python и его возможностях (в конце статьи будут представлены ссылки на полезные ресурсы, среди них и «основы Python 3»).
Как обычно, импортируем необходимые для работы библиотеки:
— Ладно, с Numpy всё понятно. Но зачем нам Pandas, да и еще read_csv?
Иногда бывает удобно «визуализировать» имеющиеся данные, тогда с ними становится проще работать. Тем более, большинство датасетов с популярного сервиса Kaggle собрано пользователями в формате CSV.
— Помнится, ты использовал слово «датасет». Так что же это такое?
Датасет — выборка данных, обычно в формате «множество из множеств признаков» → «некоторые значения» (которыми могут быть, например, цены на жильё, или порядковый номер множества некоторых классов), где X — множество признаков, а y — те самые некоторые значения. Определять, например, правильные индексы для множества классов — задача классификации, а искать целевые значения (такие как цена, или расстояния до объектов) — задача ранжирования. Подробнее о видах машинного обучения можно прочесть в статьях и публикациях, ссылки на которые, как и обещал, будут в конце статьи.
Знакомимся с данными
Предложенный датасет можно скачать здесь. Ссылка на исходные данные и описание признаков будет в конце статьи. По представленным параметрам нам предлагается определять, к какому сорту относится то или иное вино. Теперь мы можем разобраться, что же там происходит:
Работая в Jupyter notebook, получаем такой ответ:
Это значит, что теперь нам доступны данные для анализа. В первом столбце значения Grade показывают, к какому сорту относится вино, а остальные столбцы — признаки, по которым их можно различать. Попробуйте ввести вместо data.head() просто data — теперь для просмотра вам доступна не только «верхняя часть» датасета.
Простая реализация задачи на классификацию
Переходим к основной части статьи — решаем задачу классификации. Всё по порядку:
Создаем массивы, где X — признаки (с 1 по 13 колонки), y — классы (0ая колонка). Затем, чтобы собрать тестовую и обучающую выборку из исходных данных, воспользуемся удобной функцией кросс-валидации train_test_split, реализованной в scikit-learn. С готовыми выборками работаем дальше — импортируем RandomForestClassifier из ensemble в sklearn. Этот класс содержит в себе все необходимые для обучения и тестирования машины методы и функции. Присваиваем переменной clf (classifier) класс RandomForestClassifier, затем вызовом функции fit() обучаем машину из класса clf, где X_train — признаки категорий y_train. Теперь можно использовать встроенную в класс метрику score, чтобы определить точность предсказанных для X_test категорий по истинным значениям этих категорий y_test. При использовании данной метрики выводится значение точности от 0 до 1, где 1 100% Готово!
— Неплохая точность. Всегда ли так получается?
Для решения задач на классификацию важным фактором является выбор наилучших параметров для обучающей выборки категорий. Чем больше, тем лучше. Но не всегда (об этом также можно прочитать подробнее в интернете, однако, скорее всего, я напишу об этом ещё одну статью, рассчитанную на начинающих).
— Слишком легко. Больше мяса!
Для наглядного просмотра результата обучения на данном датасете можно привести такой пример: оставив только два параметра, чтобы задать их в двумерном пространстве, построим график обученной выборки (получится примерно такой график, он зависит от обучения):
Да, с уменьшением количества признаков, падает и точность распознавания. И график получился не особенно-то красивым, но это и не решающее в простом анализе: вполне наглядно видно, как машина выделила обучающую выборку (точки) и сравнила её с предсказанными (заливка) значениями.
Предлагаю читателю самостоятельно узнать почему и как он работает.
Последнее слово
Надеюсь, данная статья помогла хоть чуть-чуть освоиться Вам в разработке простого машинного обучения на Python. Этих знаний будет достаточно, чтобы продолжить интенсивный курс по дальнейшему изучению BigData+Machine Learning. Главное, переходить от простого к углубленному постепенно. А вот полезные ресурсы и статьи, как и обещал:
Материалы, вдохновившие автора на создание данной статьи
Более углубленное изучение использования машинного обучения с Python стало возможным, и более простым благодаря преподавателям с Яндекса — этот курс обладает всеми необходимыми средствами объяснения, как же работает вся система, рассказывается подробнее о видах машинного обучения итд.
Файл сегодняшнего датасета был взят отсюда и несколько модифицирован.
Где брать данные, или «хранилище датасетов» — здесь собрано огромное количество данных от самых разных источников. Очень полезно тренироваться на реальных данных.
Буду признателен за поддержку по улучшению данной статьи, а так же готов к любому виду конструктивной критики.