Советую почитать предыдущую статью автора.
Если кратко, то приоритет одного параметра перед другим четко определяется самой моделью через понятие энтропии. И порядок атрибутов обучающей выборки неважен. В этом, собственно, и состоит весь изюм этой модели: она сама определяет, какой атрибут наиболее важен на данной стадии, и разбивает обучающую выборку на подмножества по значениям этого атрибута. На следующем шаге анализ «важности» происходит снова, и каждое подмножество в свою очередь разбивается. И так до тех пор, пока в очередном подмножестве не окажутся только те объекты, которые принадлежат одному и тому же классу. В этот момент дальнейшее разбиение по этой ветке больше не нужно, потому что мы получили путь, эффективно классифицирующий эту часть изначальной выборки.
Если ваш вопрос касался того, что делать с ситуацией, когда в обучающей выборке могут оказаться противоречивые данные, то ответ прост: представленный алгоритм ID3 не обрабатывает такие ситуации. Дерево он, конечно, построит, но часть объектов из самой же обучающей выборке потом будут классифицироваться им с ошибкой, что естественно. Разумеется, существуют методы предварительной проверки данных на противоречивость, оценка достоверности и так далее. В реальных системах все это должно применяться в комплексе.
Спасибо, весьма интересная статья (а предыдущая — вообще блеск!). В своей диссертации я использовал деревья решений как основную модель для классификации. Тоже писал на javascript построение деревьев, вижу в представленной в статье библиотеке частично свой же по сути код, только лучше оформленный :) Приятно, что деревья решений удерживают определенный интерес. И, на мой взгляд, очень заслуженно.
Для работы с непрерывными значениями Куинлан (создатель ID3) предложил алгоритм C4.5. Дальше другие авторы еще развивали эту тему.
Вообще, ID3 — это алгоритм построения дерева классификации. Для регресии, как сказали выше, лучше смотреть другие вещи.
Здравствуйте, я хотел бы задать несколько вопросов.
1. Картинки красивые, но если это ваше научное исследование, тогда вы должны были ответить на вопрос, почему для решения задачи генерации используется дерево? Почему не взять, скажем, массив объектов и пройти его, на каждом элементе выбирая одно из значений?
2. Как выбирается конкретное значение очередного узла? Случайным образом?
Если нет, тогда интересно было бы узнать, как? И надо учитывать, что значения разных узлов могут противоречить друг другу и их надо дополнительно контролировать (пример: купила билет на месяц и за 5 недель сделала столько-то поездок).
Если да, то что делать с таким вариантом: «Аня купила билет на месяц и сделала в течение недели 20 поездок. Сколько она переплатила, если билет стоит 300 рублей, а одна поездка — 25 рублей.»?
И у вас везде должно быть «в течение», конечно же.
Спасибо за пост, интересная штука, стоит глянуть на досуге.
Известная конструкция #! по сути не лучше чем Prerender, так что последний имеет право на жизнь. Причем если используя #!, мы отдаем индексацию на откуп поисковику и потом задаем вопросы типа «а вдруг гугл обработает как-то не так?», то prerender на первый взгляд позволяет решить вопрос самостоятельно и для любого поисковика.
Эта книга Крокфорда — однозначный must read для всех, кто интересуется JavaScript. После нее становится особенно интересно читать и обсуждать хаб по яваскрипту, например недавние статьи «Нужны ли в JavaScript классы?»
А вот работой издательства Питер я недоволен. Заказал у них бумажную книжку «HTML5 и CSS3», которую они рекламировали неделю назад, с доставкой курьером в Москву. Неделя прошла, а мой заказ №2834 все еще висит в обработке, и никто не звонил.
Если кратко, то приоритет одного параметра перед другим четко определяется самой моделью через понятие энтропии. И порядок атрибутов обучающей выборки неважен. В этом, собственно, и состоит весь изюм этой модели: она сама определяет, какой атрибут наиболее важен на данной стадии, и разбивает обучающую выборку на подмножества по значениям этого атрибута. На следующем шаге анализ «важности» происходит снова, и каждое подмножество в свою очередь разбивается. И так до тех пор, пока в очередном подмножестве не окажутся только те объекты, которые принадлежат одному и тому же классу. В этот момент дальнейшее разбиение по этой ветке больше не нужно, потому что мы получили путь, эффективно классифицирующий эту часть изначальной выборки.
Если ваш вопрос касался того, что делать с ситуацией, когда в обучающей выборке могут оказаться противоречивые данные, то ответ прост: представленный алгоритм ID3 не обрабатывает такие ситуации. Дерево он, конечно, построит, но часть объектов из самой же обучающей выборке потом будут классифицироваться им с ошибкой, что естественно. Разумеется, существуют методы предварительной проверки данных на противоречивость, оценка достоверности и так далее. В реальных системах все это должно применяться в комплексе.
Вообще, ID3 — это алгоритм построения дерева классификации. Для регресии, как сказали выше, лучше смотреть другие вещи.
Кстати, поздравляю вас :)
К чему тогда было постить ее на Хабр?
1. Картинки красивые, но если это ваше научное исследование, тогда вы должны были ответить на вопрос, почему для решения задачи генерации используется дерево? Почему не взять, скажем, массив объектов и пройти его, на каждом элементе выбирая одно из значений?
2. Как выбирается конкретное значение очередного узла? Случайным образом?
Если нет, тогда интересно было бы узнать, как? И надо учитывать, что значения разных узлов могут противоречить друг другу и их надо дополнительно контролировать (пример: купила билет на месяц и за 5 недель сделала столько-то поездок).
Если да, то что делать с таким вариантом: «Аня купила билет на месяц и сделала в течение недели 20 поездок. Сколько она переплатила, если билет стоит 300 рублей, а одна поездка — 25 рублей.»?
И у вас везде должно быть «в течение», конечно же.
Известная конструкция #! по сути не лучше чем Prerender, так что последний имеет право на жизнь. Причем если используя #!, мы отдаем индексацию на откуп поисковику и потом задаем вопросы типа «а вдруг гугл обработает как-то не так?», то prerender на первый взгляд позволяет решить вопрос самостоятельно и для любого поисковика.
Даешь еженедельную подборку «Лучшие сайты недели по версии Роскомнадзора»!
А вот работой издательства Питер я недоволен. Заказал у них бумажную книжку «HTML5 и CSS3», которую они рекламировали неделю назад, с доставкой курьером в Москву. Неделя прошла, а мой заказ №2834 все еще висит в обработке, и никто не звонил.
Спасибо, возьму на заметку.