ПредишенСледващото

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

линейна регресия

Строго погледнато, линейна регресия алгоритъм не е извличане на данни. Това е един от начините да идват от статистиката. В статистиката, регресия обикновено означава, прогнози, в една или друга форма. Има много различни видове регресии, но на базата на който и да е от тях е една и съща идея: да се изгради модел, който се отнася прогнозираната стойност на изходните данни (предиктори), свеждане до минимум на грешка.

Линеен регресионен е най-простият вариант на регресия. Помислете, например, линейна регресия с един предиктор и един прогнозира стойност. Това регресия е лесно да се направи на графиката на X-Y. За да направите това, по хоризонталната ос X, ние отбелязваме, стойността на предиктор и координатите Y стойности на прогнозираната стойност. Тогава проста линейна регресия е линия, прекарана по такъв начин, че да се намали разликата между действителни стойности и предсказаните стойности на точките на линията, съответстваща на стойността на предиктори.

Линеен регресионен с примери в R, на програмиране, алгоритми, и не само

На езика на математиката, можем да опишем нашата линеен модел под формата на уравнението: Y = A + B * X, където X - е предиктор или необработените данни, а Y - е прогнозната стойност. Дадена задача се преформулира като: намерите коефициенти а и б минимизиране стойността за грешка.
Когато моделът е построен, а коефициентите са открити, можем да използваме получената уравнението за прогнозиране на неизвестни стойности на нас.

Да вземем пример от областта на финансите. Не е тайна, че цените на акциите на петролните компании са силно зависими от цените на петрола. В нула сближаване, можем да предположим, че

Цена на акция = К * Цената на барел петрол + определена постоянна

Ако можем да се определи постоянен фактор и след това можем да се предскаже цената на петрола на цените на акциите. Ако има отклонение, можете да си купите разпространение и да се правят пари, на теория, разбира се.

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

Линеен регресионен с примери в R, на програмиране, алгоритми, и не само

На фигурата имаме лихви са посочени (1). Чрез тях се замества в уравнение регресия, ние получаваме израза: ROSN = 61,405 + 1.944 * Brent допълнение към стойностите действително коефициенти, R ни показва количеството на грешки, или стандартното отклонение за всеки коефициент. Но това не е всичко. Например, ние може да се чудя дали да го обясня всичко нашите цени. За да тествате този, който предложихме нулевата хипотеза, че, например, коефициентът на 61 405 е само в резултат на грешката и стойността му може да бъде пренебрегната. За да изпробвате тази хипотеза, като се използва Т-тест на Student. Тук, R за нас всичките работи, изчисляване на самата стойност като тон и степента на значимост на нашата хипотеза Pr (> | т |). Така че, в нашия случай, стойността (2), 0.0036 означава, че ние сме на 100 * (1-0.0036) = 99.64% смятат, че постоянно термин в този израз не е нула. На следващо място, можем да проверим колко добре модела ни описва данните. За тази цел, коефициентите на R 2 (3). Колкото по-близо до тези стойности на стойността на 1, толкова по-добре. 1 е идеално резултат, което означава, че 100% модел описва данните. И накрая, последното нещо, което ние проверяваме как прогнозираната стойност зависи от предиктори. За да направите това, нулевата хипотеза е твърдението, че прогнозира стойност не зависи от предиктори. За тази хипотеза определя от р-стойност (4). В нашия случай, това беше установено, че е 2,65 * 10 ^ -8. Т.е. можем да бъдем сигурни, за да 99.99999735%, което е предполагаемата стойност при наистина зависи от предиктори. Обикновено, че има смисъл да разгледаме тази опция, на първо място, тъй като тя определя колко общо ни модел е адекватен. О, и малко по-горната графика, просто показва нашите данни и в резултат на линейната регресия.

Какво става, ако моите данни не се описва с права линия?

Линеен регресионен с един предиктор е най-простият вариант на регресията, на практика редица възможни усложнения, които могат да се реши много по-сложни проблеми: 1) добавянето на няколко предиктори - допълнителни предиктори могат да добавят повече информация за моделиране и по този начин се подобри резултати. Уравнението на линейната регресия след това може да има следната форма: Y = а + Ь1 * X1 + ... млрд * Xn 2) предварителни трансформация предиктори - Изграждане на предиктори на екстракция степен или корени е един начин за увеличаване на възможността на линейна регресия. На практика, често е необходимо да се извърши по-голям брой различни трансформации, за да се определи кои от тях ще даде най-добра оценка. 3) в уравнението на модела може да бъде добавен към предиктори на продукт, съдържащ елемент 4) често възниква проблемът за предсказване на вероятността от събитие. Т.е. прогнозира стойност отнема само двете стойности 1 или 0, и да, и не. За решаване се използва логистична регресия такива проблеми. За щастие, всички тези и много други допълнения, изпълнявани в R и готов за употреба. За информация за това как да ги използвате, може да се намери, като напишете в Р. командния интерфейс

Серж Сан Франциско, Калифорния, САЩ Здравейте, аз съм старши софтуерен инженер в голяма уеб компания. Основно се интересуват от извличане на данни и машинно обучение. Моето "роден" език за програмиране е Java, въпреки че аз вярвам, Haskell и FP като цяло е по-добре. Имам приличен опит с C # и .NET комин, както добре. В свободното си време аз съм щастлив да се конкурира с интелигентни хора на TopCoder и Kaggle. Моят профил TC е тук. Kaggle профил тук Ако искате да се говори, трябва само да изпратите съобщение: д г ф о н о @ д м а аз л. к о м Преглед на целия ми профил

Блогове, които чета

Подкрепете проекта - споделете линка, благодаря!