слаби обучаеми въз основа на разпределенията: пън за решение

Трябва да подсиля слабия класификатор за решение. Така че за всяка итерация ще трябва да обучавам слабия класификатор въз основа на определени тегла. След това ще актуализирам теглата след всяка итерация. Дотук разбрах. Но неясната част за мен е „Обучение на слаб класификатор за вземане на решение въз основа на тегла“. Как точно го правят? Може ли някой да обясни на лаишки език?

Да предположим, че имам набор от данни за обучение {(x1,y1),(x2,y2).....,(xm,ym)} X са характеристиките (да речем 10), y са двоичен клас

Първоначално теглата са w(x) = 1/m

Така че слабият обучаем трябва да даде h(x), което трябва да бъде двоично въз основа на теглата.

Как работи алгоритъмът? Какви характеристики ще има пънът за вземане на решения?


person user 3317704    schedule 30.07.2015    source източник


Отговори (1)


За задачата за повишаване трябва да изберете най-добрия класификатор на всяка итерация на алгоритъма. За да направите това, трябва да минимизирате средната грешка на пъна в набора от данни по отношение на теглата, така че трябва да вземете предвид теглата на обектите, докато броите мярката за грешка на класификатор. Така наказанието на класификатора за неправилно етикетиране на обект с голямо тегло ще бъде по-голямо от наказанието за неправилно етикетиране на обект с малко тегло.

Можете да видите моята имплементация на усилване върху дървета на решения на език R работи добре, за пънове за вземане на решения, просто променете дълбочината на дървото на ред 132 на 1 и можете да тествате точността с различен брой класификатори, променящи параметър T.

Ако имате нужда от по-задълбочено разбиране: Можете да научите пънове по същия начин като дърво с дълбочина 1. За да научите дърво върху претеглен набор от данни, трябва да изберете функция и стойност, която разделя набора от данни по най-добрия начин на 2 части по избрана характеристика според претеглени показатели, за пример Ентропия и придобиване на информация. Можете просто да итерирате с for цикъл върху всички налични функции, във вложен цикъл да сортирате избраната функция и да опитате всички възможни разделяния на набор от данни в два набора S, според избраната функция и стойност на разделителя, след което да изчислите ентропията за всеки набор, както е написано в wikipedia , но вместо да изчисли p(x) като

Пропорцията на броя на елементите в клас x към броя на елементите в набора S

трябва да сумирате всички тегла на обекти с клас x в набора и да разделите това число на сумата върху всички тегла на обекти в този набор.

p(x)

където W- всички тегла на обекти в набор S и W_x - всички тегла на обекти в набор S с клас x.

След това можете да изчислите печалбата от информация, но отново трябва да използвате претеглена пропорция p(t) вместо вариант в Уикипедия (пропорция на числата).

p(t)

където W_S- набор от тегла на обекти от първоначалния (неразделен с разделител) набор . и W_t- набор от тегла на обекти от набор t (ще получите 2 комплекта t чрез разделяне на S с някаква разделителна стойност)

Изберете функция и стойност на разделителя, които ви дават най-голяма печалба и това е всичко, току-що сте научили нов класификатор на пънове за претеглени данни и той е готов за работа.

Направих снимка, за да дам пример за изчисление, тук избрах само 1 разделител, трябва да проверите печалбата за всеки възможен разделител. пример

person Ibraim Ganiev    schedule 30.07.2015
comment
благодаря за такова изящно обяснение. Разбрах с изключение на няколко области. Бихте ли ми дали по-подробно обяснение на среднопретегления процент грешки? Също така, можете ли да дадете това твърдение, трябва да сумирате частично всички тегла на обекти от същия клас и да разделите това число на сбор върху всички тегла на обекти в тази част под формата на уравнение за по-добро разбиране - person user 3317704; 31.07.2015