Практики машинного обучения Deer-3 - Зачем изобретать деревья решений

машинное обучение

Практика машинного обучения Xiaodu Deer-3-Зачем изобретать дерево решений

一个小杜logo

предисловие

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

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

Как мы, люди, решаем проблемы с помощью опыта?

题外话:说原理容易,这写代码也太难了叭


Теги:机器学习

[toc]

? Что такое дерево решений

«Какому человеку можно доверять?»

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

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

Рисование нестандартной картинки может выглядеть примерно так~

image-20210325084535918

Подобно блок-схеме, предоставленной Высшей школой экономики в России «Как опубликовать статью на сайте института», мы, вероятно, думаем таким образом, как древовидная диаграмма.

Snipaste_2021-03-22_13-51-44

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

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

image-20210323102336818

Для решения вышеуказанных задач необходимо ввестиэнтропия,Условная энтропия,получение информации,коэффициент усиления информацииКонцепция чего-либо

Энтропия

В нормативном отношении это表示一个随机变量的复杂性或者不确定性

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

S=i=1Npilog2piS = -\sum_{i=1}^{N}p_i \log_2{p_i}

в,pip_iэто система вiiвероятность состояния. Энтропию можно описать как степень хаоса в системе, чем выше энтропия, тем хуже порядок в системе, и наоборот. Энтропия поможет нам эффективно сегментировать данные.

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

Например, если я покупаю книгу в Интернете, я знаю только название книги, а качество книги для меня неопределенно, то можно предположить, что ее информационная энтропия равна 10

Условная энтропия

Условная энтропия означает, что表示在知道某一个条件之后,某一随机变量的复杂性或者不确定性

Другой пример покупки книги

Я видел в Интернете оценку Дубана, после чего качество книги стало более определенным, а ее информационная энтропия упала до 6.

ЭтоУсловная энтропия

Информационная выгода

чтополучение информацииНу, то есть表示在知道某一个条件之后,某一随机变量的不确定性的减少量

Или возьмем, к примеру, покупку книги.

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

означает, что я получаю энтропию 4получение информации, который называетсяполучение информации

Коэффициент усиления информации (коэффициент усиления)

зачем говорить об этом сновакоэффициент усиления информациичто это значит信息增益与某一变量的熵的比值

В примере с покупкой книг мы разделили книги на质量好,质量坏Два вида, каждая книга представляет собой дискретное значение (0,5 книги не могут отображаться), данные представляют собой дискретные данные

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

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

Поэтому в алгоритме можно рассмотреть использованиекоэффициент усиления информации

题外话:像ID3算法就是使用了**信息增益**,C4.5算法使用了**信息增益比**

Метрики для оценки того, хороша или плоха сегментация

На вопрос, упомянутый ранее: «Какой человек кажется заслуживающим доверия?»

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

Стандарт сегментации обычно также использует следующие показатели:

  • Прирост информации (IG):IG(Q)=SOi=1qNiNSiIG(Q) = S_O - \sum_{i=1}^{q}\frac{N_i}{N}S_i

  • Джини неопределенность:G=1k(pk)2G = 1 - \sum\limits_k (p_k)^2(不纯度)

  • Ошибка неправильной классификации:E=1maxkpkE = 1 - \max\limits_k p_k

Неправильная классификация редко используется на практике, и неопределенность Джини и получение информации аналогичны

Построение алгоритма дерева решений

Алгоритм ID3

Алгоритм ID3 — очень простой и грубый алгоритм.

Предположим, мы владелец букинистического магазина с большой коллекцией книг (я не вижу всего этого), чтобы переставить полки, хорошее качество помещается впереди, а плохое — сзади (то есть это две категории:质量好和质量差).

Мы уже знаем некоторые характеристики этой стопки книг:损坏程度(99新和非99新),流行程度(流行和小众),是否可珍藏(绝版和有再版)

  • На данный момент у нас есть корневой узел: куча книг

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

    信息增益
  • выбрать в дочернем узлеособенность: рекурсивно повторите указанные выше шаги.

  • в конце концов вернуть всеподдерево

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

? Деревья решений в машинном обучении

Индукция и обрезка

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

индукция

Индукция - это то, как мы на самом деле строим дерево, например, метод генерации дерева с помощью алгоритмов ID3, C4.5 и CART.

  • Начиная с корневого узла, включая все обучающие образцы

  • выберитеособенность, разделите корневой узел на подмножества

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

    Условие рекурсивной остановки:

    • Все образцы в узле относятся к одному классу
    • Нет функций, которые можно использовать для разделения этого образца узла.(attribute_list=null)
    • Ни одна выборка не может удовлетворить значение остальных признаков
обрезка

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

Картинка ниже предназначена дляпереоснащениеВизуализация дерева решений:

image-20210323140802284

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

  1. Предварительная обрезка: Операция обрезки при построении дерева решений (более практично)

    预剪枝
  2. после обрезки: После создания дерева решений выполняется операция обрезки.

    后剪枝

Визуализация дерева решений

这个是大佬写的,我还在琢磨中

from sklearn.tree import DecisionTreeClassifier
# 编写一个辅助函数,返回之后的可视化网格


def get_grid(data):
    x_min, x_max = data[:, 0].min() - 1, data[:, 0].max() + 1
    y_min, y_max = data[:, 1].min() - 1, data[:, 1].max() + 1
    return np.meshgrid(np.arange(x_min, x_max, 0.01), np.arange(y_min, y_max, 0.01))


#  max_depth参数限制决策树的深度
clf_tree = DecisionTreeClassifier(criterion='entropy', max_depth=3,
                                  random_state=17)
# 训练决策树
clf_tree.fit(train_data, train_labels)
# 可视化
xx, yy = get_grid(train_data)
predicted = clf_tree.predict(np.c_[xx.ravel(),
                                   yy.ravel()]).reshape(xx.shape)
plt.pcolormesh(xx, yy, predicted, cmap='autumn')
plt.scatter(train_data[:, 0], train_data[:, 1], c=train_labels, s=100,
            cmap='autumn', edgecolors='black', linewidth=1.5)

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

image-20210323110831988
from ipywidgets import Image
from io import StringIO
import pydotplus
from sklearn.tree import export_graphviz

dot_data = StringIO()
export_graphviz(clf_tree, feature_names=['x1', 'x2'],
                out_file=dot_data, filled=True)
graph = pydotplus.graph_from_dot_data(dot_data.getvalue())
Image(value=graph.create_png())

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

image-20210323111020243

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

? Преимущества и недостатки алгоритма дерева решений

преимущество

  1. Легко понять, простое объяснение механизма
  2. Может использоваться для небольших наборов данных
  3. низкая временная сложность
  4. ==Категории, которые могут обрабатывать числа и данные==
  5. Может обрабатывать == несколько проблем с выводом ==
  6. Нечувствительность к отсутствующим значениям
  7. Может обрабатывать нерелевантные данные о функциях
  8. Высокая эффективность: создай один раз, используй многократно

недостаток

  1. Трудно предсказать для непрерывных полей
  2. склонен к переоснащению
  3. Ошибки могут увеличиваться быстрее, когда категорий слишком много.
  4. При работе с данными с сильной корреляцией признаков производительность не очень высока.
  5. Для данных с разными типами выборок структура прироста информации смещена в сторону тех признаков, для которых больше данных.

?Ссылки


  1. Статистический метод обучения | Анализ и реализация принципа дерева решений
  2. Деревья решений и классификация K-ближайших соседей
  3. c4.5 Зачем использовать коэффициенты прироста информации для выбора признаков?
  4. «Глубокое обучение 500 вопросов»
  5. В этой статье вы познакомитесь с деревьями решений в машинном обучении и науке о данных.
  6. Алгоритм машинного обучения (3) Алгоритм дерева решений