Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2014-05-16

Logistic Regression


После линейнойрегрессии нас обучали логистической регрессии — Logistic Regression из класса Supervised Learning. Logistic Regression применяется в задачах классификации, где надо разделить кучу всякого на классы, категории. Или, просто, сказать типа «будет дождик или нет». Хотя я не уверен, что методами логистической регрессии можно ответить на вопрос «перестал ли ты пить коньяк по утрам? Да или нет?».

Суть в том, что машина обучается, пожирая тренировочные наборы данных, предсказывать вероятность того, что входные данные соотносятся с неким классом, объектом, событием. В пределе, ответ всегда «1» или «0». На практике, конечно, ответ может быть любым, в диапазоне от 0% до 100%.

Вы будете смеяться, но вычислительный процесс основывается на таком же полиноме, что и для линейной регрессии. Только этот полином запихиваетя еще внутрь функции sigmoid, чтобы обеспечить бинарное деление результата, вместо получения непрерывной функции.

Ценовая функция (Cost Function), применяемая в обучении (задача — снизить цену, ошибку), тоже очень похожа на таковую из линейной регрессии, только добавлены логарифмы, чтобы Cost Function была выпуклой. Чтобы можно было найти глобальный минимум фунции, который означает, что параметры полинома подобраны наилучшим возможным образом.

В общем, вся метода похожа на таковую из линейной регрессии, что не удивительно, ибо правильный профессор учит от простого к сложному.

Да, чуть не забыл. Чтобы с помощью Logistic Regression провести классификацию, скажем, писем на несколько категорий, типа «работа», «рассылки», «родня», «хобби», … Нужно проделать хитрую штуку. Называется штука One vs all. Один против всех. Если у нас, скажем, 3 категории, нам надо провести обучение машины по трем логистическим регрессиям. Первая категория / все остальные категории, бинарное деление, как и положено. Потом Вторая категория / все остальные категории. Ну вы поняли. А потом, выработав три «гипотезы», суть три набора параметров для полинома, для каждого нового письма применять вычисление всех трех гипотез. Какая выдаст большую вероятность, в ту категорию письмо и складывать. Очень просто.


В конце этой темы мы смогли научить машину распознавать рукописные цифры, десять штук, от 0 до 9. С точностью 95%. Во как.


original post http://vasnake.blogspot.com/2014/05/logistic-regression.html



Комментариев нет:

Отправить комментарий

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) humor (23) Java (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Manager (15) web-browser (15) Никонов (15) Klaipeda (14) functional programming (14) happiness (14) music (14) todo (14) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) serialization (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)