Пример демонстрации (Анализ данных о затонувших кораблях Титаника II)

машинное обучение искусственный интеллект анализ данных алгоритм
Пример демонстрации (Анализ данных о затонувших кораблях Титаника II)


Гравюра Вилли Штёвера: Der Untergang der Titanic

Официальный аккаунт WeChat: руководство по анализу данных

    • модель машинного обучения

    • Древо решений

      • Модуль дерева решений в KNIME

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

    модель машинного обучения

    Древо решений

    Дерево решений, дерево решений — очень распространенный алгоритм в машинном обучении. Его цель состоит в том, чтобы изучить древовидное правило из функций и предсказать значение целевой переменной на основе окончательного правила.

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

    Модель дерева решений поля для гольфа

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

    Модели деревьев решений имеют ряд явных преимуществ и недостатков, в том числе: - Интерпретируемость. Видно, что приведенную выше модель очень легко наблюдать и объяснять, что является большим преимуществом.Сегодняшние популярные модели глубокого обучения намного хуже, чем некоторые традиционные модели в интерпретируемости. - Обучение требует меньше данных и т. д. Недостатки: - Модель, вероятно, переобучится, что приведет к плохой производительности обобщения. Конечно, есть некоторые алгоритмы обрезки, которые могут в определенной степени решить эту проблему. - Модель может быть нестабильной, и незначительное изменение исходных данных может привести к совершенно другой модели дерева. Эта проблема обычно решается с помощью ансамбля деревьев решений.

    Понятия подгонки, переобучения и производительности обобщения являются важными и фундаментальными понятиями в машинном обучении. Вот простой пример. Предположим, у нас есть некоторые данные и мы хотим построить функцию (модель) из этих данных. Данные представлены оранжевыми точками на следующем рисунке, тогда вы можете построить различные модели, например, построить оставил функцию у = а х + б у знак равно а Икс + b , или построить промежуточную квадратичную функцию у = а х 2 + Ьх + с у знак равно а Икс 2 + б Икс + c или построить самую правую кубическую функцию у = а х 3 + Ь х 2 + с х + d у знак равно а Икс 3 + б Икс 2 + с Икс + д.

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

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

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

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

    Неважно, если вы не зададите вопрос, потому что вы учитесь, тренируетесь, и рано или поздно эти понятия станут частью вашей повседневной трудовой жизни =P.

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

    Пример переобучения дерева решений

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

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

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

    Что касается обрезки (обрезки), существует два вида обрезки до и после обрезки. Предварительная обрезка заключается в установке порога при построении дерева, такого как глубина дерева.Если глубина дерева превышает определенное значение, мы больше не будем делить этот узел, MDL (минимальная длина описания) в пост- обрезка Это необязательный метод в модуле дерева решений KNIME.

    Модуль дерева решений в KNIME

    Модуль машинного обучения KNIME обычно делится на две части, одна частьXXXX Learner, частьXXXX Predictor, После того, как учащийся изучит модель, модель и тестовые данные затем подключаются к Predictor для завершения процесса обучения и прогнозирования. Начнем с Обучающегося Дерева решений.

    Узлы, связанные с деревом решений в KNIME

    После поиска решения в репозитории узлов мы увидели ряд модулей, связанных с деревом решений, некоторые из которых являются очевидными модулями, такими как представление дерева решений (JavaScript), дерево решений в изображение используется для вывода графики дерева решений и регрессия. модули со словами — все для регрессии (Дерево решений, продемонстрированное выше, для классификации, и его можно использовать и для регрессии); есть также некоторые алгоритмы типа Ensemble, так называемые Ансамбль (интеграция) заключается в обучении нескольких классификаторов, а затем объединении этих классификаторов для повышения эффективности прогнозирования.Короче говоря, три сапожника, один Чжугэ Лян. Различные Boosting и Random Forest относятся к категории ансамблевого обучения.Поскольку ансамблевое обучение представляет собой комбинацию нескольких классификаторов, его нелегко переобучить, поэтому производительность обобщения относительно высока, но поскольку это комбинация нескольких классификаторов, поэтому немного слабее с точки зрения интерпретируемости модели. Наш главный герой сегодня, Decision Tree Learner, настроен следующим образом:

    Конфигурация дерева решений для затонувшего корабля «Титаник»

    через которыеClass columnВыберите столбцы, которые модель должна предсказать,Quality MeasureВы можете выбрать либо примесь Джини, либо энтропию, обе из которых могут быть аппроксимированы.Я предпочитаю использовать энтропию, которая измеряет количество информации,Pruning methodВыберите алгоритм сокращения, MDL или No Pruning (без сокращения, не рекомендуется), а остальные параметры по умолчанию.

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

    Результаты дерева решений для данных о затонувшем Титанике

    Для данных об обломках Титаника в нашей простой конфигурации полученные результаты дерева решений ничем не отличаются от дерева решений, предсказывающего игру в гольф выше, только с некоторыми более подробными пояснениями. Спускаясь вниз от первого корневого узла, первое суждение Пол.Если это мужчина, то прямо предсказать, что он мертв (0).Если это женщина, сначала предсказать, что она жива, а затем по СибСп ( братья, сестры и супруги на одной лодке)) и Парч (количество родителей или детей на борту) для дальнейшего прогнозирования выживания человека. Однако с логической точки зрения выживаемость действительно связана с полом и количеством родственников.Результаты, полученные при модульном обучении, соответствуют ожиданиям, переобучения не наблюдается. Узел дерева решений, поэтому мы принимаем эту грубую модель и можем использовать ее в качестве эталона для других методов машинного обучения. Мы еще не проверили эту модель на другом наборе данных, но одобрили эталонную модель, которая встречается редко и является одной из сильных сторон интерпретируемых моделей.

    Узел в представлении дерева решений данных о затонувшем Титанике.

    Давайте подробнее рассмотрим конкретный узел в дереве решений, чтобы понять данные в узле. в0(320/397)Это означает, что результат прогнозирования этого узла равен 0 (смерть), и в данных, попадающих в этот узел, 397 человек, из которых 320 человек соответствуют ожиданиям нашей модели. Часть «Таблица» в середине узла описывает конкретные данные и пропорции, которые соответствуют прогнозу узла и не соответствуют прогнозу узла, а часть «Диаграмма» внизу узла описывает те же данные в визуальной форме. Стоит отметить, что поскольку во всем рабочем процессе мы используем Color Manager в восходящем узле Пометьте данные (зеленый для выживания 1 и красный для смерти 0), чтобы визуализация здесь была очень четкой.

    Далее давайте посмотрим на производительность этой модели на тестовом наборе. Получите доступ к модулям Predictor Tree Predictor и Scorer, как показано на следующем рисунке:

    Предсказать данные тестового набора и оценить

    Прежде чем данные поступают в Decision Tree Learner и Decision Tree Predictor, существует модуль под названием Partitioning.Этот модуль используется для разделения исходного набора данных.Мы делим часть данных (обычно называемую обучающей выборкой, на долю которой приходится около процента от общего объема данных) 70) Отправьте его в модуль «Ученик», отправьте другую часть данных (обычно называемую тестовым набором, составляющую около 30% от общего объема данных) в модуль «Предиктор» и, наконец, получите доступ к модулю «Счетчик» для проверки. производительность модели на тестовом наборе. В крайнем правом углу схемы показана конфигурация модуля для узла Scorer.

    Результаты оценки модели

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

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

    Для вступительного соревнования Kaggle, упомянутого ранее, вам необходимо загрузить реальный набор тестов (а не набор тестов, который мы разделили здесь), затем вывести результаты прогнозирования в виде CSV и загрузить его на веб-сайт Kaggle, чтобы увидеть окончательный результат. Если вам интересна эта часть домашнего задания, сделайте ее сами.

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

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