Как научиться визуализации с нуля 3д


как работать с визуализатором интерьера, как делегировать 3D визуализацию проекта

1. Вопросы, волнующие дизайнеров.

2. Почему я решил написать о том, как это делать.

3. Задание на моделинг.

4. Задание на визуализацию.

5. Финал.

6. О чем договариваться до начала работы.

7. Завершение статьи. 

 

 

Как перестать сидеть за рендерами по 20 часов в сутки?

Как не делать визуализацию самому и освободить время?

Что делать в первую очередь, что потом? Как правильно делегировать?

Как не сорвать сроки проекта?

Как делать проекты чужими руками?

Никто не сделает лучше меня! Как проконтролировать?

Как найти ответственного специалиста, чтобы не сорвать сроки?

 

Наверное, каждый дизайнер мечтает о том, как он делает наброски на листочке, а кто-то эти идеи воплощает в жизнь под вашим контролем.

 

Все эти вопросы задавал себе и другим когда-то и я, сидя за компьютером по 15-20 часов в сутки, делая рендеры. Был период, когда это мне безумно нравилось. Но, когда начались проекты более серьезные, визуализация отошла на второй план по степени «интересности». Передо мной стал вопрос «Как не делать все самому, а передавать визуализацию в надежные руки?».

Я нашел способ безопасно делегировать 3D визуализацию, не срывая сроки проекта и не тратя время на огромное количество переделок. Конечно, работая с фрилансерами, сроки бывало, что срывались. Но со временем выработалась схема работы (которую я подсматривал у других «могучих дизайнеров»).

 

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

 

Пошаговая схема делегирования проекта 3D визуализатору

 

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

 

Задание на моделинг

Моделинг — это геометрия. Если вы работали в 3D Max, то вы знаете, о чем идет речь. Материалы и свет на этом этапе не важны. Важно получить объем. Нам нужна картинка. Она может быть черно-белая с эффектом v-ray toon, например, как на фото ниже: 

Если вы не работали в 3D Max и просто хотите начать делегировать. Вам не обязательно знать все эти термины программы. Вы просто даете задание и показываете, что на первом этапе хотите получить.

 

Поговорим о том, как создавать задание на моделинг для визуализатора: 

  • Основная суть задания — сделать так, чтобы визуализатор вас четко понял и сделал так, как вы задумали. Что для этого можно использовать. У вас уже должен быть обмерный план со всеми размерами помещения и план расстановки мебели. Это та информация, по которой визуализатор сможет сделать саму «коробку» помещения. 
  • Для того, чтобы показать наполнение комнаты (сам дизайн) необходимы либо наброски от руки, либо схематичное обозначения того, что и где будет стоять и какой формы + прикрепленные изображения. 
  • Для того, чтобы наброски от руки и схемы были понятны, лучше всего прикладывать изображения уже реализованных проектов, в качестве примера того, что вы имеете ввиду.

 

Пример ТЗ на моделинг ниже:

После того, как будут готовы черно-белые эскизы их можно показать клиенту для согласования «геометрии пространства». Такие картинки очень даже сойдут за качественные эскизы. Если эскизы уже утверждены, значит показывать не обязательно. Если визуализатор вас понял правильно, приступаем к следующему этапу. Если нет, то говорим, где поправить. Поправки в V-ray toon делаются не долго. Поэтому на следующий, или даже в этот же день, вы получите исправленные эскизы.

 

Задание на визуализацию

Второй этап — задание на визуализацию. На этом этапе у вас уже должны быть подобраны материалы или готова концепция, где какие материалы будут использоваться. Задание можно выдавать в форме коллажа, можно списком. Список обычно выглядит у меня, как: диван — материал такой-то (ссылка), и т.д..

 

Пример коллажа: 

 

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

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

 

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

Итак, после того, как мы выдали задание на визуализацию, мы ждем предварительных изображений не высокого разрешения (можно 1500х1000 или 1200х800) с минимальными настройками, но так, чтобы мы смогли уже увидеть предварительный результат.

 

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

Финальные изображения

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

Минимальный размер изображения, для печати на формате А4 — 3000 х 2000 пикселей. 

 

Вот я и рассказал 3 основных этапах, по которым можно успешно сделать визуализацию вашего проекта. Успешно, в моем понимании, — это вовремя, высокого качества и, когда результат полностью соответствует и, возможно даже, превосходит ожидания.

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

 

  • важно договориться о последовательности этапов;
  • о сроках с визуализатором лучше договариваться по каждому этапу, а именно, что будет готово сегодня, что завтра, что послезавтра;
  • размер изображения должен быть в соотношении 1,5, то есть 1500 х 1000, 3000 х 2000 и т.д. — этот формат по пропорциям схож с форматом листа А4;
  • оплату визуализатору можно сделать либо поэтапную, либо 50% предоплаты и 50% в конце. Не оплачивайте 100%, так вы лишаете мотивации человека работать в срок, т.к. он получил все свои деньги. Но если это профессионал, ценящий свою репутацию и любящий свое дело, — его основная мотивация будет сделать качественный результат.

 

 

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

 



Герасимов Павел

дизайнер и соруководитель мастерской GEOMETRIUM.COM

 

ТАКЖЕ ВАМ МОЖЕТ БЫТЬ ИНТЕРЕСНО:

Как стать дизайнером интерьера

Как найти хорошего визуализатора

Стандарты качества 3D визуализации. Чек-лист для дизайнера и визуализатора

Как правильно делегировать рабочую документацию: 8 основных моментов

УРОКИ ДИЗАЙНА:

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

Важно: уроки дизайна нужно смотреть в хронологическом порядке.



УРОКИ SKETCHUP:

 

 

 

hijiangtao / glmaps: примеры визуализации данных и обучающие программы с нуля.数据 可视 化 示例 代码 集 与 新手 学习 教程。

перейти к содержанию Зарегистрироваться
  • Почему именно GitHub? Особенности →
    • Обзор кода
    • Управление проектами
    • Интеграции
    • Действия
    • Пакеты
    • Безопасность
    • Управление командой
    • Хостинг
    • мобильный
    • Истории клиентов →
    • Безопасность →
  • Команда
  • Предприятие
  • Проводить исследования
.

Как разработать модель машинного обучения с нуля | Виктор Роман

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

Конкретно в статье будет рассмотрено, как:

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

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

  • Какова основная цель? Что мы пытаемся предсказать?
  • Каковы целевые функции?
  • Какие входные данные? Это доступно?
  • С какими проблемами мы сталкиваемся? Бинарная классификация? Кластеризация?
  • Какое улучшение ожидается?
  • Каков текущий статус целевой функции?
  • Как будет измеряться целевой объект?

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

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

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

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

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

Обычно наши данные будут иметь следующую форму:

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

Питер Друкер, преподаватель Гарвардского университета и автор книги «Эффективный руководитель и управление собой», сказал знаменитую поговорку:

«Если вы не можете измерить это, вы не сможете улучшить это».

Если вы хотите контролировать что-то, это должно быть наблюдаемым, и для достижения успеха важно определить, что считается успехом: Может быть, точность? точность? Уровень удержания клиентов?

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

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

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

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

4.1 Поддержание набора проверки удержания

Этот метод состоит в выделении некоторой части данных в качестве набора для тестирования.

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

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

4.2 Проверка K-Fold

K-Fold состоит в разбиении данных на K разделов равного размера. Для каждого раздела i модель обучается с оставшимися разделами K-1 и оценивается на разделе i.

Итоговая оценка - это среднее значение из полученных К. Этот метод особенно полезен, когда производительность модели значительно отличается от разделения поезд-тест.

4.3 Итерированная проверка K-Fold с перетасовкой

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

Он заключается в применении проверки K-Fold несколько раз и перетасовке данных каждый раз перед их разделением на разделы K.Итоговый балл - это среднее значение баллов, полученных в конце каждого цикла проверки K-Fold.

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

Примечание. При выборе протокола оценки важно учитывать следующие моменты:

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

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

5.1 Работа с отсутствующими данными

В реальных проблемах довольно часто пропустить некоторые значения наших выборок данных. Это может быть связано с ошибками при сборе данных, пробелами в опросах, измерениями, которые не применимы… и т. Д.

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

  1. Удаление образцов или объектов с пропущенными значениями. (мы рискуем удалить релевантную информацию или слишком много выборок)
  2. Ввод недостающих значений с помощью некоторых встроенных оценщиков, таких как класс Imputer из scikit learn. Мы сопоставим наши данные, а затем преобразуем их, чтобы оценить их. Один из распространенных подходов - установить пропущенные значения как среднее значение для остальных образцов.

5.2 Работа с категориальными данными

При работе с категориальными данными мы работаем с порядковыми и номинальными признаками. Порядковые признаки - это категориальные признаки, которые можно сортировать (размер ткани : L ). А по номиналу не подразумевается какой-либо заказ ( цвет ткани: желтый, зеленый, красный ).

Методы работы с порядковыми и номинальными признаками:

  • Отображение порядковых признаков : чтобы убедиться, что алгоритм правильно интерпретирует порядковые признаки, нам необходимо преобразовать категориальные строковые значения в целые числа.Часто мы делаем это сопоставление вручную. Пример: L: 2, M: 1, S: 0.
  • Кодирование меток номинального класса : Наиболее распространенным подходом является выполнение однократного кодирования, которое заключается в создании нового фиктивного объекта для каждого уникального значения в столбце номинального признака. Пример: в столбце цвета, если у нас есть три класса: желтый, красный, зеленый и выполняется одноразовое кодирование, мы получим три новых столбца, по одному для каждого уникального класса. Тогда, если у нас есть желтая рубашка, она будет выбрана как: желтый = 1, зеленый = 0, красный = 0.Это сделано для обеспечения хорошей производительности алгоритма, поскольку они намного более эффективны при работе с разреженной матрицей (матрицы с низкой плотностью, с большим количеством значений 0).

5.3 Масштабирование функций

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

  • Нормализация: это изменение масштаба функций в диапазоне [0,1], что является частным случаем масштабирования min-max.Чтобы нормализовать наши данные, нам просто нужно применить метод масштабирования min-max к каждому столбцу функций.
  • Стандартизация: она заключается в центрировании столбцов признаков по среднему значению 0 со стандартным отклонением 1, чтобы столбцы признаков имели те же параметры, что и стандартное нормальное распределение (нулевое среднее и единичное отклонение). Это значительно упрощает алгоритмам обучения определение весов параметров. Кроме того, он сохраняет полезную информацию о выбросах и делает алгоритмы менее чувствительными к ним.

5.4 Выбор значимых функций

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

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

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

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

5.5 Разделение данных на подмножества

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

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

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

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

а) Процесс обучения

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

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

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

Формула прямой: y = B0 + B1x + u . Где x - входные данные, B1 - наклон, B0 - точка пересечения по оси Y, u - остаток и y - значение линии в позиции x .

Доступные для обучения значения: B0 и B1 , которые влияют на положение строки, поскольку единственными другими переменными являются x (вход и y, выход (остаток не учитывается). ).Эти значения ( B0 и B1 ) являются «весами» функции прогнозирования.

Эти веса и другие, называемые смещениями, представляют собой параметры, которые будут организованы вместе в виде матриц ( W, для весов и b для смещений).

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

Процесс повторяется, по одной итерации (или шагу) за раз. На каждой итерации исходная случайная линия приближается к идеальной и более точной.

b) Переоснащение и недостаточное оснащение

Одной из наиболее важных проблем при рассмотрении обучения моделей является противоречие между оптимизацией и обобщением.

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

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

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

Есть два способа избежать этого переобучения: получение дополнительных данных и регуляризация.

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

Регуляризация выполняется в основном следующими методами:

  1. Уменьшение размера модели: уменьшение количества обучаемых параметров в модели, а вместе с ними и ее способности к обучению. Цель состоит в том, чтобы найти золотую середину между слишком большой и недостаточной способностью к обучению. К сожалению, нет никаких волшебных формул для определения этого баланса, его нужно проверять и оценивать, задав различное количество параметров и наблюдая за его работой.
  2. Добавление регуляризации веса: В целом, чем проще модель, тем лучше. Пока она может хорошо учиться, более простая модель вряд ли переобучится. Обычный способ добиться этого - ограничить сложность сети, заставив ее веса принимать только небольшие значения, упорядочивая распределение значений весов. Это делается путем добавления к функции потерь сети стоимости, связанной с большими весами. Стоимость возникает двумя способами:
  • Регуляризация L1: Стоимость пропорциональна абсолютному значению весовых коэффициентов (норма весов L1).
  • Регуляризация L2: Стоимость пропорциональна квадрату значения весовых коэффициентов (норма весов l2)

Чтобы решить, какие из них применить к нашей модели, рекомендуется иметь в виду следующую информацию: примите во внимание природу нашей проблемы:

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

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

Как показано на «https://blog.dominodatalab.com/benchmarking-predictive-models/»

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

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

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

7.1 Поиск хорошей модели

Одним из наиболее распространенных методов поиска хорошей модели является перекрестная проверка.При перекрестной проверке мы установим:

  • Количество складок, по которым мы разделим наши данные.
  • Метод подсчета баллов (зависит от природы проблемы - регрессия, классификация…).
  • Некоторые подходящие алгоритмы, которые мы хотим проверить.

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

  # Параметры тестирования и метрики оценки  
num_folds = 10
scoring = "neg_mean_squared_error" # Алгоритмы выборочной проверки
models = []
models.append (('LR', LinearRegression ()))
models.append (('LASSO', Lasso ()))
models.append (('EN', ElasticNet ()))
models.append (('KNN ', KNeighborsRegressor ()))
models.append ((' CART ', DecisionTreeRegressor ()))
models.append ((' SVR ', SVR ()))

results = []
names = []
для имени , модель в моделях:
kfold = KFold (n_splits = num_folds, random_state = seed)
cv_results = cross_val_score (model, X_train, y_train, cv = kfold, scoring = scoring)
results.append (cv_results)
name.append (name)
msg = "% s:% f (% f)"% (name, cv_results.mean (), cv_results.std ())
print (msg)

   # Сравнить алгоритмы   
fig = pyplot.figure ()
fig.suptitle ('Сравнение алгоритмов')
ax = fig.add_subplot (111)
pyplot.boxplot (результаты)
ax.set_xticklabels (имена)
pyplot.show ()

7.2 Настройка Гиперпараметры модели

Алгоритм машинного обучения имеет два типа параметров. Первый тип - это параметры, которые изучаются на этапе обучения, а второй тип - это гиперпараметры, которые мы передаем модели машинного обучения.

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

Процесс будет следующим:

  • Установите сетку параметров, которую мы будем оценивать. Мы сделаем это, создав словарь всех параметров и соответствующих им наборов значений, которые вы хотите протестировать на лучшую производительность.
  • Задайте количество складок, случайное состояние и метод оценки.
  • Постройте объект K-Fold с выбранным количеством складок.
  • Создайте объект поиска по сетке с выбранной моделью и подогнайте его.
  # Построить скейлер  
scaler = StandardScaler (). Fit (X_train)
rescaled X = scaler.transform (X_train) # Построить сетку параметров
c_values ​​= [0.1, 0.3, 0.5, 0.7, 0.9, 1.0 , 1.3, 1.5, 1.7, 2.0]
kernel_values ​​= ['linear', 'poly', 'rbf', 'sigmoid']
param_grid = dict (C = c_values, kernel = kernel_values) # Построить модель
model = SVC ()
kfold = KFold (n_splits = num_folds, random_state = seed)
grid = GridSearchCV (оценка = модель, param_grid = param_grid, scoring = scoring, cv = kfold)
grid_result = grid.fit (rescaledX, y_train) # Показать результаты
print ("Лучшее:% f с использованием% s"% (grid_result.best_score_, grid_result.best_params_))
means = grid_result.cv_results _ ['mean_test_score']
stds = grid .cv_results _ ['std_test_score']
params = grid_result.cv_results _ ['params']
для среднего, stdev, param в zip (означает, stds, params):
print ("% f (% f) with:% r" % (mean, stdev, param))

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

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

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

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

Спасибо за чтение и следите за обновлениями!

.

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


Поиск лучших границ

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

Очевидно, это требует другой точки зрения.


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

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


Ваша первая вилка

Дерево решений использует операторы «если-то» для определения закономерностей в данных.

Например, , если дом выше некоторого числа, тогда дом, вероятно, находится в Сан-Франциско.


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

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


Компромиссы

Выбор точки разделения имеет компромиссы. Наш первоначальный раскол (~ 73 м) неправильно классифицирует некоторые дома в Сан-Франциско как нью-йоркские.

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


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


Лучший сплит

В best split результаты каждой ветви должны быть как можно более однородными (или чистыми). Вы можете выбрать один из нескольких математических методов, чтобы рассчитать наилучший сплит.


Как мы видим здесь, даже лучшее разделение по одному признаку не полностью отделяет дома в Сан-Франциско от домов в Нью-Йорке.



Рекурсия

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

Гистограммы слева показывают распределение каждого подмножества, повторенное для каждой переменной.


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

Для домов на более низкой высоте цена за квадратный фут составляет 1061 доллар за квадратный фут, это лучшая переменная для следующего утверждения «если-то».Для домов на возвышенности это цена 514 500 долларов

.
.

советов и приемов | Scratch 3: прохождение и демонстрация

  • маг.
  • Учиться
  • Блог
  • Форумы
  • Видео
  • Adabox
  • IO
переключить меню

Поиск

0
  • Войти | Регистрация
  • Новые руководства
  • серии
  • маг.
  • Учиться
  • Блог
  • Форумы
  • Видео
  • Adabox
  • IO
Войти в систему 0
  • Исследуй и учись Узнать Категориипосмотреть все
    • AdaBox
    • Продукты Adafruit
    • Совместимость с Arduino
    • Коммутационные платы
    • Круговая площадка
    • CircuitPython
    • Лаборатория Коллина
    • Компоненты
    • Поддержка сообщества
    • Проекты для клиентов и партнеров
    • Разработано
.

Смотрите также