что такое modeling based learning

Интерпретируемая модель машинного обучения. Часть 1

Всем привет. До старта курса «Machine Learning» остается чуть больше недели. В преддверии начала занятий мы подготовили полезный перевод, который будет интересен как нашим студентам, так и всем читателям блога. Начнем.

Пора избавиться от черных ящиков и укрепить веру в машинное обучение!

В своей книге “Interpretable Machine Learning” Кристоф Мольнар прекрасно выделяет суть интерпретируемости Машинного Обучения с помощью следующего примера: Представьте, что вы эксперт Data Science, и в свободное время пытаетесь спрогнозировать куда ваши друзья отправятся в отпуск летом, основываясь на их данных из facebook и twitter. Итак, если прогноз окажется верным, то ваши друзья будут считать вас волшебником, который может видеть будущее. Если прогнозы будут неверны, то это не принесет вреда ничему, кроме вашей репутации аналитика. Теперь представим, что это был не просто забавный проект, а к нему были привлечены инвестиции. Скажем, вы хотели инвестировать в недвижимость, где ваши друзья, вероятно, будут отдыхать. Что произойдёт, если предсказания модели будут неудачными? Вы потеряете деньги. Пока модель не оказывает существенного влияния, ее интерпретируемость не имеет большого значения, но когда есть финансовые или социальные последствия, связанные с предсказаниями модели, ее интерпретируемость приобретает совершенно другое значение.

Объяснимое машинное обучение

Интерпретировать, значит, объяснить или показать в понятных терминах. В контексте ML-системы, интерпретируемость – это способность объяснить ее действие или показать его в понятном человеку виде.

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

Важность интерпретируемости

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

«Проблема заключается в том, что всего одна метрика, такая как точность классификации, является недостаточным описанием большинства реальных задач.» (Доши-Велес и Ким 2017)

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

Некоторые из преимуществ, которые приносит интерпретируемость:

Методы Интерпретации моделей

Теория имеет смысл только до тех пор, пока мы можем применять ее на практике. В случае, если вы действительно хотите разобраться с этой темой, можете попробовать пройти курс Machine Learning Explainability от Kaggle. В нем вы найдете правильное соотношение теории и кода, чтобы понять концепции и уметь применять на практике к реальным кейсам концепции интерпретируемости (объяснимости) моделей.

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

Инсайты, которые можно извлечь из моделей

Для понимания модели нам потребуются следующие инсайты:

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

Permutation Importance

Какие признаки модель считает важными? Какие признаки оказывают наибольшее влияние? Эта концепция называется важностью признаков (feature importance), а Permutation Importance – это метод, широко используемый для вычисления важности признаков. Он помогает нам увидеть, в какой момент модель выдает неожиданные результаты, он же помогает нам показать другим, что наша модель работает именно так, как нужно.

Permutation Importance работает для многих оценок scikit-learn. Идея проста: Произвольным образом переставить или перетасовать один столбец в наборе датасета валидации, оставив все остальные столбцы нетронутыми. Признак считается «важным», если точность модели падает и его изменение вызывает увеличение ошибок. С другой стороны, признак считается «неважным», если перетасовка его значений не влияет на точность модели.

Как это работает?

Permutation Importance вычисляется с использованием библиотеки ELI5. ELI5 – это библиотека в Python, которая позволяет визуализировать и отлаживать различные модели машинного обучения с помощью унифицированного API. Она имеет встроенную поддержку для нескольких ML-фреймворков и обеспечивает способы интерпретации black-box модели.

Интерпретация

Практика

А теперь, чтобы посмотреть на полный пример и проверить правильно ли вы все поняли, перейдите на страницу Kaggle по ссылке.

Вот и подошла к концу первая часть перевода. Пишите ваши комментарии и дл встречи на курсе!

Источник

PDDM — Новый Model-Based Reinforcement Learning алгоритм с улучшенным планировщиком

Обучение с подкреплением (Reinforcement Learning) делится на два больших класса: Model-Free и Model-Based. В первом случае действия оптимизируются напрямую по сигналу награды, а во втором нейросеть является только моделью реальности, а оптимальные действия выбираются с помощью внешнего планировщика. У каждого подхода есть свои достоинства и недостатки.

Разработчики из Berkeley и Google Brain представили Model-Based алгоритм PDDM с улучшенным планировщиком, позволяющий эффективно обучаться сложным движениям с большим числом степеней свободы на небольшом числе примеров. Чтобы научиться вращать мячи в роботизированной руке с реалистичными суставами пальцев с 24 степенями свободы, потребовалось всего 4 часа практики на реальном физическом роботе.

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

Поэтому учеными было изобретено несколько способов, как решить эту задачу.

Model-Free

Одним из самых эффективных подходов оказалась модель actor-critic (актер-критик). Пусть одна нейросеть (actor) на своем входе получает состояние окружающей среды state, а на выходе выдает действия actions, которые должны вести к увеличению награды reward. Пока эти действия случайные и просто зависят от прохождения сигнала внутри сети, так как нейросеть еще не обучена. А вторая нейросеть (critic) пусть на вход получает тоже состояние окружающей среды state, но еще и действия actions с выхода первой сети. А на выходе пусть предсказывает только награду reward, которая будет получена, если применить эти действия.

Читайте также:  что значит двойная линия жизни на руке

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

В итоге первая нейросеть обучится выдавать оптимальные действия, ведущие к увеличению награды. Потому что если критик critic ошибся и предсказал меньшую награду, чем оказалась в реальности, то градиент этой разницы будет двигать действия актера actor в направлении, чтобы критик точнее предсказывал награду. А значит в сторону более оптимальных действий (ведь именно они приведут к тому, что критик точно предскажет более высокую награду). Аналогичный прицип работает и в обратную сторону: если критик завысил ожидаемую награду, разница между ожиданием и реальностью будет понижать выходы actions у первой нейросети, которые привели к этому завышенному показанию reward у второй сети.

Как видите, в этом случае действия оптимизируются напрямую по сигналу награды. Это общая суть всех Model-Free алгоритмов в Reinforcement Learning. Именно они являются state-of-the-art на данный момент.

Их преимуществом является то, что оптимальные действия ищутся градиентным спуском, поэтому в итоге находятся самые оптимальные. А значит показывающие лучший результат. Другим преимуществом является возможность использовать маленькие (а значит быстрее обучаемые) нейросети. Если из всего многообразия факторов окружающей среды ключевыми для решения задачи являются какие-то конкретные, то градиентный спуск вполне способен их выявить. И использовать для решения задачи. Эти два преимущества обеспечили успех прямым Model-Free методам.

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

Model-Based

Model-Based методы в Reinforcement Learning в корне отличаются от описанного выше подхода. В Model-Based нейросеть только предсказывает что будет дальше. Не предлагая никаких действий. То есть, является просто моделью реальности (отсюда «Model»-Based в названии). А вовсе не системой принятия решений.

На вход Model-Based нейросети подают текущее состояние окружающей среды state и какие хотим совершить действия actions. А нейросеть предсказывает как изменится в будущем state после применения этих действий. Она может также предсказывать какая будет награда reward в результате этих действий. Но это не обязательно, так как награду обычно можно вычислить из известного state. Далее этот выходной state можно подать обратно на вход нейросети (вместе с новыми предполагаемыми actions), и так рекурсивно предсказывать изменение внешней окружающей среды на много шагов вперед.

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

Единственным недостатком является то, Model Based нейросеть должна изучить реальную динамику системы, а значит должна обладать достаточной емкостью для этого. Model-Free нейросеть может сойтись на ключевых факторах, игнорируя остальные, и поэтому быть маленькой простой сетью (если задача в принципе решаема меньшими ресурсами).

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

Главная проблема в Model-Based подходе — а какие, собственно, действия actions подавать нейросети на вход? Ведь нейросеть сама не предлагает никаких оптимальных действий.

Самый простой способ — это прогонять через такую нейросеть десятки тысяч случайных действий и выбрать те, для которых нейросеть предскажет наибольшую награду. Это классический Model-Based Reinforcement Learning. Однако при больших размерностях и длинных временных цепочках, число возможных действий получается слишком велико чтобы их все перебрать (или даже угадать хотя бы немного оптимальные).

По этой причине Model-Based методы обычно уступают Model-Free, которые градиентным спуском напрямую сходятся к самым оптимальным действиям.

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

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

Такое длинное вступление понадобилось для того, чтобы объяснить что происходит в новом предложенном PDDM Model-Based алгоритме обучения с подкреплением. Прочитав статью в Berkeley AI блоге (или расширенную версию), и даже оригинальную статью arxiv.org/abs/1909.11652, это могло быть не очевидно.

Читайте также:  что значит девочка розовая

PDDM метод повторяет идею CEM при выборе случайных действий actions, которые надо прогнать через Model-Based нейросеть, чтобы выбрать действия с максимальной предсказываемой наградой. Только вместо подбора параметров случайного распределения, как это делается в CEM, PDDM использует временную корреляцию между actions и более мягкое (soft) правило обновления случайного распределения. Формула приведена в оригинальной статье. Это позволяет проверить большее число подходящих actions на длинных временных дистанциях, особенно если движения требуют точной координации. Дополнительно авторы алгоритма фильтруют кандидатов в actions, получая тем самым более плавную траекторию движений.

Проще говоря, разботчики просто предложили более удачную формулу для выбора случайных actions для проверки в классическом Model-Based Reinforcement Learning.

Но результат получился очень хорошим.

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

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

В итоге уже через 1-2 часа роборука могла уверенно удерживать шары и передвигать их в ладони, а 4 часов оказалось достаточно для полного обучения.

Обратите внимание на дерганные движения пальцев. Это характерная особенность Model-Based подходов. Так как предполагаемые actions выбираются случайно, то не всегда совпадают с оптимальными. Model-Free алгоритм потенциально мог бы сойтись на действительно оптимальных плавных движениях.

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

Также можно заставить роборуку рисовать карандашом произвольные траектории, обучение чему для Model-Free методов очень сложная задача.

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

Источник

В чем разница между безмодельным и основанным на моделях обучением с подкреплением?

В чем разница между безмодельным и основанным на моделях обучением с подкреплением?

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

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

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

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

Если это невозможно, то это алгоритм без модели.

В чем разница между безмодельным и основанным на моделях обучением с подкреплением?

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

Тот факт, что реализована модель среды, не означает, что агент RL является «основанным на модели». Чтобы квалифицироваться как «основанный на модели», алгоритмы обучения должны явно ссылаться на модель:

Алгоритмы, основанные исключительно на опыте, такие как Монте-Карло Контроль, SARSA, Q-learning, Actor-Critic, являются «безмодельными» алгоритмами RL. Они полагаются на реальные образцы из окружающей среды и никогда не используют сгенерированные прогнозы следующего состояния и следующего вознаграждения для изменения поведения (хотя они могут выбирать из опыта, который близок к тому, чтобы быть моделью).

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

В RL нейронные сети часто используются для изучения и обобщения функций значений, таких как значение Q, которое предсказывает общий доход (сумму дисконтированных вознаграждений), учитывая пару состояния и действия. Такую обученную нейронную сеть часто называют «моделью», например, в контролируемом обучении. Однако в литературе по RL вы увидите термин «аппроксиматор функции», используемый для такой сети, чтобы избежать двусмысленности.

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

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

В таком случае, когда ученики без моделей будут уместны?

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

Прямо сейчас (в 2018 году), если у вас есть реальная проблема в среде без явно известной модели с самого начала, тогда самым безопасным вариантом будет использование подхода без модели, такого как DQN или A3C. Это может измениться, поскольку поле движется быстро, и новые более сложные архитектуры вполне могут стать нормой через несколько лет.

a ‘ role=»presentation»> a s ‘ role=»presentation»> s s ′ ‘ role=»presentation»> s ‘ r ‘ role=»presentation»> р

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

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

Читайте также:  что значит относится к себе предвзято

В отсутствие этих функций (то есть, когда MDP неизвестно), чтобы оценить оптимальную политику, агент должен взаимодействовать с окружающей средой и наблюдать за реакцией среды. Это часто упоминается как «проблема обучения с подкреплением», потому что агент должен будет оценивать политику, укрепляя свои убеждения относительно динамики окружающей среды. Со временем агент начинает понимать, как среда реагирует на его действия, и поэтому он может начать оценивать оптимальную политику. Таким образом, в задаче RL агент оценивает оптимальную политику поведения в неизвестной (или частично известной) среде, взаимодействуя с ней (используя метод проб и ошибок).

Например, давайте посмотрим на основное правило обновления в алгоритме Q-learning :

R t + 1 ‘ role=»presentation»> р T + 1

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

Источник

Модели машинного обучения: объясняем пятилетнему ребенку

Продолжаем нашу постоянную рубрику #чтопочитать

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

Если вы новичок в data science, заголовок не был направлен на то, чтобы вас обидеть. Это мой второй пост на тему популярного вопроса на интервью, который звучит примерно так: «объясните мне [вставить техническую тему], как вы бы объяснили пятилетнему ребенку.»

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

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

Illustration of Machine Learning

Машинное обучение – это когда вы загружаете большое количество данных в компьютерную программу и выбираете модель, которая «подгонит» эти данные так, чтобы компьютер (без вашей помощи) мог придумывать прогнозы. Компьютер строит модели, используя алгоритмы, которые варьируются от простых уравнений (например, уравнение прямой) до очень сложных систем логики/математики, которые позволяют компьютеру сделать самые лучшие прогнозы.

Обучение с учителем — это тип машинного обучения, в котором данные, которые вы засовываете в модель «помечаются». Пометка просто означает, что результат наблюдения (то есть ряд данных) известен. Например, если ваша модель пытается предсказать пойдут ли ваши друзья играть в гольф или нет, у вас могут быть такие переменные, как погода, день недели и так далее. Если ваши данные помечены, то ваша переменная будет иметь значение 1, в том случае если ваши друзья пошли играть в гольф, и значение 0, если они не пошли.

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

[Требуется присутствие взрослых]

Логистическая регрессия используется для решения проблемы классификации. Это значит, что ваша целевая переменная (та которую вы хотите предсказать) состоит из категорий. Эти категории могут быть да/нет, или что-то вроде числа от 1 до 10, которое обозначает удовлетворенность клиента. Модель логистической регрессии использует уравнение, чтобы создать кривую с вашими данными, а затем использует эту кривую, чтобы спрогнозировать результаты нового наблюдения.

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

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

Линейная Регрессия чем-то напоминает логистическую регрессию, но используется, когда целевая переменная – непрерывная, а это значит, что она может принимать практически любое числовое значение. На самом деле, любая модель с непрерывной целевой переменной может быть классифицирована как «регрессия». Примером непрерывной переменной может служить цена продажи дома.

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

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

Я объясняю эту модель на примере классификации, но вы также можете ее использовать для регрессии!

Про это я уже рассказывала в предыдущей статья, вы можете найти ее здесь (Деревья Решений и Случайные Леса ближе к концу):

[Читайте с осторожностью]

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

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

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

1. Присваивает точку данных ближайшему центру кластера

2. Создает новый центр, взяв среднее значение всех точек данных из этого кластера

Источник

Строительный портал