Деревья Решений - что это, где растут?

Деревья Решений - что это, где растут?

@just_data_science
Нет, Дерево Решений выглядит не так

Дерево решений - один из самых простых для понимания алгоритмов машинного обучения. К ботанике он имеет отдаленное отношение, а именно - название "дерево". Название это дано потому что алгоритм легко рисуется в виде блок-схем, похожих на перевернутое дерево (сейчас увидите!)

Что это такое?

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

Сложновато? Покажу на картинке пример - Дерево решений для выдачи кредита:

Примерно по такому алгоритму кредиты выдавали раньше.

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


А еще какие бывают Деревья?

Деревья бывают двух видов - деревья классификации и деревья решений (вы же еще помните статью о классификаторах и регрессорах?)

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


Оффтопик, снова о картинке выше

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

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


Постойте, а где же машинное обучение?

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

Но в машинном обучении они тоже очень активно используются. Есть программа, ей подаются на вход данные и ответ, который сооответствует этим данным. Например, "Мужчина, 25 лет, стаж работы - 0 дней, вольный художник - не вернул кредит", "Женщина, 35 лет, стаж работы - 17 лет, вахтерша - вернула кредит". Машина при обучении строит (сама!) такое дерево решений, которое будет выдавать предсказывать, вернет или нет кредит тот или иной человек. Заменяем в листьх слова "не вернет" на "отказать", "вернет" на "разрешить" - вот мы и обучили Дерево.


И снова оффтопик (почти)

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


Итоги

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

Report Page