Линеарна регресија и методе за њен опоравак

Линеарна регресија и методе за њен опоравак
Извор: ккцд

Линеарна регресија је један од основних алгоритама за многе области које се односе на анализу података. Разлог за ово је очигледан. Ово је веома једноставан и разумљив алгоритам, који је допринео његовој широкој употреби десетинама, ако не и стотинама година. Идеја је да претпоставимо линеарну зависност једне променљиве од скупа других варијабли, а затим покушамо да вратимо ову зависност.

Али овај чланак није о коришћењу линеарне регресије за решавање практичних проблема. Овде ћемо размотрити занимљиве карактеристике имплементације дистрибуираних алгоритама за његов опоравак, на које смо наишли приликом писања модула машинског учења у Апацхе Игните. Мало основне математике, машинског учења и дистрибуираног рачунарства могу вам помоћи да схватите како да извршите линеарну регресију чак и када су ваши подаци распоређени на хиљаде чворова.

Шта говоримо?

Пред нама је задатак да обновимо линеарну зависност. Као улазни податак дат је скуп вектора наводно независних променљивих, од којих је свака повезана са одређеном вредношћу зависне променљиве. Ови подаци се могу представити у облику две матрице:

Линеарна регресија и методе за њен опоравак

Сада, пошто је зависност претпостављена и, штавише, линеарна, нашу претпоставку ћемо написати у облику производа матрица (да бисмо поједноставили снимање, овде и испод се претпоставља да је слободни члан једначине сакривен иза Линеарна регресија и методе за њен опоравак, и последња колона матрице Линеарна регресија и методе за њен опоравак садржи јединице):

Линеарна регресија и методе за њен опоравак

Звучи као систем линеарних једначина, зар не? Чини се, али највероватније неће бити решења за такав систем једначина. Разлог за то је шум, који је присутан у готово свим стварним подацима. Други разлог може бити недостатак линеарне зависности као такве, која се може сузбити увођењем додатних варијабли које нелинеарно зависе од оригиналних. Размотрите следећи пример:
Линеарна регресија и методе за њен опоравак
Извор: Википедија

Ово је једноставан пример линеарне регресије која показује однос једне променљиве (дуж осе Линеарна регресија и методе за њен опоравак) из друге променљиве (дуж осе Линеарна регресија и методе за њен опоравак). Да би систем линеарних једначина који одговара овом примеру имао решење, све тачке морају лежати тачно на истој правој линији. Али то није истина. Али они не леже на истој правој линији управо због буке (или зато што је претпоставка о линеарном односу била погрешна). Дакле, да би се успоставио линеарни однос из стварних података, обично је потребно увести још једну претпоставку: улазни подаци садрже шум и овај шум има нормална расподела. Можете направити претпоставке о другим врстама дистрибуције буке, али у огромној већини случајева се узима у обзир нормална дистрибуција, о чему ће се даље говорити.

Метода максималне вероватноће

Дакле, претпоставили смо присуство насумичне нормално распоређене буке. Шта учинити у таквој ситуацији? За овај случај у математици постоји и широко се користи метода максималне вероватноће. Укратко, његова суштина лежи у избору функције вероватноће и њено накнадно максимизирање.

Враћамо се враћању линеарне везе из података са нормалним шумом. Имајте на уму да је претпостављена линеарна веза математичко очекивање Линеарна регресија и методе за њен опоравак постојећа нормална дистрибуција. Истовремено, вероватноћа да Линеарна регресија и методе за њен опоравак поприма једну или другу вредност, у зависности од присуства видљивих Линеарна регресија и методе за њен опоравак, као што следи:

Линеарна регресија и методе за њен опоравак

Хајде да сада заменимо уместо тога Линеарна регресија и методе за њен опоравак и Линеарна регресија и методе за њен опоравак Променљиве које су нам потребне су:

Линеарна регресија и методе за њен опоравак

Остаје само да се пронађе вектор Линеарна регресија и методе за њен опоравак, при чему је ова вероватноћа максимална. Да бисте максимизирали такву функцију, згодно је прво узети њен логаритам (логаритам функције ће достићи максимум у истој тачки као и сама функција):

Линеарна регресија и методе за њен опоравак

Што се, пак, своди на минимизирање следеће функције:

Линеарна регресија и методе за њен опоравак

Узгред, ово се зове метода најмањих квадрата. Често се сва горе наведена разматрања изостављају и овај метод се једноставно користи.

КР декомпозиција

Минимум горње функције се може наћи проналажењем тачке у којој је градијент ове функције нула. А градијент ће бити написан на следећи начин:

Линеарна регресија и методе за њен опоравак

КР декомпозиција је матрична метода за решавање проблема минимизације која се користи у методи најмањих квадрата. С тим у вези, преписујемо једначину у матричном облику:

Линеарна регресија и методе за њен опоравак

Дакле, разлажемо матрицу Линеарна регресија и методе за њен опоравак на матрице Линеарна регресија и методе за њен опоравак и Линеарна регресија и методе за њен опоравак и извршите серију трансформација (овде се неће разматрати сам алгоритам КР декомпозиције, већ само његова употреба у односу на задатак који је пред вама):

Линеарна регресија и методе за њен опоравак

матрица Линеарна регресија и методе за њен опоравак је ортогонална. Ово нам омогућава да се ослободимо посла Линеарна регресија и методе за њен опоравак:

Линеарна регресија и методе за њен опоравак

А ако замените Линеарна регресија и методе за њен опоравак на Линеарна регресија и методе за њен опоравак, онда ће успети Линеарна регресија и методе за њен опоравак. С обзиром да Линеарна регресија и методе за њен опоравак је горња троугласта матрица, изгледа овако:

Линеарна регресија и методе за њен опоравак

Ово се може решити методом замене. Елемент Линеарна регресија и методе за њен опоравак налази се као Линеарна регресија и методе за њен опоравак, претходни елемент Линеарна регресија и методе за њен опоравак налази се као Линеарна регресија и методе за њен опоравак и тако даље.

Овде је вредно напоменути да је сложеност резултујућег алгоритма услед употребе КР декомпозиције једнака Линеарна регресија и методе за њен опоравак. Штавише, упркос чињеници да је операција множења матрице добро паралелизована, није могуће написати ефективну дистрибуирану верзију овог алгоритма.

Градиент Десцент

Када говоримо о минимизирању функције, увек је вредно запамтити метод (стохастичког) градијентног спуштања. Ово је једноставан и ефикасан метод минимизације заснован на итеративном израчунавању градијента функције у тачки, а затим померању у правцу супротном од градијента. Сваки такав корак приближава решење минимуму. Градијент и даље изгледа исто:

Линеарна регресија и методе за њен опоравак

Овај метод је такође добро паралелизован и дистрибуиран због линеарних својстава оператора градијента. Имајте на уму да се у горњој формули под знаком збира налазе независни чланови. Другим речима, градијент можемо израчунати независно за све индексе Линеарна регресија и методе за њен опоравак од првог до Линеарна регресија и методе за њен опоравак, паралелно са овим, израчунајте градијент за индексе са Линеарна регресија и методе за њен опоравак до Линеарна регресија и методе за њен опоравак. Затим додајте добијене градијенте. Резултат сабирања ће бити исти као да смо одмах израчунали градијент за индексе од првог до Линеарна регресија и методе за њен опоравак. Дакле, ако су подаци распоређени на неколико делова података, градијент се може израчунати независно за сваки део, а затим се резултати ових прорачуна могу сумирати да би се добио коначни резултат:

Линеарна регресија и методе за њен опоравак

Са становишта имплементације, ово се уклапа у парадигму Карта смањити. На сваком кораку спуштања градијента, сваком чвору података се шаље задатак да израчуна градијент, затим се израчунати градијенти прикупљају заједно, а резултат њиховог збира се користи за побољшање резултата.

Упркос лакоћи имплементације и могућности извршавања у парадигми МапРедуце, ​​спуштање градијента такође има своје недостатке. Конкретно, број корака потребних за постизање конвергенције је знатно већи у поређењу са другим специјализованијим методама.

ЛСКР

ЛСКР је још један метод за решавање проблема, који је погодан и за враћање линеарне регресије и за решавање система линеарних једначина. Његова главна карактеристика је да комбинује предности матричних метода и итеративног приступа. Имплементације овог метода могу се наћи у обе библиотеке СциПи, и ин Матлаб. Опис ове методе неће бити дат овде (може се наћи у чланку ЛСКР: Алгоритам за ретке линеарне једначине и ретке најмање квадрате). Уместо тога, биће демонстриран приступ за прилагођавање ЛСКР-а извршењу у дистрибуираном окружењу.

ЛСКР метода се заснива на поступак бидијагонализације. Ово је итеративни поступак, свака итерација се састоји од следећих корака:
Линеарна регресија и методе за њен опоравак

Али ако претпоставимо да је матрица Линеарна регресија и методе за њен опоравак је хоризонтално подељен, онда се свака итерација може представити као два МапРедуце корака. На овај начин могуће је минимизирати пренос података током сваке итерације (само вектори чија је дужина једнака броју непознатих):

Линеарна регресија и методе за њен опоравак

Управо овај приступ се користи када се спроводи линеарна регресија у Апацхе Игните МЛ.

Закључак

Постоји много алгоритама за опоравак линеарне регресије, али не могу се сви применити у свим условима. Дакле, КР декомпозиција је одлична за прецизно решење на малим скуповима података. Градијентно спуштање је једноставно за имплементацију и омогућава вам да брзо пронађете приближно решење. А ЛСКР комбинује најбоља својства претходна два алгоритма, пошто се може дистрибуирати, конвергира брже у поређењу са градијентом спуштања, а такође омогућава рано заустављање алгоритма, за разлику од КР декомпозиције, како би се пронашло приближно решење.

Извор: ввв.хабр.цом

Додај коментар