проект по машинному обучению

Идеи проектов машинного обучения для начинающих

Авторизуйтесь

Идеи проектов машинного обучения для начинающих

В 2021 году навыки машинного обучения остаются важными. Если вы новичок, необходимо работать над проектами, которые помогут прокачать навыки. Предлагаем несколько идей для портфолио. А ещё советуем посмотреть нашу подборку готовых датасетов.

Система музыкальных рекомендаций

Цель этого проекта машинного обучения — рекомендовать пользователям музыку, опираясь на поиск и старые треки, как делает, например Spotify. В какой-то мере, компьютер должен думать примерно, как человек, чтобы выдать релевантный результат. Для этого полезно полагаться на методы машинного обучения и нейронных сетей.

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

Кстати, потом по такому же принципу можно создать софт, который будет рекомендовать фильмы, сериалы, товары, мероприятия и так далее.

Система прогнозирования продаж

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

Система прогнозирования цен на жильё

Цель — спрогнозировать стоимость нового дома, на основе данных о ценах на жильё и фактах о доме: пощади, расположении, инфраструктуре и так далее. Чтобы начать, можете использовать датасет Boston House Prices. Он небольшой, но включает достаточно данных для первого проекта машинного обучения. В нём есть информация о ценах на дома Бостона, возрасте владельцев, уровне преступности в районе и так далее — всего 14 показателей.

Анализатор настроений

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

Социальные платформы, например Twitter, Facebook, YouTube и Reddit, генерируют огромное количество данных. Так, используя датасет Twitter, можно получить содержимое твитов, а также информацию о хэштегах, ретвитах, местоположении, пользователя — словом, обо всём, что можно использовать для обучения системы. С ним можно понять, о чём сейчас говорит мир и как относится к актуальным событиям и модным трендам. Работа с таким датасетом разобраться с интеллектуальным анализом данных в соцсетях и классификаторах.

Анализатор активности

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

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

Система распознавания рукописного ввода

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

В этом проекте будем использовать сверточные нейронные сети и датасет MNIST. В нём 60 тысяч обучающих изображений рукописных цифр от нуля до девяти и 10 тысяч изображений для тестирования. При этом он достаточно лёгкий, чтобы поместиться в памяти компьютера.

Система распознавания объектов

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

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

Источник

15 проектов для развития навыков работы с машинным обучением

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

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

Ссылка на набор данных: Fake news Dataset

Это, пожалуй, самый известный набор данных, когда дело доходит до распознавания шаблонов. Всего он включает в себя три вида ирисов (Iris Setosa, Iris Versicolour, Iris Virginica) по 50 примеров для каждого, с различными типами лепестков и чашелистиков. Один из видов линейно отделим от остальных двух, в то время как остальные два вида линейно неразделимы друг от друга. Для этого набора данных стоит использовать регрессионную или классификационную модель. Классификация — это процесс распределения предметов в соответствующие классы.

Ссылка на набор данных: Iris Dataset

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

Ссылка на набор данных: MNIST

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

15 апреля 1912 года Титаник потонул и унес жизни 1502 из 2224 пассажиров. Представленный ниже набор данных содержит информацию о пассажирах, включая имя, возраст, пол и т.д. 891 пассажир относятся к набору обучения и 418 к набору тестирования. Используя данный датасет и линейную регрессию, можно обучить модель, прогнозирующую, выжил бы человек на Титанике или нет.

Ссылка на набор данных: Titanic Dataset

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

Приведенный набор данных содержит информацию об индийских школах за 2013-2014 и 2015-2016 учебные года. Благодаря ему, начинающие ученые по данным могут сразу начать работать с данными, ведь он собирает в одном месте всю изначально разрозненную информацию от индийского правительства. Полезно это будет как просто новичкам, так и людям, которым интересно узнать, как образование в Индии развивается с течением времени. Начать свое исследование вы можете с ответов на следующие вопросы:

Этот набор данных содержит информацию об уровне загрязнения воздуха в Сеуле, столице Республики Корея. Он включает в себя средние значения шести химических элементов (SO2, NO2, CO, O3, PM10, PM2.5).

Этот набор данных разделен на четыре файла:

Источник

30 самых удивительных проектов по машинному обучению

проект по машинному обучению. anna. проект по машинному обучению фото. проект по машинному обучению-anna. картинка проект по машинному обучению. картинка anna.

Ex-редактор направления «Истории».

Платформа Mybridge проанализировала около 8800 прошлогодних проектов по машинному обучению с открытым исходным кодом и выбрала топ-30. В этом списке перечислены лучшие библиотеки для машинного обучения, датасеты и приложения, опубликованные в период с января по декабрь 2017 года. При оценке учитывались популярность, новизна и активность.

1. FastText

Библиотека для изучения вложений слов и текстовой классификации. [11786 звезд на Github] Создатель – Facebook Research.

2. Deep Photo Style Transfer

Программа для рендеринга фотографий с перенесением стилей с помощью нейросетей. [9747 звезд на Github] Создатель – Фудзюн Луань, профессор Корнеллского университета.

3. Face Recognition

Самый простой API для распознавания лиц для Python. [8672 звезды на Github] Создатель –Адам Гейтгей.

4. Magneta

Генерация музыки и живописи при помощи машинного интеллекта. [8113 звезд на Github].

5. Sonnet

Библиотека для работы с нейронными сетями, основанная на TensorFlow. [5731 звезда на Github] Создатель – Малкольм Рейнолдс из Deepmind.

6. deeplearn.js

Библиотека для машинного обучения, которая работает в браузере. [5462 звезды на Github] Создатель – Нихил Торат из Google Brain.

7. Fast Style Transfer in TensorFlow

Быстрая передача стиля с помощью TensorFlow. [4843 звезды на Github] Создатель – Логан Энгсторм из Массачусетского технологического института.

8. Pysc2

Среда обучения для StarCraft II. [3683 звезды на Github] Создатель – Тимо Эвальдс из DeepMind.

9. AirSim

Проект с открытым исходным кодом, созданный на Unreal Engine, который моделирует физику полета мультикоптера. [3861 звезда на Github] Создатель – Шитал Шах из Microsoft.

10. Facets

Визуализации для датасетов машинного обучения. [3371 звезда на Github] Создатель – Google Brain.

11. Style2Paints

ИИ-раскраска изображений. [3310 звезд на Github].

12. Tensor2Tensor

Унифицированная модель глубинного обучения, которая способна решать задачи из разных областей – Google Research. [3087 звезд на Github] Создатель – Райан Сепасси из Google Brain.

13. Image-to-image translation in PyTorch

Image-to-image трансформация рисунков. Например, трансформация лошадей в зебр, картины Моне — в фотографию, летнего пейзажа — в зимний и т.д. [2847 звезд на Github] Создатель – Дзюн-Ян Зу, профессор Калифорнийского университета в Беркли.

14. Faiss

Библиотека для эффективного поиска подобия и кластеризации векторов. [2629 звезд на Github] Создатель – Facebook Research.

15. Fashion-mnist

База данных продуктов моды для машинного обучения. [2780 звезд на Github] Создатель – Хань Сяо, исследователь Zalando Tech.

16. ParlAI

Основа для обучения и оценки моделей ИИ на наборе данных из множества диалогов. [2578 звезд на Github] Создатель – Александр Миллер из Facebook Research.

17. Fairseq

Сверточная нейронная сеть для машинного перевода. [2571 звезда на Github] Создатель – Facebook AI.

18. Pyro

Глубокое универсальное вероятностное программирование с Python и PyTorch. [2387 звезд на Github] Создатель – Uber AI Labs.

19. iGAN

Интерактивная генерация изображений. [2369 звезд на Github].

20. Deep-image-prior

Восстановление изображений с помощью нейронных сетей, но без обучения. [2188 звезд на Github] Создатель – Дмитрий Ульянов из Сколковского института науки и технологий.

21. Face_classification

Обнаружение лиц в реальном времени и эмоциональная/гендерная классификация с использованием наборов данных fer2013/IMDB. [1967 звезд на Github].

22. Speech-to-Text-WaveNet

End-to-end распознавание речи на английском языке с использованием WaveNet и tensorflow. [1961 звезда на Github] Создатель – Намджу Ким из Kakao Brain.

23. StarGAN

24. ML-agents

Плагин с открытым кодом, который является средой для обучения агентов в Unity. [1658 звезд на Github] Создатель – Артур Юлиани.

25. DeepVideoAnalytics

Платформа для поиска и аналитики визуальных данных. [1494 звезды на Github] Создатель – Акшай Бхат, профессор Корнеллского университета.

26. OpenNMT

Открытая система машинного перевода, использующая методы машинного обучения. Для построения нейронной сети проект использует возможности библиотеки глубинного машинного обучения Torch. [1490 звезд на Github].

27. Pix2pixHD

Фотореалистичный синтез и преобразование изображений с высоким разрешением (2048×1024). [1283 звезды на Github] Создатель – Мин-Ю Лиу из Nvidia.

28. Horovod

Фреймворк распределенного обучения для TensorFlow. [1188 звезд на Github] Создатель – Uber Engineering.

29. AI-Blocks

Мощный и интуитивно понятный WYSIWYG-интерфейс, который позволяет любому человеку создавать модели для машинного обучения. [899 звезд на Github].

30. Deep neural networks for voice conversion in Tensorflow

Глубокие нейронные сети для передачи стиля голоса. [845 звезд на Github]. Создатель – Даби Ань из Kakao Brain.

проект по машинному обучению. 0*Wbtz8ySNyZlBtu N. проект по машинному обучению фото. проект по машинному обучению-0*Wbtz8ySNyZlBtu N. картинка проект по машинному обучению. картинка 0*Wbtz8ySNyZlBtu N.

Расскажи, как цифровая трансформация изменила твой бизнес

Источник

Примеры проектов по машинному обучению — 10 лучших

проект по машинному обучению. clark tibbs 367075 unsplash e1553872916262. проект по машинному обучению фото. проект по машинному обучению-clark tibbs 367075 unsplash e1553872916262. картинка проект по машинному обучению. картинка clark tibbs 367075 unsplash e1553872916262.

Обучение искусственного интеллекта — задача непростая, но затраченные усилия сполна окупятся невероятными результатами, которых можно достичь благодаря ИИ. Хотите узнать больше о самых классных проектах по машинному обучению? Читайте нашу подборку.

Magenta

проект по машинному обучению. Cj4IH7GUYAEXjYf. проект по машинному обучению фото. проект по машинному обучению-Cj4IH7GUYAEXjYf. картинка проект по машинному обучению. картинка Cj4IH7GUYAEXjYf.

Magenta — детище компании Google, принцип работы которого основан на технологии машинного обучения. ИИ способен создавать музыкальные композиции, а также умеет работать с изобразительным искусством. Кроме того, инструмент может самообучаться и развиваться. Главная цель Magenta — разработка алгоритмов, которые смогут сочинять музыку и создавать другие произведения искусства, основываясь на уже существующих.

TensorFlow

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

Подробнее о новой версии TF мы уже как-то писали.

Deep Photo Style Transfer

проект по машинному обучению. Snimok ekrana 2019 04 01 v 1.35.16 PP. проект по машинному обучению фото. проект по машинному обучению-Snimok ekrana 2019 04 01 v 1.35.16 PP. картинка проект по машинному обучению. картинка Snimok ekrana 2019 04 01 v 1.35.16 PP.

Deep Photo Style Transfer будет интересен не только программистам, но и тем, кто занимается фотографией и обработкой изображений. Эта программа способна скопировать особенности стиля одной фотографии и перенести их на другую, при этом сохранив фотореалистичность.

Fast Style Transfer in TensorFlow

проект по машинному обучению. Snimok ekrana 2019 03 29 v 7.01.03 PP. проект по машинному обучению фото. проект по машинному обучению-Snimok ekrana 2019 03 29 v 7.01.03 PP. картинка проект по машинному обучению. картинка Snimok ekrana 2019 03 29 v 7.01.03 PP.

Fast Style Transfer in TensorFlow — технология на базе TensorFlow, которая, подобно предыдущей, может переносить стиль одного изображения на другое. Основное отличие состоит в том, что с помощью Fast Style Transfer вы можете преобразовать свои фотографии в картины, выполненные в технике любого художника, или накладывать на них различные визуальные эффекты.

Style2Paints

проект по машинному обучению. 1542684338815549. проект по машинному обучению фото. проект по машинному обучению-1542684338815549. картинка проект по машинному обучению. картинка 1542684338815549.

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

Unity Machine Learning Agents

проект по машинному обучению. unity wide e1553875379675. проект по машинному обучению фото. проект по машинному обучению-unity wide e1553875379675. картинка проект по машинному обучению. картинка unity wide e1553875379675.

Unity Machine Learning Agents — интересный и полезный продукт для разработчиков и научных сотрудников. Разработанный софт способен симулировать различные ситуации и игры для обучения ИИ — это делается с помощью API Python при использовании Unity Editor. В Unity Machine Learning Agents вы также можете имитировать различные среды для обучения искусственного интеллекта.

Deep-image-prior

проект по машинному обучению. teaser compiled. проект по машинному обучению фото. проект по машинному обучению-teaser compiled. картинка проект по машинному обучению. картинка teaser compiled.

Вам нужно реставрировать изображение или повысить его разрешение? Используйте Deep-image-prior. Эта программа использует нейронные сети, чтобы убрать с изображения шумы и улучшить его качество. Одной из самых любопытных особенностей проекта является возможность восстановить утраченные части изображения, используя нейросеть.

GANimation

проект по машинному обучению. 687474703a2f2f7777772e616c6265727470756d61726f6c612e636f6d2f696d616765732f323031382f47414e696d6174696f6e2f7465617365722e706e67. проект по машинному обучению фото. проект по машинному обучению-687474703a2f2f7777772e616c6265727470756d61726f6c612e636f6d2f696d616765732f323031382f47414e696d6174696f6e2f7465617365722e706e67. картинка проект по машинному обучению. картинка 687474703a2f2f7777772e616c6265727470756d61726f6c612e636f6d2f696d616765732f323031382f47414e696d6174696f6e2f7465617365722e706e67.

GANimation — ИИ, который анимирует лица. Чтобы сотворить чудо, технологии нужно лишь одно изображение, при этом анимация не покажется жуткой, а будет максимально приближена к мимике реального человека. Для определении эмоций и при составлении сценария лицевых движений используются двигательные единицы.

Deep voice conversion

проект по машинному обучению. architecture. проект по машинному обучению фото. проект по машинному обучению-architecture. картинка проект по машинному обучению. картинка architecture.

Deep voice conversion — это инструмент для работы со звуком. С его помощью можно имитировать голос любого человека, сохраняя при этом тембр, речевые особенности и многое другое. Для синтеза, естественно, понадобятся реальные записи или живой пример.

Face Recognition

проект по машинному обучению. facial recognition wireframe e1533572492160. проект по машинному обучению фото. проект по машинному обучению-facial recognition wireframe e1533572492160. картинка проект по машинному обучению. картинка facial recognition wireframe e1533572492160.

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

В SkillFactory есть несколько курсов для желающих изучать машинное обучение, например, «Обучение нейронным сетям» и «Комплексный курс по глубокому обучению на Python для начинающих».

Обучение нейронным сетям

Научитесь применять алгоритмы для решения бизнес-задач. На курсе вы обучите 7 нейронных сетей. Скидка по промокоду BLOG 5%.

Источник

Делаем проект по машинному обучению на Python. Часть 1

проект по машинному обучению. image loader. проект по машинному обучению фото. проект по машинному обучению-image loader. картинка проект по машинному обучению. картинка image loader.

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

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

Последовательно пройдём через этапы:

Описание задачи

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

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

Данные уже включают в себя присвоенные баллы Energy Star Score, поэтому наша задача представляет собой машинное обучение с управляемой регрессией:

Очистка данных

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

Сначала можно загрузить данные в виде кадра данных (dataframe) Pandas и изучить их:

проект по машинному обучению. image loader. проект по машинному обучению фото. проект по машинному обучению-image loader. картинка проект по машинному обучению. картинка image loader.
Так выглядят реальные данные.

Когда мы получили эти данные, то не стали спрашивать о значениях, а посмотрели на название файла:

проект по машинному обучению. image loader. проект по машинному обучению фото. проект по машинному обучению-image loader. картинка проект по машинному обучению. картинка image loader.

и решили поискать по запросу «Local Law 84». Мы нашли эту страницу, на которой говорилось, что речь идёт о действующем в Нью-Йорке законе, согласно которому владельцы всех зданий определённого размера должны отчитываться о потреблении энергии. Дальнейший поиск помог найти все значения колонок. Так что не пренебрегайте именами файлов, они могут быть хорошей отправной точкой. К тому же это напоминание, чтобы вы не торопились и не упустили что-нибудь важное!

Мы не будем изучать все колонки, но точно разберёмся с Energy Star Score, которая описывается так:

Ранжирование по перцентили от 1 до 100, которая рассчитывается на основе самостоятельно заполняемых владельцами зданий отчётов об энергопотреблении за год. Energy Star Score — это относительный показатель, используемый для сравнения энергоэффективности зданий.

проект по машинному обучению. image loader. проект по машинному обучению фото. проект по машинному обучению-image loader. картинка проект по машинному обучению. картинка image loader.

Наверняка некоторые колонки, которые явно содержат числа (например, ft²), сохранены как объекты. Мы не можем применять числовой анализ к строковым значениям, так что конвертируем их в числовые типы данных (особенно float )!

Этот код сначала заменяет все «Not Available» на not a number ( np.nan ), которые можно интерпретировать как числа, а затем конвертирует содержимое определённых колонок в тип float :

Когда значения в соответствующих колонках у нас станут числами, можно начинать исследовать данные.

Отсутствующие и аномальные данные

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

проект по машинному обучению. image loader. проект по машинному обучению фото. проект по машинному обучению-image loader. картинка проект по машинному обучению. картинка image loader.
Для создания таблицы использована функция из ветки на StackOverflow.

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

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

Разведочный анализ данных

Скучный, но необходимый этап очистки данных закончен, можно перейти к исследованию! Разведочный анализ данных (РАД) — неограниченный по времени процесс, в ходе которого мы вычисляем статистику и ищем в данных тенденции, аномалии, шаблоны или взаимосвязи.

Коротко говоря, РАД — это попытка выяснить, что нам могут сказать данные. Обычно анализ начинается с поверхностного обзора, затем мы находим интересные фрагменты и анализируем их подробнее. Выводы могут быть интересными сами по себе, или они могут способствовать выбору модели, помогая решить, какие признаки мы будем использовать.

Однопеременные графики

проект по машинному обучению. image loader. проект по машинному обучению фото. проект по машинному обучению-image loader. картинка проект по машинному обучению. картинка image loader.

Выглядит подозрительно! Балл Energy Star Score является процентилем, значит следует ожидать единообразного распределения, когда каждый балл присваивается одному и тому же количеству зданий. Однако высший и низший результаты получило непропорционально большое количество зданий (для Energy Star Score чем больше, тем лучше).

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

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

Поиск взаимосвязей

Главная часть РАД — поиск взаимосвязей между признаками и нашей целью. Коррелирующие с ней переменные полезны для использования в модели, потому что их можно применять для прогнозирования. Один из способов изучения влияния категориальной переменной (которая принимает только ограниченный набор значений) на цель — это построить график плотности с помощью библиотеки Seaborn.

График плотности можно считать сглаженной гистограммой, потому что он показывает распределение одиночной переменной. Можно раскрасить отдельные классы на графике, чтобы посмотреть, как категориальная переменная меняет распределение. Этот код строит график плотности Energy Star Score, раскрашенный в зависимости от типа здания (для списка зданий с более чем 100 измерениями):

проект по машинному обучению. image loader. проект по машинному обучению фото. проект по машинному обучению-image loader. картинка проект по машинному обучению. картинка image loader.

Как видите, тип здания сильно влияет на количество баллов. Офисные здания обычно имеют более высокий балл, а отели более низкий. Значит нужно включить тип здания в модель, потому что этот признак влияет на нашу цель. В качестве категориальной переменной мы должны выполнить one-hot кодирование типа здания.

Аналогичный график можно использовать для оценки Energy Star Score по районам города:

проект по машинному обучению. image loader. проект по машинному обучению фото. проект по машинному обучению-image loader. картинка проект по машинному обучению. картинка image loader.

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

проект по машинному обучению. image loader. проект по машинному обучению фото. проект по машинному обучению-image loader. картинка проект по машинному обучению. картинка image loader.

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

Самые отрицательные корреляции с целью:

проект по машинному обучению. image loader. проект по машинному обучению фото. проект по машинному обучению-image loader. картинка проект по машинному обучению. картинка image loader.

и самые положительные:

проект по машинному обучению. image loader. проект по машинному обучению фото. проект по машинному обучению-image loader. картинка проект по машинному обучению. картинка image loader.

Есть несколько сильных отрицательных корреляций между признаками и целью, причём наибольшие из них относятся к разным категориям EUI (способы расчёта этих показателей слегка различаются). EUI (Energy Use Intensity, интенсивность использования энергии) — это количество энергии, потреблённой зданием, делённое на квадратный фут площади. Эта удельная величина используется для оценки энергоэффективности, и чем она меньше, тем лучше. Логика подсказывает, что эти корреляции оправданны: если EUI увеличивается, то Energy Star Score должен снижаться.

Двухпеременные графики

Воспользуемся диаграммами рассеивания для визуализации взаимосвязей между двумя непрерывными переменными. К цветам точек можно добавить дополнительную информацию, например, категориальную переменную. Ниже показана взаимосвязь Energy Star Score и EUI, цветом обозначены разные типы зданий:

проект по машинному обучению. image loader. проект по машинному обучению фото. проект по машинному обучению-image loader. картинка проект по машинному обучению. картинка image loader.

Наш последний исследовательский график называется Pairs Plot (парный график). Это прекрасный инструмент, позволяющий увидеть взаимосвязи между различными парами переменных и распределение одиночных переменных. Мы воспользуемся библиотекой Seaborn и функцией PairGrid для создания парного графика с диаграммой рассеивания в верхнем треугольнике, с гистограммой по диагонали, двухмерной диаграммой плотности ядра и коэффициентов корреляции в нижнем треугольнике.

проект по машинному обучению. image loader. проект по машинному обучению фото. проект по машинному обучению-image loader. картинка проект по машинному обучению. картинка image loader.

Конструирование и выбор признаков

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

Мы сделаем следующее:

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

Этот код выбирает числовые признаки, вычисляет их логарифмы, выбирает два категориальных признака, применяет к ним one-hot кодирование и объединяет оба множества в одно. Судя по описанию, предстоит куча работы, но в Pandas всё получается довольно просто!

Теперь у нас есть больше 11 000 наблюдений (зданий) со 110 колонками (признаками). Не все признаки будут полезны для прогнозирования Energy Star Score, поэтому займёмся выбором признаков и удалим часть переменных.

Выбор признаков

Многие из имеющихся 110 признаков избыточны, потому что сильно коррелируют друг с другом. К примеру, вот график EUI и Weather Normalized Site EUI, у которых коэффициент корреляции равен 0,997.

проект по машинному обучению. image loader. проект по машинному обучению фото. проект по машинному обучению-image loader. картинка проект по машинному обучению. картинка image loader.

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

Существует ряд методов вычисления коллинеарности признаков, и один из самых популярных — фактор увеличения дисперсии (variance inflation factor). Мы для поиска и удаления коллинеарных признаков воспользуемся коэффициентом В-корреляции (thebcorrelation coefficient). Отбросим одну пару признаков, если коэффициент корреляции между ними больше 0,6. Код приведён в блокноте (и в ответе на Stack Overflow).

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

Выбираем базовый уровень

Мы очистили данные, провели разведочный анализ и сконструировали признаки. И прежде чем перейти к созданию модели, нужно выбрать исходный базовый уровень (naive baseline) — некое предположение, с которым мы будем сравнивать результаты работы моделей. Если они окажутся ниже базового уровня, мы будем считать, что машинное обучение неприменимо для решения этой задачи, или что нужно попробовать иной подход.

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

В качестве метрики возьмём среднюю абсолютную ошибку (mae) в прогнозах. Для регрессий есть много других метрик, но мне нравится совет выбирать какую-то одну метрику и с её помощью оценивать модели. А среднюю абсолютную ошибку легко вычислить и интерпретировать.

Прежде чем вычислять базовый уровень, нужно разбить данные на обучающий и тестовый наборы:

Теперь вычислим показатель для исходного базового уровня:

The baseline guess is a score of 66.00
Baseline Performance on the test set: MAE = 24.5164

Средняя абсолютная ошибка на тестовом наборе составила около 25 пунктов. Поскольку мы оцениваем в диапазоне от 1 до 100, то ошибка составляет 25 % — довольно низкий барьер для модели!

Заключение

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

В следующей статье мы научимся с помощью Scikit-Learn оценивать модели машинного обучения, выбирать лучшую модель и выполнять её гиперпараметрическую настройку.

Источник

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

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