Подсилване и излъчване: Как да разработим здрав алгоритъм за машинно обучение

Машинното обучение и науката за данни изискват нещо повече от просто хвърляне на данни в библиотека Python и използване на всичко, което излезе

Bootstrapping / чували / Увеличаване

Машинното обучение и науката за данни изискват нещо повече от просто хвърляне на данни в библиотека Python и използване на всичко, което излезе.

Учените за данни трябва действително да разберат данните и процесите зад тях, за да могат да внедрят успешна система.

Една от ключовите методологии за внедряване е да се знае кога даден модел може да се възползва от използването на методи за зареждане. Това са така наречените ансамблови модели. Някои примери за ансамбъл модели са AdaBoost и Stohastic Gradient Boosting.

Защо да използвате ансамбъл модели?

Те могат да помогнат за подобряване на точността на алгоритъма или да направят модел по-здрав. Два примера за това са стимулиране и пресичане. Увеличаването и пакетирането са теми, които учените за данни и инженерите на машинно обучение трябва да знаят, особено ако планирате да участвате в интервю за наука за данни / машинно обучение.

По същество, ансамбълното обучение е вярно на думата ансамбъл. Освен, че вместо няколко души, които пеят на различни октави, създават една красива хармония (всеки глас запълва празнотата на другия), ансамбълното обучение използва стотици до хиляди модели на един и същ алгоритъм, които работят заедно, за да намерят правилната класификация.

Друг начин да мислите за ансамбълното обучение е баснята за слепите мъже и слона. В този пример всеки слепец се чувства различна част от слон, така че те не са съгласни какво чувстват. Обаче, ако се съберат и обсъдят това, те биха могли да разберат, че гледат различни части на едно и също нещо.

Използването на техники като усилване и пакетиране доведе до повишена здравина на статистическите модели и намалена дисперсия.

Сега става въпросът, каква е разликата между всички тези различни "B" думи?

Bootstrapping

Нека първо да поговорим за много важната концепция за зареждане на багаж. Много данни учени пропускат това и отиват направо да обяснят усилването и опаковането. Но и двете изискват начално зареждане.

Фигура 1 Bootstrapping

При машинното обучение методът на bootstrap се отнася до случайно вземане на проби със замяна. Тази проба се обозначава като повторна проба. Това позволява на модела или алгоритъма да получат по-добро разбиране на различните пристрастия, отклонения и функции, които съществуват в повторната примера. Вземането на извадка от данните позволява на повторната проба да съдържа различни характеристики, отколкото би могла да съдържа като цяло. Това е показано на фигура 1, където всяка популация на пробата има различни парчета и нито една не е идентична. Това би повлияло на общата средна стойност, стандартното отклонение и други описателни показатели на набор от данни. От своя страна, той може да разработи по-здрави модели.

Bootstrapping също е чудесно за набори от данни с малък размер, които могат да имат склонност към прекаляване. Всъщност, препоръчахме това на една компания, която се притесняваше, че техните набори от данни са далеч от „Големите данни“. В този случай Bootstrapping може да бъде решение, тъй като алгоритмите, които използват bootstrapping, могат да бъдат по-стабилни и да обработват нови масиви данни, в зависимост от методология (стимулиране или пакетиране).

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

Една от многото причини стартирането на стартиране е станало често заради увеличаването на изчислителната мощност. Това позволява да се правят много повече престановки с различни повторни образци, отколкото е възможно друго. Bootstrapping се използва както за пакетиране, така и за подсилване, както ще бъде разгледано по-долу.

зебло

Бегването всъщност се отнася до (Bootstrap агрегатори). Почти всяка хартия или публикация, в която се споменават алгоритмите за пренасяне на багаж, също ще се позовава на Лео Брейман, който през 1996 г. пише статия, наречена „Прогнози за багиране“.

Къде Лео описва пакетирането като:

„Багрирането на предсказатели е метод за генериране на множество версии на предсказател и използването им за получаване на агрегиран предиктор.“

Baging помага да се намали отклонението от модели, които може да са много точни, но само върху данните, на които са били обучени. Това е известно също като свръхфитинг.

Преизпълняването е, когато функция прекалено добре пасва на данните. Обикновено това е така, защото реалното уравнение е много сложно, за да се вземат предвид всяка точка от данни и външната страна.

Фигура 2 Препълване

Друг пример за алгоритъм, който лесно може да надвишава, е дървото на решенията. Моделите, които са разработени с помощта на дървета за решения, изискват много проста евристика. Дърветата на решенията се състоят от набор от изявления „ако не друго“, направени в определен ред. По този начин, ако наборът от данни бъде променен на нов набор от данни, който може да има някакво отклонение или разлика вместо основни характеристики в сравнение с предишния набор, моделът няма да бъде толкова точен. Това е така, защото данните също няма да отговарят на модела (което така или иначе е обратно изявление).

Baging заобикаля това чрез създаване на собствена разлика между данните чрез вземане на проби и замяна на данни, докато тества множество хипотези (модели). От своя страна това намалява шума чрез използване на множество проби, които най-вероятно биха се състоели от данни с различни атрибути (средно, средно и т.н.).

След като всеки модел разработи хипотеза, моделите използват гласуване за класификация или усредняване за регресия. Това е мястото, където „агрегирането“ в „Bootstrap агрегиране“ влиза в игра. Всяка хипотеза има същата тежест като всички останали. Когато по-късно обсъждаме стимулирането, това е едно от местата, където двете методики се различават.

Фигура 3 Багаж

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

Това помага да се намали дисперсията, т.е. да се намали надценката.

Увеличаване

Увеличаването се отнася до група алгоритми, които използват средно претеглени, за да превърнат слабите учащи в по-силни учащи се. За разлика от пакетирането, при което всеки модел се стартира независимо и след това агрегира изводите в края, без да се предпочита предпочитането пред който и да е модел, усилването е свързано с „екипна работа“.

Увеличаването също изисква зареждане със стартиране. Тук обаче има и друга разлика. За разлика от пакетирането, увеличаването на тежестта е всяка извадка от данни. Това означава, че някои проби ще се изпълняват по-често от други.

Защо да поставяте тежести върху пробите от данни?

Фигура 4 Увеличаване

Когато подсилването работи всеки модел, той проследява кои проби от данни са най-успешни и кои не. Наборите от данни с най-неправилно класифицирани изходи се получават по-големи тегла. Те се считат за данни, които имат по-голяма сложност и изискват повече итерации за правилното обучение на модела.

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

По този начин, когато се случи „гласуването“, подобно на пакетирането, моделите с по-добри резултати имат по-силно привличане на крайния резултат.

резюме

Подсилването и пакетирането са страхотни техники за намаляване на вариацията. Методите на ансамбъла обикновено превъзхождат един модел. Ето защо много от победителите в Kaggle са използвали методологии на ансамбъла. Един, който не беше обсъждан тук, беше подреждането. (Това изисква собствен пост.)

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

Оттук идват опит и опит в областта на темата! Може да бъде лесно да скочите върху първия модел, който работи. Важно е обаче да анализирате алгоритъма и всички функции, които избира. Например, ако дървото на решения задава конкретни листове, въпросът става защо! Ако не можете да го поддържате с други точки за данни и визуализации, той вероятно не трябва да се прилага.

Не става въпрос само за изпробване на AdaBoost или Случайни гори в различни набори от данни. Крайният алгоритъм зависи от резултатите, които получава и каква поддръжка има.