Ela.kpi.ua



НАЦ?ОНАЛЬНИЙ ТЕХН?ЧНИЙ УН?ВЕРСИТЕТ УКРА?НИ?КИ?ВСЬКИЙ ПОЛ?ТЕХН?ЧНИЙ ?НСТИТУТ?мен? ?ГОРЯ С?КОРСЬКОГО??нститут прикладного системного анал?зуКафедра математичних метод?в системного анал?зуДо захисту допущено:В.о. зав?дувача кафедри_______ Оксана ТИМОЩУК ?___?_____________20__ р.Дипломна роботана здобуття ступеня бакалавраза осв?тньо-профес?йною програмою ?Системи та методи штучного ?нтелекту?спец?альност? 122 ?Комп’ютерн? науки та ?нформац?йн? технолог???на тему: ?Прогнозування ?МТ за допомогою метод?в машинного навчання?Виконав (-ла): студент (-ка) IV курсу, групи КА-65Кичиг?на А.Ю. __________Кер?вник: Кузн?цова Н.В., д.т.н.,доцент кафедри ММСА?__________Консультант з економ?чо? частини:Шевчук О.А., доцентКонсультант з нормокнтролю:Коваленко А.?.__________Рецензент:Безносик О.Ю. , к.т.н., доцент кафедри СП__________Засв?дчую, що у ц?й дипломн?й робот? нема? запозичень з праць ?нших автор?в без в?дпов?дних посилань.Студент (-ка) _____________Ки?в – 2020 рокуНац?ональний техн?чний ун?верситет Укра?ни?Ки?вський пол?техн?чний ?нститут ?мен? ?горя С?корського??нститут прикладного системного анал?зуКафедра математичних метод?в системного анал?зу?Р?вень вищо? осв?ти – перший (бакалаврський)Спец?альн?сть –?122 ?Комп’ютерн? науки та ?нформац?йн? технолог???Осв?тньо-профес?йна програма ?Системи штучного ?нтелекту??ЗАТВЕРДЖУЮВ.о. зав?дувача кафедри_______?Оксана ТИМОЩУК?25?? травня?? 2020 р.?ЗАВДАННЯна дипломну роботу студентуКичиг?н?й Анастас?? Юр??вн?1. Тема роботи ?Прогнозування ?МТ за допомогою метод?в машинного навчання?, кер?вник роботи Кузн?цова Н.В., д.т.н.,? доцент кафедри ММСА,,?затверджен? наказом по ун?верситету в?д ?25??травня 2020 р. № 1143-с2. Терм?н подання студентом роботи ??? 8.06.2020.3. Вих?дн? дан? до роботи Вих?дними даними до роботи ? кер?вництво ISO, методичн? рекомендац??, вимоги до побудови моделей.Вих?дними даними до роботи ? показники ?ндексу маси т?ла та дан? про харчов? звички людей. 4. Зм?ст роботи?Проанал?зувати предметну область досл?дження та обран? дан?.Проанал?зувати використовуван? у дан?й галуз? методи роботи з даними та машинного навчання ? обрати доц?льн? модел? та методи.Провести моделювання прогнозування та класиф?кац?? вибраними мтодами машинного навчання.Провести оц?нювання отриманих моделей, проанал?зувати результати ?х роботи та обрати кращу модель. 5. Перел?к ?люстративного матер?алу (?з зазначенням плакат?в, презентац?й тощо): постановка задач?, огляд моделей, схема роботи програми, результат класиф?кац??6. Консультанти розд?л?в роботиРозд?лПр?звище, ?н?ц?али та посада ?консультантаП?дпис, датазавдання ?видавзавдання?прийняв Економ?чнийШевчук О.А., доцент???7. Дата видач? завдання? ____________20.09.2020_______________________Календарний план№ з/пНазва етап?в виконання ?дипломно? роботиТерм?н виконання ?етап?в роботиПрим?тка?1?Отриманя завдання?20.09.2019??2?Зб?р необх?дно? ?нформац?? для виконання завдання?1.10.2019??3?Ознайомлення з л?тературою щодо метод?в машинного навчання та роботою з ними10.11.2019??4Анал?з вимог завдання, огляд можливих метод?в для моделювання проблеми5.12.20205Зб?р експерементальних даних для досл?дження15.01.20206Виб?р необх?дних метод?в машинного навчання та обговорення доц?льност? ?х використання1.02.2020?7?Затвердження обраних моделей та анал?з вибраних експереиентальних даних ?20.02.2020??8?Реал?зац?я попередньо? роботи з п?дготовки вибранх даних?2.03.2020??9Реал?зац?я в?дпов?дних моделей та проведення моделювання?10.04.2020??10Оц?нювання та анал?з отриманих результат?в?2.05.2020??11Оформлення дипломно? роботи?25.25.2020?12Передзахист дипломно? роботи1.06.2020?13Проходження нормоконтролю?2.06.2020?14Захист роботи15.06.2020?1Студент А.Ю.Кичиг?на?Кер?вник Н.В.Кузн?цоваРЕФЕРАТДипломна робота м?стить : 100 с., 17 табл., 16 рис., 2 дод. та 24 джерела.Об’?ктом досл?дження ? ?ндекс маси т?ла людини. Предметом досл?дження ? методи машинного навчання – регрес?йн? модел?, ансамблева модель випадковий л?с та нейронна мережа. В дан?й робот? проведено досл?дження залежност? ?ндексу маси т?ла людини та наявност? надм?рно? маси т?ла в?д харчових та побутових звичок. Для побудови досл?дження були використан? методи машинного навчання та анал?зу даних, проведено роботу для визначення можливостей по покращенню роботи стандартних моделей та визначено кращу модель для реал?зац?? прогнозування та класиф?кац?? на основ? наведених даних. Напрямок роботи ? в понижен? розм?рност? простору ознак, в?дбору кращих спостережень з вал?дними даним для кращо? роботи моделей, а також у комб?нуванн? р?зних метод?в навчання та отриманн? б?льш ефективних ансамблевих моделей. РЕГРЕС?Я, ДЕРЕВА Р?ШЕНЬ, АНСАМБЛЕВА МОДЕЛЬ, ПРОГНОЗУВАННЯ, КЛАСИФ?КАЦ?Я, НЕЙРОННА МЕРЕЖА, ВИПАДКОВИЙ Л?С, ?НДЕКС МАСИ Т?ЛА. ABSTRACTThesis: 100 p., 17 tabl., 16 fig., 2 add. and 24 references.The object of the study is the human body mass index.The subject of research is machine learning methods - regression models, ensemble model random forest and neural network.In this paper, a study of the dependence of the human body mass index and the presence of excess body weight on eating and living habits. To build the study, the methods of machine learning and data analysis were used, work was done to identify opportunities to improve the performance of standard models and identified the best model for the implementation of predicting and classification based on the data. The direction of work is in the reduced dimensions of the feature space, selection of the best observations with valid data for better performance of models, as well as in combining different teaching methods and obtaining more effective ensemble models.REGRESSION, DECISION TREES, ENSEMBLE MODEL, PREDICTION, CLASSIFICATION, NEURAL NETWORK, RANDOM FOREST, BODY MASS INDEXЗМ?СТ TOC \o "1-3" \h \z \u ВСТУП PAGEREF _Toc42784520 \h 9РОЗД?Л 1 АНАЛ?З СТАНУ ПРОБЛЕМИ ЗАДАЧ ПРОГНОЗУВАННЯ ? КЛАСИФ?КАЦ?? МЕДИЧНИХ ЗАХВОРЮВАНЬ PAGEREF _Toc42784521 \h 111.1Ознайомлення з предметною областю PAGEREF _Toc42784522 \h 111.2Огляд даних та визначення типу поставлено? задач? PAGEREF _Toc42784523 \h 121.3Огляд ?снуючих моделей, що використовуються у сфер? медицини та здоров`я PAGEREF _Toc42784524 \h 131.3.1Ансамблев? модел? PAGEREF _Toc42784525 \h 141.3.2. Нейронн? мереж? PAGEREF _Toc42784526 \h 161.3.3.Регрес?йн? модел? PAGEREF _Toc42784527 \h 171.4Огляд метод?в оц?нок ефективност? моделей PAGEREF _Toc42784528 \h 191.4.1. Матриця помилок PAGEREF _Toc42784529 \h 191.4.2. Д?аграма Колмогорова-См?рнова PAGEREF _Toc42784530 \h 201.4.3. Критерий х?-квадрат PAGEREF _Toc42784531 \h 201.4.4. Крива ROC PAGEREF _Toc42784532 \h 211.4.5. Посилення та п?дйом д?аграми PAGEREF _Toc42784533 \h 221.4.6. Кросс-вал?дац?я PAGEREF _Toc42784534 \h 221.4.7. Root Mean Square Error PAGEREF _Toc42784535 \h 231.5Постановка задач? PAGEREF _Toc42784536 \h 24РОЗД?Л 2 ВИБ?Р МЕТОД?В ПРОГНОЗУВАННЯ PAGEREF _Toc42784537 \h 261.6Виб?р метод?в машинного навчання для створення моделей прогнозування PAGEREF _Toc42784538 \h 261.6.1Багатошарова штучна нейронна мережа PAGEREF _Toc42784539 \h 262.1.2. Випадковий л?с PAGEREF _Toc42784540 \h 292.1.3. Лог?стична регрес?я PAGEREF _Toc42784541 \h 302.3.4 Л?н?йна регрес?я PAGEREF _Toc42784542 \h 322.3.5 Ridge регрес?я PAGEREF _Toc42784543 \h 332.2 Виб?р метод?в попередньо? п?дготовки даних для кожно? ?з моделей PAGEREF _Toc42784544 \h 341.7Використання б?бл?отек та програмних засоб?в Python PAGEREF _Toc42784545 \h 362.3.1 Scikit-learn PAGEREF _Toc42784546 \h 372.3.2 Pandas PAGEREF _Toc42784547 \h 382.3.3 NumPy PAGEREF _Toc42784548 \h 392.3.4 Seaborn PAGEREF _Toc42784549 \h 402.3.5. Matplotlib PAGEREF _Toc42784550 \h 401.8Виб?р метод?в оц?нки ефективност? моделей PAGEREF _Toc42784551 \h 412.4.1. Точн?сть, специф?чн?сть та чутлив?сть PAGEREF _Toc42784552 \h 412.4.2. ROC AUC PAGEREF _Toc42784553 \h 422.4.3.RMSE та MSE PAGEREF _Toc42784554 \h 432.4.4. R-squared PAGEREF _Toc42784555 \h 441.9Постановка завдання PAGEREF _Toc42784556 \h 45РОЗД?Л 3 ПРОГРАМНА РЕАЛ?ЗАЦ?Я ТА АНАЛ?З ОТРИМАНИХ РЕЗУЛЬТАТ?В PAGEREF _Toc42784557 \h 471.10Попередня робота з даними та анал?з датасету PAGEREF _Toc42784558 \h 471.11Прогнозування за допомогою нейронно? мереж? PAGEREF _Toc42784559 \h 511.12Прогнозування за допомогою ансамблю моделей Random Forest PAGEREF _Toc42784560 \h 551.13Прогнозування за допомогою регрес?йно? модел? PAGEREF _Toc42784561 \h 581.14Анал?з отриманих результат?в та пор?вняння моделей PAGEREF _Toc42784562 \h 61РОЗДФЛ 4 ФУНКЦ?ОНАЛЬНО-ВАРТ?СНИЙ АНАЛ?З ПРОДУКТУ PAGEREF _Toc42784563 \h 674.1. Об?рунтування функц?й та параметр?в програмного продукту PAGEREF _Toc42784564 \h 674.2. Об?рунтування системи параметр?в програмного продукту PAGEREF _Toc42784565 \h 694.3. Анал?з р?вня якост? вар?ант?в реал?зац?? функц?й PAGEREF _Toc42784566 \h 734.4. Економ?чний анал?з вар?ант?в розробки ПП PAGEREF _Toc42784567 \h 744.5 Висновки PAGEREF _Toc42784568 \h 79ВИСНОВКИ PAGEREF _Toc42784569 \h 80ПЕРЕЛ?К ПОСИЛАНЬ PAGEREF _Toc42784570 \h 82ДОДАТОК А Л?CТИНГ ПРОГРАМИ PAGEREF _Toc42784571 \h 85ДОДАТОК Б ДЕМОНСТРАЦ?ЙН? МАТЕР?АЛИ PAGEREF _Toc42784572 \h 92ВСТУПСфера медицини та здоров'я завжди була ? буде залишатися одн??ю з найважлив?ших. На сьогодн?шн?й день ?сну? чимало досл?джень, присвячених вивченню впливу тих чи ?нших показник?в на стан людини, р?вень ?? життя, наявн?сть чи в?дсутн?сть певних захворювань.Усе б?льше та б?льше спец?ал?ст?в у галуз? машинного навчання починають застосовувати сво? навички для створення моделей, як? могли б займатися д?агностикою та надавати кл?н?цистам посильну допомогу. Розгляда?ться усе б?льше метод?в, як? могли б бути корисними у ц?й галуз?. Робота ?з показниками, що характеризують людину та вивчення впливу ?х значень на загальний стан здоров’я, ста? важливою задачею анал?тик?в, як? працюють у ц?й област?.Часто бува?, що певн? оц?нки б?ометричних параметр?в та ?х вих?д за меж? норми, можуть сигнал?зувати про наявн?сть хрон?чних захворювань. Так, показник р?вня ?ндексу маси т?ла людини ? одн??ю ?з важливих характеристик, що дають можлив?сть допомогти з д?агностикою. На його величину впливають р?зн? фактори, часто багато з яких можуть бути не очевидними для нашого погляду. Проте можна сказати без сумн?ву, що обговорюваний показник сутт?во залежить в?д наших повсякденних та харчових звичок, р?вня забезпеченост?, стат? та ?нших ф?з?олог?чних фактор?в. Контроль р?вня ?ндексу маси т?ла ? також сутт?вим для ус?х людей, стан здоров’я яких залежить в?д власне маси т?ла. Адже зависокий чи занизький ?МТ ? п?дставою для постанови д?агноз?в ожир?ння чи дистроф??. Саме тому досл?дження вплив?в сторонн?х фактор?в на його зростання чи зниження ? важливою та сво?часною задачею на сьогодн?шн?й день.Для роботи з проблемами, що належать до сфери медицини та здоров'я, необх?дно також мати коректн?, повн? та в?рн? дан?, як? могли б правильно в?дображати стан пац??нта. Проте не завжди вда?ться досягти такого р?вня отримувано? ?нформац??. Досл?дники часто стикаються з проблемами пропуск?в, нев?рно визначених показник?в, зашумованост?, а також мало? к?лькост? даних, що призводить до пог?ршення роботи моделей та зниження ?х точност?. Недостатн?й обсяг часто ? насл?дком належност? медично? ?нформац?? до приватно? сфери кожно? людини, а ?? розголошення може каратися в?дпов?дно до законодавчих норм держави.На даний момент ?сну? багато п?дход?в для роботи з медичною ?нформац??ю, але зважаючи на ?? складн?сть та недосконал?сть, потр?бно застосовувати методи попередньо? п?дготовки при робот? з нею. Це забезпечить ?? оптимальне використання при робот? з побудованими моделями та дасть можлив?сть покращити отриман? результати. У дан?й робот? буде розглядатися задача визначення ?МТ людини на основ? даних про р?зн? аспекти життя людини. Дана робота склада?ться ?з чотирьох розд?л?в. У першому розд?л? розгляда?ться поняття ?МТ, проводиться огляд ?снуючих моделей, що використовуються у дан?й галуз? та метод?в оц?нок ефективност? моделей. В другому розд?л? проведено анал?з обраних моделей класиф?кац?? та прогнозування та метод?в ?х оц?нки, п?д?браних в?дпов?дно до типу опрацьованих даних та поставлено? задач?. В третьому розд?л? описано результати роботи моделей та пор?вняно ?х ефективн?сть. У четвертому розд?л? проведено функц?онально-варт?сний анал?з готового продукту.РОЗД?Л 1 АНАЛ?З СТАНУ ПРОБЛЕМИ ЗАДАЧ ПРОГНОЗУВАННЯ ? КЛАСИФ?КАЦ?? МЕДИЧНИХ ЗАХВОРЮВАНЬОзнайомлення з предметною областю?ндекс маси т?ла людини ? важливим медичним параметром, що використову?ться при д?агностиц? р?зних вид?в захворювання, таких як ожир?ння, захворювання ендокринно? системи, цукрового д?абету, г?пертон?чних захворювань, захворювань верхн?х дихальних шлях?в. Його значення дозволя? охарактеризувати людину ? скласти швидку узагальнену оц?нку ?? стану здоров’я, яка, проте, не врахову? показники в?дсоткових в?дношень м’язово? та жирово? мас т?ла.?ндекс маси т?ла (?МТ) — величина, що характеризу? масу т?ла людини ? ? фактично параметром в?дношення ?? до росту, визначеного у метрах.[1]Високий ?МТ може бути показником високо? к?лькост? жирово? тканини в т?л?. Також ?МТ може використовуватися як один ?з критер??в д?агностики, проте не застосову?ться для самост?йного встановлення д?агнозу лише на його основ?, так як можлив? наявност? специф?чно? будови т?ла, розвитку м’яз?в тощо. Щоб визначити, чи високий ?МТ ? ризиком для здоров’я, л?карям необх?дно буде провести подальш? анал?зи та роботу з пац??нтом. Ц? оц?нки можуть включати вим?рювання товщини шк?рних покрив?в, оц?нки д??ти, ф?зичних навантажень, с?мейного анамнезу та ?нш? в?дпов?дн? обстеження здоров'я[2].?ндекс маси т?ла обчислю?ться за формулою:I=m÷h(1.1)де: m — маса т?ла в к?лограмах, h — зр?ст в метрах, вим?рю?ться в кг/м?.[1]Дана предметна область може бути охарактеризована як область медицини та здоров’я людини. У ц?й галуз? робота з персональною ?нформац??ю людей дозволя? досл?дникам наближатися до омр?яних персонал?зованих медичних додатк?в та створення автономних анал?затор?в. На сьогодн?шн?й день, компан?? по всьому св?ту намагаються опановувати новий ринок – ринок девайс?в, що дозволяють пац??нту самому проводити первинну д?агностику, займатися збором регулярних медичних даних та направляти це все до лаборатор?й. ?ндекс маси т?ла людини – один ?з важливих показник?в нашого здоров’я. За його значенням ставлять д?агнози ожир?ння чи дистроф??, його п?двищення чи пониження вказу? на проблеми з ендокринною системою та використову?ться л?карями для в?дсл?дковування стану нашого здоров’я. Актуальн?сть дано? роботи поляга? у тому, щоб створити саме ту модель, що дозволила б на основ? наявних запитань про загальн? звички людини прогнозувати значення ?? ?МТ та сигнал?зувати про пог?ршення.?ншими методами вим?рювання к?лькост? жирово? тканини т?ла ? методи, як? включають в себе зам?ри товщини шк?рних покрив?в (за допомогою штангенциркул?в), п?дводне зважування, б?оелектричний оп?р, рентген?вський метод визначення(DXA) та певна робота з ?зотопами. Проте описан? вище методи майже завжди бувають занадто дорогими, занадто складними чи довготривалими, або ж можуть буди доступн? для виконання лише вузькими спец?ал?стами визначено? галуз?. Одночасно з цим, багато з цих метод?в може бути важким для стандартизац?? серед спостер?гач?в або машин, що ускладню? пор?вняння м?ж досл?дженнями та пер?одами часу.[2]Огляд даних та визначення типу поставлено? задач?Для ц??? роботи було обрано дан? що стосуються ?ндексу маси т?ла людей, що в?дноситься до категор?? даних, що стосуються сфери здоров'я та медицини. Дан? м?стять числов? показники, як? в?дображають характеристики кожного з опитуваних та стосуються його способу життя та харчових звичок. Дан? про р?вень ?ндексу маси т?ла також представлен? у вигляд? числових значень у певному д?апазон?, що характерний для людей р?зно? конституц?? т?ла та з р?зними б?олог?чними даними.Дан? у датасет? закодовано в?дпов?дно до медичного кодування, що зроблено для спрощення роботи з ними. Також кожен з показник?в ма? сво? певн? д?апазони, що також знаходиться в додатку, який надсила? знайдений датасет. Кожна ?з категор?й даних ма? в?дпов?дний опис, приведений в додатку, а також зазначен? вал?дн? та невал?дн? значення, що дозволить провести препроцесинг, спрямований на очищення та в?дкид невал?дних запис?в, як? не нестимуть значущу ?нформац?ю.Датасет укладено у вигляд? запит?в з ?ндив?дуальним кодуванням кожного респондента, яке було виконане для повно? анон?м?зац?? хворих, що брали участь у даному опитуванн?. Повна анон?м?зац?я на сьогодн?шн?й день явля?ться одн??ю ?з основних вимог при збор? та обробц? персонально? ?нформац??. Саме так? дан? можуть бути використаними для л?цензованих досл?джень. Саме такий датасет з в?льною л?ценз??ю American Time Use Survey (ATUS) Data було використано для досл?дження. Дуже важливо пам'ятати, що деяк? з кл?н?к можуть надавати досл?дникам певн? кл?н?чн? дан? ? тод? можливий вар?ант приватного досл?дження, коли його результати не ? публ?чно опубл?кованими ? ?хн? розповсюдження може призвести до порушення закону та отримання адм?н?стративного чи крим?нального покарання. Дан? у даному досл?дженн? стосуються в основному наших харчових звичок та упорядкован? в?дпов?дно до визначених стандартами норм.Огляд ?снуючих моделей, що використовуються у сфер? медицини та здоров`яУ сфер? медицини ?снують певн? категор?? задач, як? сл?д розмежовувати. До них в?дносяться задач? класиф?кац?? та прогнозування. Для д?агностики р?зних вид?в захворювань використову?ться переважно р?зн? види моделей, що спрямован? на класиф?кац?ю, для прогнозування характерн? задач?, що мали б передбачати розвиток того чи ?ншого захворювання, а також визначати майбутн? значення показник?в тих чи ?нших медичних характеристик.Завдання класиф?кац?? та прогнозування застосову?ться в багатьох областях: в економ?ц? та продажах – визначення сутт?вих критер??в, що допомагають оптим?зувати маркетингов? стратег??, обрати в?рну галузь розвитку, привабити кл??нт?в, п?двищити прибуток; в сфер? телекомун?кац?й – розбиття кл??нт?в на р?зн? категор?? та кластери дозволя? персонал?зувати програми роботи з ними, розробляти певн? системи лояльност?, чим зб?льшувати кл??нтську базу та прибутки; в медицин? ? охорон? здоров'я – д?агностувати захворювання, визначати групи ризику, надавати персонал?зован? рекомендац?? кл??нтам; в банк?вськ?й сфер? - кредитний скоринг.[3]Попереду залиша?ться ще багато роботи, адже ?ндустр?я ма? багато недол?к?в та недосконалостей, що могли би бути виправленими, проте ? на даний момент область машинного навчання нада? купу ?нновац?йних технолог?й, що дозволяють прискорити прогрес та отримувати нов? можливост? для д?агностики та прогнозування уже зараз. 1.3.1Ансамблев? модел?Ансамблев? модел? на сьогодн?шн?й день ? довол? популярним методом анал?зу та прогнозування ?нформац??. Так як завдяки принципам, що вони використовують, ансамблев? модел? за рахунок оптим?зованого використання ?нформац?? мають б?льшу швидк?сть та як?сть роботи. Оптим?зац?я швидкост? на сьогодн?шн?й день ? великою перевагою, так як корпорац?? збирають г?габайти даних, на яких навчаються модел?, в той час як робота обчислювально? техн?ки все ще покращу?ться. Саме тому можлив?сть жертвувати пам’яттю на користь швидкост? ? такою важливою.Одним ?з приклад?в ансамблевих моделей ? ?випадковий л?с?. Випадковий л?с – це ансамблева модель, котра склада?ться з певно? к?лькост? простих дерев р?шень, кожна з яких може бути самост?йною моделлю.[4]Дерева р?шень ? хорошим с?мейством базових класиф?катор?в, оск?льки вони досить складн? ? можуть досягати нульово? помилки на будь-як?й виб?рц?. Метод випадкових п?дпростор?в дозволя? знизити корельован?сть м?ж деревами ? уникнути перенавчання. Базов? алгоритми навчаються на р?зних п?дмножинах признакового опису, вибраних також в?дпов?дним випадковим способом. Випадковий л?с, фактично, використову? принцип роботи ?ншого в?домого алгоритму – бустингу.Буст?нг - композиц?йний метаевр?стичний алгоритм машинного навчання. Показу? гарн? результати при оптим?зац?? дисперс?? в навчанн? з учителем та зменшу? зсув пор?вняно з роботою базових алгоритм?в. Явля? собою с?мейство алгоритм?в, як? покращують як?сть класиф?кац??, шляхом посилення самого класиф?катора. Такий процес традиц?йно назива?ться процесом перетворення слабкого класиф?катора на сильний та веде до зменшення часу роботи алгоритму, перерозпод?лення пам’ят? та ?нформац??, п?двищення точност? та зменшення чутливост?. [5]Також ?сну? ?нший тип композиц?йного метаалгоритму – бегг?нг. Бегг?нг спрямований на багаторазове навчання одного ? того ж ансамблю на випадково визначених наборах даних. Бегг?нг – маетаалгоритм, що реал?зу? ?дею паралельного навчання, де багато алгоритм?в навчаються одночасно на р?зних наборах даних, а пот?м визначають кращий результат шляхом голосування. Головна ?дея даного метаалгоритму поляга? в незалежност? помилок кожного класиф?катора та унеможливлення перехресного виправлення або розповсюдження ?х на ?нш? класиф?катори(кожна базова модель працю? окремо). Таким чином, будемо мати окрем? модел? для окремого набору випадково визначених даних. Також, при побудов? ансамблево? модел? ?нколи для досягання такого результату використовують р?зн? види базових класиф?катор?в. 1.3.2. Нейронн? мереж?Наступним методом, що ма? високу популярн?сть та широко застосову?ться серед досл?дник?в ? нейронн? мереж?. Нейронна мережа(також штучна нейронна мережа) - математична модель, а також ?? програмна чи апаратна реал?зац?я, як? побудован? за принципом роботи кл?тин головного мозку людини та м?стять аналог?чн? структурн? елементи. Поняття нейронно? мереж? та штучного нейрону – персептрону з’явилося при перших спробах змоделювати штучн? кл?тини та штучний людський мозок. Саме нейронн? мереж? У. Маккалока ? У. П?ттса ули першими спробами в дан?й галуз? розробок.[6]В подальшому модел? штучного мозку та нейронн? мереж? знайшли широке застосування у р?зних галузях б?знесу, при анал?з? ф?нансових даних, у сферах прийняття р?шень, анал?зу зображення, генерац?? р?зного виду складних об’?кт?в на основ? реальних та багато ?ншого. П?д час навчання нейронна мережа встановлю? складн? залежност? м?ж об’?ктами, тим самим будуючи в?дношення та моделюючи в?дпов?дност?. Фактично, це да? можлив?сть гарно навчен?й мереж? при маючих вх?дних даних в?рно ?х проанал?зувати та дати правильний прогноз, нав?ть якщо вх?дн? дан? мали певн? дефекти, так? як зайвий шум, спотворення чи зсуви.[7]Нейронна мережа явля? собою систему зв'язаних м?ж собою елементарних частинок – персептрон?в, кожен з яких пов'язаний з ?ншими певним чином, а сам по соб? явля?ться сумматором, що обробля? одержану ?нформац?ю ? може як бути активованим, так ? не активованим.Персептрони як одиниця використовуються у згорткових нейромережах. Згортков? нейронн? мереж? характеризуються б?льш складною структурою, р?зною к?льк?стю шар?в, де кожен шар склада?ться ?з N персептрон?в, а також р?зними видами зв’язку.[7]?снують також нейронн? мереж?, що не використовують персептрони. Це так зван? мереж? адаптивного резонансу. Основна ?дея поляга? в тому, що розп?знавання образ?в ? результатом низх?дних оч?кувань ? висх?дн?й сенсорно? ?нформац??. Причому спадн? оч?кування приймають форму пригадую прототип?в або зразк?в, як? пот?м пор?внюються з реально спостер?гаються властивостями об'?кта. Це пор?вняння лежить в основ? метод?в категор?ально? приналежност?.Також можна пригадати про мережу рад?ально-базових функц?й, яка належить то метод?в навчання зм?шаного типу. Мережа рад?ально-базисних функц?й - штучна нейронна мережа, яка використову? рад?альн? базисн? функц?? як функц?? активац??. Виходом мереж? ? л?н?йна комб?нац?я рад?альних базисних функц?й вход?в ? параметр?в нейрона.Мереж? рад?альних базисних функц?й мають безл?ч застосувань, в тому числ? функц?? наближення, прогнозування часових ряд?в, класиф?кац?? ? системи управл?ння. Вперше була сформульована у 1988 Брумхед ? Лоу. [8]1.3.3.Регрес?йн? модел?Ще одним класичним для медично? галуз? методом д?агностики можна вважати р?зн? види регрес?й, зокрема л?н?йну та лог?стичну регрес??.Дуже часто питання про д?агностику ма? визначати належн?сть певно? людини чи ж то певного запису до одн??? ?з вибраних категор?й. Саме з таким завданням покликан? справлятися методи л?н?йно? та лог?стично? регрес?й. Л?н?йна регрес?я визнача? в першу чергу належн?сть певного об'?кта до одного ?з клас?в, в той час як лог?стична – уже ?? ймов?рн?сть.Для роботи з даними моделями часто використовують техн?ки нормал?зац?? та генерал?зац?? даних, коли дан? спочатку нормують, а пот?м логарифмують, приводячи до дещо ?ншого вигляду граф?ку функц?й, що спрощу? роботу моделей.Л?н?йна регрес?я – це метод встановлення залежност? одн??? зм?нно? в?д ?ншо?. Саме тому для його використання важливим параметром явля?ться л?н?йна розд?льн?сть запис?в, що ма? у соб? датасет.[7]Модель л?н?йно? регрес?? ? часто використовуваною ? найб?льш досл?дженою в економетриц?. А саме було вивчено властивост? оц?нок параметр?в, отриманих р?зними методами при г?потезах про ймов?рн?сн? характеристики фактор?в ? випадкових помилок модел?. Граничн?(асимптотичн?) властивост? оц?нок нел?н?йних моделей також отримуються ?з апроксимац?? самих л?н?йних моделей за допомогою л?н?йних. Необх?дно пам'ятати, що з економетрично? точки зору найб?льш важливим ? значення л?н?йност? за параметрами, а н?ж л?н?йност? за факторами модел?.Лог?стична регрес?я - це р?зновид множинно? регрес??, загальне призначення яко? поляга? в анал?з? зв'язку м?ж дек?лькома незалежними зм?нними (так званими регресорами або предикторами) ? залежною зм?нною. Б?нарна лог?стична регрес?я застосову?ться в тому раз?, коли залежна зм?нна ? б?нарною (тобто може приймати т?льки два значення).[9]Лог?стична регрес?я також використову?ться у медичн?й д?агностиц? та при оц?нках ймов?рностей наявност? того чи ?ншого захворювання у пац??нта.Лог?стична регрес?я, под?бно до л?н?йно?, також ? функц??ю залежност? ц?льово? зм?нно? в?д незалежних, як? визначаються спостереженнями. При побудов? множинно? регрес?? часто виника? проблема передбачення значень, б?льших, н?ж допустиме. Тому використовуються так зван? лог?т-перетворення, коли значення теоретично прогнозовано? ймов?рност? вирахову?ться за формулою P = 11+e-р(1.2)де Р – це ймов?рн?сть настання прогнозовано? под??, у – значення регрес??, е – основа натуральних логарифм?в.[6]На даний момент ма?мо можлив?сть використовувати дек?лька вар?ант?в знаходження коеф?ц??нт?в р?вняння лог?стично? регрес??. Часто вживаним вважа?ться метод максимально? правдопод?бност?, який базу?ться на оц?нюванн? параметр?в генерально? сукупност?. Це в?дбува?ться шляхом використання щ?льност? сум?сно? ймов?рност?. Огляд метод?в оц?нок ефективност? моделейДля визначення ефективност? т??? чи ?ншо? модел?, необх?дно мати уявлення про власне р?вень ?? ефективност?. Для отримання даних показник?в, використовують р?зного виду типи метод?в оц?нок моделей, як? показують, чи являються вони адекватними, несуть у соб? яку-небудь ?нформативн?сть та чи мають б?льшу точн?сть у пор?внянн? з ?ншими.Застосування таких метод?в оц?нки дозволя? мати уявлення про роботу побудовано? модел? та к?льк?сть помилок. В залежност? в?д отриманих оц?нок визнача?ться, чи можна взагал? користуватися даною моделлю, на яку ?з схожих ?? сл?д зам?нити чи як? перетворення даних сл?д виконати. Розглянемо основн? в?дом? приклади оц?нок моделей.1.4.1. Матриця помилокМатриця помилок використову?ться в для роботи ?з задачами кластеризац?? та класиф?кац??. Це матриц? N x N (де N - к?льк?сть кластер?в) розроблен? так: елемент у ком?рц? (i, j) представля? к?льк?сть спостережень у тестовому навчальному набор? (на в?дм?ну в?д контрольного навчального набору, у налаштування перехресно? перев?рки), як? належать кластеру i призначен? (алгоритмом кластеризац??) кластеру j. Коли ц? числа перетворюються на пропорц??, ц? матриц? ?нод? називають таблицями надзвичайних ситуац?й.[11]Неправильно визначене до певного класу спостереження назива?ться помилково або нев?рно позитивним або ж нев?рно негативним, якщо спостереження не було назначено в?рному класу. За к?льк?стю таких спостережень роблять висновки про характер помилок та ?х визначен?сть. Для св?дчення про гарну роботу алгоритму та високе значення його точност?, необх?дна максимально можлива к?льк?сть спостережень на д?агонал? матриц? помилок. 1.4.2. Д?аграма Колмогорова-См?рноваДаний тест ? непараметричний тестом, який працю? з двома розпод?лами, характеристики одного з яких ? в?домими, а ?нший розпод?л – спостережуваний. Займа?ться тим, що пор?вню? ваш розпод?л даних уже з в?домим розпод?лом. Част?ше всього, у якост? даного в?домого розпод?лу виступа? нормальний розпод?л(Гаус?вський). Таким чином, тест Колмогорова-См?рнова ? тестом на нормальн?сть. Застосову?ться при анал?з? в?дхилень. Може бути застосовуваним при оц?нц? розпод?лу ознак навчально? виб?рки, залишк?в регрес?й, помилок, власних значень тощо. Б?льш конкретно, тест пор?вню? в?домий г?потетичний розпод?л ймов?рностей (наприклад, нормальний розпод?л) з розпод?лом, створеним вашими даними, - емп?ричною функц??ю розпод?лу. Тест Л?лл?форса, виправлена ??верс?я тесту K-S на нормальн?сть, як правило, да? б?льш точне наближення розпод?лу тестово? статистики. Насправд?, багато статистичних пакет?в (як SPSS) по?днують ц? два тести як K-S-тест "виправлено Lilliefors".[12]1.4.3. Критерий х?-квадратОдин ?з найпоширен?ших статистичних метод?в, що використовуються для перев?рки правильност? г?потез. Явля?ться параметричним методом оц?нки.Кажуть, що виб?рковий розпод?л статистичного тесту ? розпод?лом х?-квадрат, коли нульова г?потеза правильна, або ?нш? г?потези, при яких прийма?ться достатньо великий та асимптотично наближений розпод?л, близький до розпод?лу х?-квадрат .[12]?сну? два типи х?-квадратних тест?в. Обидва використовують статистику чи-квадрат ? розпод?л для р?зних ц?лей.Тест придатност? х?-квадрат ма? на мет? визначити чи в?дпов?дають обран? дан? початков?й популяц??. Наступний тест визнача? наявн?сть чи в?дсутн?сть вза?мозв’язку зм?нних, тобто, в ц?лому, чи мають дан? категор?альн? зм?нн? сп?льний розпод?л. Мала статистика даного тесту показу?, що спостережуван? дан? гарно в?дпов?дають прогнозованим значенням, а отже в?дпов?дно була сформована певна залежн?сть. Навпаки, велике значення статистики буде вказувати на слабку або в?дсутню залежн?сть ? не в?дпов?дн?сть даних.Статистика х?-квадрат використову?ться як метод зображення залежност? м?ж двома категор?альними зм?нними. В ц?лому, використову?ться для зображення та пояснення вза?мозв’язк?в м?ж даними та сили дано? залежност?.[13]При використанн? статистики х?-квадрат ?сну? дек?лька вар?ант?в тако? реал?зац??. Виб?р залежить в?д типу даних, ?х к?лькост?, виду та ?нших характеристик. Саме анал?з використовуваних даних та типу отриманих результат?в дозволя? обирати необх?дний.1.4.4. Крива ROCКрива ROC - це граф?к, який зобража? ефективн?сть б?нарно? системи класиф?катор?в. ROC-анал?з покликаний оц?нити та побудувати граф?чне в?дображення якост? роботи отримано? системи класиф?катор?в ? вибору дискрим?нац?йного порогу для под?лу клас?в. В основ? методу лежить побудова ROC-криво? (ROC - receiver operating characteristic - робоча характеристика приймача) - граф?чного представлення залежност? двох величин: чутливост? ? специф?чност?.[11]Таким чином, ROC-крива в?добража? зв'язок м?ж ймов?рн?стю помилково-позитивно? класиф?кац?? ? ймов?рн?стю ?стинно-позитивно? класиф?кац??. З ростом чутливост? зроста? над?йн?сть розп?знавання позитивних спостережень (знижу?ться ймов?рн?сть "пропуску ц?л?"), але при цьому зроста? ймов?рн?сть помилково? позитивно? класиф?кац?? вибраного об’?кта. В ц?лому, дана крива слугу? гарним граф?чним методом анал?зу, а коеф?ц??нт площ? п?д кривою використову?ться для к?льк?сно? оц?нки модел?. 1.4.5. Посилення та п?дйом д?аграмиД?аграми посилення та п?дйому використовуються для оц?нки ефективност? класиф?кац?йно? модел?. Вони вим?рюють, наск?льки краще можна оч?кувати, що робити з прогнозною моделлю пор?внянням без модел?. Це дуже популярна метрика в маркетингов?й анал?тиц?. Це не лише маркетинговий анал?з. В?н може бути використаний ? в ?нших сферах, таких як моделювання ризик?в, анал?тика ланцюг?в поставок тощо. Це також допомага? знайти найкращу модель прогнозування серед дек?лькох моделей, що претендують на виклик. П?дйом - це м?ра ефективност? прогнозно? модел?, обчислено? як сп?вв?дношення м?ж результатами, отриманими з ? без прогнозно? модел?. Накопичувальний прир?ст та л?фтов? д?аграми ? наочними пос?бниками для вим?рювання продуктивност? модел?. Обидв? д?аграми складаються з криво? п?дйому та базово? л?н??.1.4.6. Кросс-вал?дац?яКросс-вал?дац?я – це метод оц?нки ефективност? модел?. Вона може бути застосовувана як для пор?вняльного, так ? одиничного анал?зу моделей.Говорячи широко, можна зазначити, що кросс-вал?дац?я ? придатною для визначення адекватност? модел? та ?х роботи на р?зних наборах даних, може слугувати для д?агностики явища перенавчання а також для покращення власне навчання. Переваги та недол?ки кросс-вал?дац?? заключаються в наступному:Помилка в процедур? кросс-вал?дац?? ? досить точною оц?нкою помилки на генеральн?й сукупност?;Реал?зац?я кросс-вал?дац?? потребу? велико? к?лькост? часу на повторюване n-ну к?льк?сть раз?в навчання алгоритм?в ? може бути застосовано лише для ?швидких? алгоритм?в машинного навчання.[15]Основна ?дея алгоритму кросс-вал?дац?? - перехресне розбиття на навчальну та тестову виб?рки багато раз?в. Таким чином, з’явля?ться можлив?сть роботи з тестовою виб?ркою, для наявн? в?дом? та правильн? результати роботи. 1.4.7. Root Mean Square ErrorRMSE - це часто використовуваний показник, необх?дний для обчислення корисност?. В?н визнача?ться як квадратний кор?нь абсолютного значення коеф?ц??нта кореляц?? м?ж справжн?ми значеннями та прогнозованими значеннями ? широко використову?ться користувачами Excel. Так як даний метод ? довол? простим для використання, це поясню? його поширен?сть та те, що ним часто зловживають при анал?з? ф?нансових даних та оц?нюванн? прогнозувань. Даний метод гарно п?дходить для роботи ?з прогнозованими числовими значеннями, для роботи ?з часовими рядами та р?зними задачам, де необх?дн? параметри можуть передаватися в числовому вар?ант?. Також часто використову?ться в економ?ц?, при робот? ?з кредитним скорингом. При анал?з? р?зних економ?чних показник?в важливо розум?ти, чому ? наск?льки в?дхиля?ться задане значення, з чим допомага? RMSE.[11]RMSE показу? в?дхилення координат в?д положення норми, тим самим даючи представлення розпод?л розкиду помилок в?дхилення. Цей метод оц?нок ? довол? простим, тому може бути застосований нав?ть для довол? нескладних задач ? не ма? специф?чних вимог для його використання.Постановка задач?Як бачимо, в сфер? медицини та здоров’я велику увагу прид?ля?ться завданням д?агностики та прогнозування значень. Задача класиф?кац?? р?зних захворювань да? можлив?сть у майбутньому створення автономних прилад?в, оснащених ун?версальними анал?заторами, в?дкриваючи фантастичн? перспективи перед досл?дниками.На сьогодн?шн?й день ?сну? велика к?льк?сть ?нновац?йних доробк?в. Одна ?з яких – IBM Watsons. Watson - це модель комп’ютера, який симулю? роботу природн?х б?олог?чних процес?в ?нтелекту займа?ться так званими "когн?тивними обчисленнями". Поки що Watsons залиша?ться в процес? пост?йного навчання - безл?ч ?нформац?? надходить, коригу?ться експертами та вклада?ться до системи, даючи можлив?сть алгоритму отримувати знання та формувати онтолог??. [16]Проте попри все ?сну? безл?ч перешкод, що не дозволяють ефективно розпоряджатися ресурсами, проводити нов? досл?дження та зб?льшувати ефективн?сть в?домих метод?в. Багато з них стосу?ться проблем, пов'язаних з малою над?йн?стю та р?дк?стю медичних даних. ?сну? ц?ла виб?рка р?зних метод?в анал?зу, як? були розглянут? вище. Проте перед нами ставляться задач? кластеризац?? та прогнозування, яка поляга? у визначенн? р?вня ?ндексу маси т?ла людини та його абсолютного значення. Класиф?кац?я буде в?дбуватися шляхом попереднього перетворення неперервно розпод?лено? величини, що характеризу? ?МТ до дискретно? та в?днесення на основ? значень характеристик харчово? повед?нки людини, що була приведена в датасет? American Time Use Survey (ATUS) Eating & Health Module Microdata Files. Також ставиться задача вибору необх?дних методик для анал?зу даних та створення робочих моделей класиф?кац?? та прогнозування.РОЗД?Л 2 ВИБ?Р МЕТОД?В ПРОГНОЗУВАННЯВиб?р метод?в машинного навчання для створення моделей прогнозуванняПравильний п?дб?р метод?в машинного навчання, як? будуть використовуватися згодом для роботи з моделлю – в?дпов?дальний крок, до якого варто п?дходити ретельно та зважено. Оск?льки р?зн? модел? можуть працювати з р?зними типами даних, необх?дно враховувати це при вибор? нашо? модел?. Так як отриман? дан? мають числов? значення ц?льово? зм?нно?, то було обрано нейронну мережу, ансамблеву модель ?випадковий л?с? та лог?стичну регрес?ю, що класично застосову?ться для вир?шення таких задач.Багатошарова штучна нейронна мережаНейронна мережа ? одним ?з класичних метод?в, що використовуються при робот? з великою к?льк?стю задач, в особливост? – з задачами прогнозування та класиф?кац??. Для подач? на вх?д використовуються числов? або перетворен? дан?, з яких було попередньо в?д?брано признаки. Так як ми на даний момент уже ма?мо вибраний сформований датасет, де необх?дна нам ?нформац?я уже представлена у вигляд? числових зм?нних, то виб?р нейронно? мереж? як одн??? з можливих способ?в прогнозування вигляда? довол? однозначним. Дана модель характеризу?ться довол? непоганою точн?стю на правильно п?д?браних даних, тому ? застосову?ться при глибинному машинному навчанн?, яке на сьогодн?шн?й день покликане вир?шувати одн? ?з найскладн?ших математичних задач. Нейронна мережа – це сукупн?сть нейрон?в, як? пов’язан? м?ж собою. У природ? та б?олог?? под?бн? зв’язки реал?зуються за допомогою синапс?в – окремих в?дростк?в нейрон?в – та укладен? в складну та нелог?чну арх?тектуру. В методах штучного ?нтелекту застосовуються ?накш? способи зв’язку та ч?тко окреслен? арх?тектури – прямо- та повно- зв’язн?, згортков? тощо. За допомогою розроблено? складно? структури у нейронно? мереж? з’явля?ться можлив?сть до анал?зу та запам’ятовування ?нформац??, що нада? можлив?сть покращити ?? роботу, збер?гати результати та проводити пор?вняння через покол?ння.Для розв’язання поточно? задач? плану?ться скористатися багатошаровою нейронною мережею, визначивши дан?, що подаються на вх?д та необх?дну функц?ю активац??. Багатошаровими називаються нейронн? мереж?, в яких нейрони згрупован? в шари. При цьому кожен нейрон попереднього шару пов'язаний з ус?ма нейронами наступного шару, а всередин? шар?в зв'язку м?ж нейронами в?дсутн?.[17] Шари нумеруються зл?ва направо. Перший шар традиц?йно називають вх?дним або розпод?льними. Основною функц??ю вх?дного шару ? розпод?л ознак ?з вектору вх?дних даних та первинна ?н?ц?ал?зац?я мереж?. Тобто вх?дний шар ? дуже важливим та в?д його роботи та характеристик залежить подальша робота мереж?. Прихованими вони називаються з то? причини, що ?х входи ? виходи ? нев?домими для зовн?шн?х по в?дношенню до нейронно? мереж? програмами та для власне самого користувача.Для того щоб мережа могла називатися багатошаровою, потр?бно щоби вона мала б?льше трьох шар?в. Традиц?йно нейронн? мереж? мають близько семи-дванадцяти шар?в, п?сля чого може починати з'являтися явище перенавчання. Ц?каво зауважити, що при вид? машинного навчання за допомогою нейронних мереж завжди спостер?га?ться явища спочатку стр?мкого зростання точност? роботи з ростом к?лькост? шар?в, а пот?м – стр?мке пад?ння п?сля переходу певного п?ку.Для навчання багатошарових нейронних мереж нараз? використову?ться навчання з учителем. Найб?льш популярним алгоритмом навчання для них ? алгоритм зворотного поширення помилки та р?зновиди даного алгоритму. На даний час багатошарова арх?тектура нейронних мереж набула високо? популярност? та ? добре розробленою програм?стами та математиками, багато програмних модул?в одна знайти у в?льному доступ?, як от TenzorFlow, Scikit-learn та ?нш?. Багатошарова нейронна мережа може моделювати функц?ю практично будь-якого ступеня складност?, причому число шар?в ? число нейрон?в в кожному шар? визначають складн?сть функц??.Алгоритм зворотного поширення помилки – це в?домий алгоритм навчання плоскошарових нейронних мереж прямого поширення (багатошарових персептрон?в). В?дноситься до метод?в навчання з учителем, тому вимага?, щоб в навчальних прикладах були в?дом? задан? ц?льов? значення. Алгоритм ? ?теративним ? використову? принцип навчання ?по кроках? (навчання в режим? on-line), коли ваги нейрон?в мереж? коригуються п?сля подач? на ?? вх?д одного навчального прикладу. [8]Алгоритм дозволя? коректувати мережу, використовуючи ?? недол?ки, проте ма? вагомий м?нус – ефект накопичення помилки, який призводить до пог?ршення результат?в та пониження точност? роботи модел?. Ефект накопичення помилки можна назвати одним ?з основних м?нус?в нейронно? мереж? як модел? машинного навчання.На кожн?й ?терац?? в?дбува?ться два проходи мереж? - прямий ? зворотний. На прямому вх?дний вектор поширю?ться в?д вход?в мереж? до ?? виход?в ? форму? певний вих?дний вектор, що в?дпов?да? поточному (фактичного) стану ваг. Пот?м обчислю?ться помилка нейронно? мереж? як р?зниця м?ж фактичним ? ц?льовим значеннями. На зворотному проход? ця помилка поширю?ться в?д виходу мереж? до ?? вход?в, ? проводиться корекц?я ваг нейрон?в.На даний момент ?сну? багато способ?в розбиття даних для подач? на вх?д. В випадку з особливостями будови персептрон?в нейронно? мереж?, дан? мають бути числовими або ж ?хн? представлення ма? бути перетворене на числове. Так як ми плану?мо працювати ?з даними, що уже мають дискретне числове представлення, то дана модель п?дходить для нас. Плану?ться працювати з будовою нейронно? мереж? та ?? арх?тектурою та п?д?брати оптимальну модель для задач? визначення р?вня ?МТ людини. При цьому плануються експерименти з? способом первично? ?н?ц?ал?зац?? ваг?в модел?, вибору арх?тектури мереж? та розпод?лу даних на тестов? та навчальн?.2.1.2. Випадковий л?сАнсамблева модель ?випадковий л?с? б?льш в?дома сво?ю ун?версальн?стю. Так, дерева р?шень ? майже невимогливими до типу та розпод?лу даних, можуть використовуватися для задач класиф?кац?? та регрес??. У даному випадку, ми ма?мо завдання класиф?кац?? та прогнозування. Отже, уже можемо працювати з даним методом.При робот? з ансамблем ?випадковий л?с? налаштовуваними парметрами ? глибина дерева, к?льк?сть дерев, виб?р точност? дано? модел?. Попри купу незаперечних плюс?в дано? модел? та ?? ун?версальн?сть при використанн? у задачах класиф?кац??, вона бува? дуже чутливою до перенавчання. Тому варто контролювати перечислен? вище параметри та намагатися настроювати ?х так, щоби система переходила до оптимального результату. Таким чином бачимо, що методи оц?нки моделей також можуть активно застосовуватися при налаштуванн? параметр?в модел? та вибору кращих значень.В основ? ансамблевого методу лежить принцип бегг?нгу та метод випадкових п?дпростор?в. Ц? два принципи дозволяють використовувати N-ну к?льк?сть одиничних дерев р?шень для пошуку б?льш оптимальних р?шень. Основна ?дея поляга? в тому, що одиничне дерево може давати довол? поганий результат анал?зу, в той час як ?х ансамбль дозволя? покращити прогнозоване значення. За допомогою використання принципу бегг?нгу, при використанн? даних ансамблево? модел? зменшу?ться дисперс?я, знижу?ться ймов?рн?сть перенавчання даного алгоритму. Сам бегг?нг ? принципом усереднення модел?, що ? лежить в основ? принципу власне ансамблю моделей.[18]Основним недол?ком даного методу ? його великий обсяг. Складн?сть даного алгоритму становить О(К), де К – це к?льк?сть дерев. Тому бачимо, що даний алгоритм потребу? велико? обчислювально? потужност?. З ?ншого боку, сл?д згадати про його переваги, серед яких:Можлив?сть ефективно? роботи для даних, що м?стять великий обсяг та детал?зац?ю, нел?н?йн?сть, складну орган?зац?ю, корельован?сть;Низька чутлив?сть до перетворення даних(корисно у випадку, коли дан? складно перетворити чи в?дкорегувати);Ефективно обробляють вс? типи даних(дискретн? та к?льк?сн?), мають можлив?сть працювати з невал?дними, пропущеними або зашумленими даними;Використовують принцип паралельно? обробки ?нформац??, через що мають б?льшу швидк?сть навчання.Виходячи з проанал?зованого нами попередньо датасету, ма?мо висновок, що деяк? дан? в ньому розпод?лено як дискретним, так ? неперервним чином. Тому виб?р саме тако? ансамблево? модел? зможе задовольнити наш? потреби. Також сл?д зауважити, що дана модель, як було описано вище, добре п?дходить для оц?нювання значущост? окремих ознак, що дасть змогу оц?нити важлив?сть певних характеристик харчових звичок людини та силу ?х впливу на р?вень ?ндексу маси т?ла. Також важливим параметром ? можлив?сть працювати з пропущеними значеннями, що скорочу? роботу при первинн?й п?дготовц? даних. Також вище було акцентовано увагу на тому, що випадковий л?с не ? чутливим до масштабування, тому при робот? з даною моделлю можна пропустити крок нормал?зац??, який дозволя? приводити дан? до одного д?апазону. З вищесказаного можна зробити висновок, що ансамблева модель бачиться чи не одним ?з оптимальних вар?ант?в для задач класиф?кац??, проте, завжди сл?д зауважувати що ?з точн?стю зроста? ?? складн?сть, так як б?льша к?льк?сть одиничних дерев потребу? б?льше пам'ят? та в деяких випадках може призводити до ефекту перенавчання.2.1.3. Лог?стична регрес?яЛог?стична регрес?я як метод машинного навчання також ? довол? вживаною саме для задач класиф?кац?? у медичн?й сфер? та застосову?ться для визначення наявност? д?агнозу та значимост? тих чи ?нших параметр?в. ?дея лог?стично? регрес?? поляга? у розд?ленн? певно? област? значень на в?дпов?дн? класам област?(площини чи г?перплощини, в залежност? в?д вим?рност? само? регрес??). Також лог?стична регрес?я ? ймов?рн?сним алгоритмом та оперу? ймов?рностями потрапляння того чи ?ншого об’?кту до визначеного класу. Лог?стична регрес?я назива?ться так через функц?ю, яку вона використову?. Сигмо?дна функц?я, яку ще називають лог?стичною, визнача? дану регрес?ю. Початково дана функц?я була розроблена знавцями у област? статистики для характеризування поводження росту популяц?? в б?олог?? та еколог??. Дана функц?я зада?ться на замкненому в?др?зку в?д 0 до 1 та явля?ться нел?н?йною, за характером вигину нагадуючи л?теру S. Лог?стична регрес?я - корисний класичний ?нструмент для вир?шення завдання регрес?? ? класиф?кац??, який активно використовуються для побудови моделей в медицин? ? проведення кл?н?чних досл?джень. Лог?стичну регрес?ю можна представити у вигляд? одношарово? нейронно? мереж? з сигмо?дною функц??ю активац??, ваги яко? ? коеф?ц??нти лог?стично? регрес??, а вага поляризац?? - константа регрес?йного р?вняння. Одношарова нейронна мережа може займатися вир?шенням питання лог?стично? сепарац??. Тому можливост? по моделюванню нел?н?йних залежностей у лог?стичн?й регрес?? в?дсутн?. Однак для оц?нки якост? модел? лог?стично? регрес?? ?сну? ефективний ?нструмент ROC-анал?зу, що ? безсумн?вним ?? перевагою. Для розрахунку коеф?ц??нт?в лог?стично? регрес?? можна застосовувати будь-як? град??нтн? методи: метод сполучених град??нт?в, методи зм?нно? метрики ? ?нш?.[19]При робот? з проблемою лог?стично? регрес?? ми займа?мося налаштуванням та п?дгонкою в?дпов?дних параметр?в, а отже ? нашо? прямо?( г?перповерхност? у випадку багатом?рност?, площини – у випадку двох незалежних зм?нних). При робот? з даною лог?т-регрес??ю ми потребу?мо некорельованост? та нормального розпод?лу помилок нашо? класиф?кац??. Також р?вняння, що буде п?дганятися п?д нашу поверхню, вже не матиме такого простого вигляду. Як результат, ми уже не можимо говорити про використання тих же метод?в та прийом?в, що використовуються для звичайних л?н?йних задач. Наприклад, не найкращим вибором при робот? з лог?стичною регрес??ю будемо вважати метод найменших квадрат?в, який вважа?ться однозначним вибором для роботи. Також л?н?йн? методи ? поганим р?шенням для роботи з великою к?льк?стю предиктор?в. Отже, як результат, для вир?шення завдань за допомогою лог?стично? регрес?? сл?д використовувати функц?ю максимально? правдопод?бност?. Таким чином, оц?нка коеф?ц??нт?в регресйного р?вняння зводиться до максим?зац?? ймов?рност? появи то? чи ?ншо? виб?рки(при попередньо визначених значеннях конкретно? модел?). Як результат, довол? часто спостер?га?ться низький в?дсоток коректно? та правильно? класиф?кац??.Як бачимо, лог?стична регрес?я ? добре застосовувана для оц?нки ймов?рностей потрапляння елементу до того чи ?ншого класу, а отже може бути застосована нами для вир?шення поставлено? задач?. Також лог?стична регрес?я да? можлив?сть оц?нити значення параметр?в та отримати ?нформац?ю щодо ?хньо? значущост?, що також виступа? важливим критер??м вибору саме цього методу машинного навчання для роботи з прогнозування р?вня ?МТ та визначенням залежностей м?ж ним та характеристиками харчових та повсякденних звичок людей.Для роботи з нею дан? потребують перетворення, що призведе ?х до необх?дного стану, так званого лог?т-перетворення, проте це дозволить покращити модель та оптим?зувати ?? показники. Лог?стична регрес?? також явля?ться поширеним методом анал?зу у сферах медично? д?агностики та здоров’я людини.2.3.4 Л?н?йна регрес?я Л?н?йна регрес?я - це основний ? широко використовуваний тип прогнозного анал?зу. Загальна ?дея регрес?? поляга? в тому, щоб досл?дити дв? реч?: перше - чи добре наб?р зм?нних пров?сника справля?ться з прогнозуванням результатно? (залежно?) зм?нно?, друге, як? зм?нн?, зокрема, ? значущими прогнозами зм?нно? результату, ? яким чином вони - позначаються величиною та ознакою бета-оц?нки - впливають на зм?нну результату. Ц? регрес?йн? оц?нки використовуються для пояснення зв'язку м?ж одн??ю залежною зм?нною та одн??ю або к?лькома незалежними зм?нними.У випадку, коли ми ма?мо залежн?сть ц?льово? зм?нно? в?д дек?лькох параметр?в Х?, можемо говорити про множинну л?н?йну регрес?ю. Множинна л?н?йна регрес?я визнача?ться р?внянням виду Y=a+b1?X1+b2?X2+...+bn?Xn (2.1)де Х - це наш? параметри, а a -це константа р?вняння.Задача л?н?йно? регрес?? поляга? у тому, щоб п?д?брати саме так? параметри, як? б дозволяли використовувати дане р?вняння для побудови прогнозу ц?льово? зм?нно?. Для визначення параметр?в даного складеного р?вняння використову?ться метод найменших квадрат?в. Тобто ми будемо працювати з параметризованою моделлю та намагатися знайти саме ту модель, яка дозволила б отримувати найб?льш точн? прогнози. Л?н?йная регрес?я використову? для оптим?зац?? метод найменших квадрат?в. Власне л?н?йна регрес?я ма? певн? складнощ? при робот? з нел?н?йними та даними, що мають багато внутр?шн?х залежностей. Так звана проблема мультикол?неарност? гостро ста? при робот? з л?н?йною регрес??ю та не дозволя? е?ективно використовувати дану модель.2.3.5 Ridge регрес?я Ridge регрес?я або метод регуляризац?? Тихонова застосову?ться для боротьби з мультикол?неарн?стю, тобто залежн?стю одних зм?нних в?д ?нших. Використову?ться для вир?шення некоректно поставлених задач видуAx=u(2.2) Даний вид регрес?? розробив та описав Тихонов у 1965 роц?, саме тому гребенева регрес?я також назива?ться регуляризац??ю Тихонова. У сво?й робот? використову? оператор регуляризац?? R, який допомага? вир?шувати питання неч?ткост?. Даний прийом застосову?ться, якщо матриця ознак(л?н?йних р?внянь) близька до вироджено?, як результат можна говорити про л?н?йну залежн?сть вектор?в один в?д одного. Для вир?шення дано? проблеми використову?ться регуляризац?я ?з застосуванням L2 норми. Даний вид регрес?? використову? нормування для зменшення залежностей та пониження розм?рност? даних. Гребенева регрес?я широко застосову?ться при робот? з даними, як? проводять детальний опис певно? предметно? област?. 2.2 Виб?р метод?в попередньо? п?дготовки даних для кожно? ?з моделейОдним ?з основних завдань про побудов? моделей навчання, було ? залиша?ться правильний зб?р та обробка даних. На сьогодн?шн?й день близько 80% часу витрача?ться лише на зб?р в?дпов?дно? ?нформац??, а також ?? нормал?зац?я та приведення до нормального вигляду. У медичн?й сфер? наявна велика к?льк?сть проблем, пов'язаних саме з? збором та правильною обробкою наявних даних.[20]Нормал?зац?я - це процедура попередньо? обробки вх?дних даних (навчальних, тестових ? робочих множин), при як?й значення ознак, що утворюють вх?дний вектор, приводяться до деякого заданому д?апазону.[21]?сну? безл?ч способ?в нормал?зац?? значень ознак. До числа найб?льш популярних в?дносяться десяткове масштабування, м?н?максна нормал?зац?я, нормал?зац?я стандартним в?дхиленням ? ?н. Тому для кращого представлення даних, було обрано метод нормал?зац?? за допомогою м?н?максного критер?ю, який дозволить привести дан? до ?нтервалу [0...1]. Для роботи ?з нашою виб?ркою даних було обрано метод м?н?максно? нормал?зац?? даних, що дозволить ефективно зменшити розкид значень та зменшити обчислювальну складн?сть при в?дом?й точност? бажаних обчислень. Для в?дкидання даних, що не несуть п?д собою вагомо? ?нформац??, використову?ться техн?ка в?дбору за значенням середньоквадратичного в?дхилу. Дисперс?я(середньоквадратичне в?дхилення) характеризу? розкид даних та ?х ?нформативн?сть, що дозволя? судити про те, чи буде певний признак ?нформативним чи н?. ?нту?тивно зрозум?ло, що при низьк?й дисперс?? матимемо константне значення, яке не буде мати для нас роль при вибор? параметр?в для нашо? модел?. Тому необх?дно задуматися про те, щоб виокремити саме т? показники, як? дозволять п?двищити ?нформативн?сть модел?. Таку техн?ку необх?дно застосовувати з певною обережн?стю, так як для того, щоб була можлив?сть нею скористатися, потр?бна попередня перев?рка на нормальн?сть розпод?лення значень, тобто показники параметр?в були розпод?лен? за гаус?вським законом. Для цього необх?дно провести анал?з наявних показник?в та визначити ?х законом?рност?.Даний принцип ? одн??ю ?з техн?к вибору ознак, що застосову? статистичний п?дх?д та керу?ться визначеннями дисперс?? ? огляда? нашу ?нформац?йну виб?рку на предмет елемент?в, як? можуть нести достатньо мало ?нформац?? для того, щоб бути виключеними з не?.?ншим вар?антом в?дбору ознак можна вважати класичний переб?р, який на даний момент явля?ться одним ?з самих над?йних, хоча ? не найб?льш оптимальних з точки зору ресурс?в часу та пам`ят?. [21] Така проста техн?ка забезпечу? можлив?сть з? стов?дсотковою ?мов?рн?стю оц?нити ?нформативн?сть кожного ?з ознак.Для роботи з в?дбором кращих ознак(feature selection) пропону?ться використовувати так званий F-тест або ж тест за критер??м Ф?шера. Дана методика поляга? в тому, що дисперс?ю, розд?лену на в?домий ступ?нь свободи, пор?внюють з необх?дним критичним значенням. Сам F-тест виступа? критер??м, з якою пор?внюються ?нш? результати. За допомогою даного тесту ? можлив?сть побудувати ряд оц?нок для кожного признаку та в?дпов?дно до значень отриманих результат?в уже обирати кращ? результати. Даний тест можна вважати ун?версальним, адже його застосовують як для к?льк?стних, так ? для категор?альних зм?нних, що дозволя? проводити анал?з для будь-яких даних та для будь-яких моделей. Можлив?сть отримувати ?нформац?ю щодо якост? параметр?в надають також ? сам? модел?, так як регрес?я, де неяк?сн? показники можуть бути не включеними до не?. При робот? з нейромережами нейрони, що показують поган? результати, в?дмирають, а в?дпов?дно – не можуть мати будь-якого значення для уже к?нцевого вар?анту модел?.Також застосову?ться метод головних компонент для в?дбору кращих ознак, боротьби з багатом?рн?стю та залежн?стю одних зм?нних в?д ?нших. Використання б?бл?отек та програмних засоб?в PythonДля легко? та ефективно? роботи з даними та математичними моделями, завжди сл?д прид?ляти увагу тому, як? саме програмн? засоби сл?д обрати. На сьогодн?шн?й день ми волод??мо в?льним доступом до велико? к?лькост? математичних модулей, написаних на р?зних мовах програмування. Серед них можна згадати так? мови як C++, Python,R, Java, C# та ?нш?. Безумовно, сл?д враховувати вид поставлено? задач? та п?д?брати в?дпов?дн? мови та доробки. Серед анал?тик?в, та людей, що займаються власне машинним навчанням, перевага традиц?йно нада?ться мовам R та Python, що характеризуються сво?ми б?льш простими будовами, ?нту?тивною зрозум?л?лстю, а також можлив?стю використовувати уже наявн? математичн? б?бл?отеки, як? спрощують час розробки програмного продукту.Було обрано мову Python, що дозволя? легко та швидко створювати програмн? продукти, ма? широкий ?нструментар?й та дозволя? вибирати серед багатьох альтернатив. Також мова програмування ? кросс-платформною, що сутт?во полегшу? роботу з нею. Кросс-платформн?сть дозволя? створювати такий програмний продукт, що не потребу? особливого середовища та да? можлив?сть запускати як програмн?, так ? комп?льован? файли.Python - широко використовувана мова програмування високого р?вня загального призначення. В?н був створений Г?до ван Россумом у 1991 роц? ? дал? розвинувся програмним фондом Python. В?н був розроблений з акцентом на читабельн?сть коду, а його синтаксис дозволя? програм?стам висловлювати сво? концепц?? в менш?й к?лькост? рядк?в коду. Python - це мова програмування, яка дозволя? швидко працювати та ефективн?ше ?нтегрувати системи. ? дв? основн? верс?? Python: Python 2 та Python 3. Обидв? досить р?зн?.[22]Нижче перейдемо до б?льш детального огляду обраних програмних б?бл?отек, що написан? на мов? Python.2.3.1 Scikit-learnДуже важливо мати можлив?сть скористатися готовим програмним рвшенням для створення модел?, так як часто недосконал?сть досл?дника як програм?ста ста? на завад? швидкого та адекватного програмування математичних моделей, що гарантовано призводить до проблем з роботою та ефективн?стю самих моделей. Scikit-learn – це класична б?бл?отека, яка пропону? р?зну к?льк?сть метод?в класичного машинного навчання з учителем та без. До ?? складу входять як л?н?йн? та нел?н?йн? методи, так ? нейронн? мереж?, дерева р?шень, ансамблев? модел?, а також методи, що допомагають розв'язувати задач? класиф?кац?? (прогноз ознаки, безл?ч допустимих значень якого обмежена) ? регрес?? (прогноз ознаки з речовими значеннями), а також для задач навчання без учителя: кластеризац?? (розбиття даних по класах, як? модель визначить сама), зниження розм?рност? (подання даних в простор? меншою розм?рност? з м?н?мальними втратами корисно? ?нформац??) ? детектування аномал?й. Для роботи з обраними моделями, а саме нейронною мережею та ансамблем дерев, плану?ться скористатися саме б?бл?отекою Scikit-learn.Дана б?бл?отека також дозволя? мати доступ до налаштування параметр?в використовуваних моделей навчання, що робить ?? оптимальним вибором для досл?джень. Високий р?вень керованост?, можлив?сть як скористатися готовими р?шеннями, так ? п?д?брати власн?, робить Scikit-learn оптимальним вибором. Вона також ма? в?льну л?ценз?ю, що дозволя? безперешкодно застосовувати модуль у досл?дженнях.2.3.2 PandasНа сьогодн?шн?й день, Pandas ? одн??ю з найпопулярн?ших моделей даних, що дозволяють роботу з? складними структурами. Сама б?бл?отека ? надбудовою над б?бл?отекою Numpy, яка ? ?нструментом нижчого р?вня. Pandas використову?ться також для роботи з часовими рядам ? ма? змогу представляти вс? дан? у вигляд? фрейм?в, що спрощу? попередн?й ?нту?тивний анал?з, да? змогу краще проводити граф?чний анал?з за допомогою ?нших б?бл?отек та м?стить можливост? для сум?сно? роботи з ними.Основна область застосування - забезпечення роботи в рамках середовища Python не т?льки для збору ? очищення даних, але для задач анал?зу та моделювання даних, без перемикання на б?льш специф?чн? для мови (так?, як R ? Octave).Також активно ведеться робота по реал?зац?? ?р?дних? категор?альних тип?в даних. Пакет перш за все призначений для очищення ? первинно? оц?нки даних за загальними показниками, наприклад середн?м значенням, квантиль ? так дал?; статистичними пакетом в?н в повному розум?нн? не ?, однак набори даних тип?в DataFrame ? Series застосовуються в якост? вх?дних в б?льшост? модул?в анал?зу даних ? машинного навчання (SciPy, Scikit-Learn та ?нших).[23]Як бачимо, даний пакет нада? необх?дн? для препроцесингу даних ?нструменти. Адже неочищен? та зашумован? дан? будуть призводити до неправильно? або значно пог?ршено? роботи модел?. Для адекватних отриманих результат?в завжди необх?дно мати гарн? вх?дн? дан?, що формували б навчальну та тестову виб?рку. Саме тому виб?р даного програмного пакету ? важливим для роботи з досл?дженнями, пов“язаними з анал?зом ?нформац??. Даний пакет застосову?ться для вир?шення задач в р?зних областях, таких як медицина, економ?ка, комп'ютерне бачення тощо.Важливим зауваженням ? той факт, що дана б?бл?отека нада? можлив?сть користуватися ?? власним модулем для роботи з файлами формату CSV та JSON, як? на сьогодн?шн?й день являються одними з основних формат?в збер?гання даних. Тому можлив?сть напряму працювати з даними форматами та наявн?сть в?дпов?дних парсер?в також була одним ?з критер??в вибору даного програмного продукту.2.3.3 NumPyДля обробки математичних даних р?зного категор?? та тип?в даних, сл?д мати потужну б?бл?отеку, яка дозволяла б проводити математичн? операц?? р?зного роду. Саме для таких тип?в задач призначена б?бл?отека NumPy. ?? математичн? модул? дозволяють проводити р?зного роду математичн? д??, опервути р?зними типами даних. Б?бл?отека NumPy нада? реал?зац?? чисельних метод?в та р?зного роду алгоритм?в та моделей (у вигляд? вбудованих клас?в, функц?й, метод?в тощо), п?длаштован? для роботи з багатовим?рними масивами даних та специф?чними видами збереження(р?знотипн? масиви, фрейми, списки, ?нше). Можна говорити про таку ж ефективн?сть роботи та р?вень достатньо? оптим?зац??, як ? у програми MATLAB, котра признана одним ?з найкращих додатк?в для роботи з арифметичними обчисленнями.2.3.4 SeabornБ?бл?отека Seaborn - це одна ?з багатьох в?льно доступних б?бл?отек, що написана мовою програмування Python та явля?ться модулем, що дозволя? створювати та побудувати граф?ки, д?аграми г?стограми тощо, тобто використову?ться для граф?чного представлення даних. При побудов? математичних моделей, машинному навчанн? та будь-якому вид? анал?зу коректне та зм?стовне представлення ма? велике значення, так як дозволя? ?нту?тивно вибрати кращ? показники, ряди даних, побачити загальн? тенденц?? та тренди, виявити помилки, шуми, пропущення тощо.В дан?й б?бл?отец? присутн? альтернативи для побудови складних граф?к?в та р?зного роду р?шень, а також можливост? в?зуал?зац?? даних таблиць кореляц??, розпод?л?в, регрес?й, в?дхилень тощо. Тобто, фактично, ми ма?мо вбудован? математичн? модул?. 2.3.5. MatplotlibMatplotlib - б?бл?отека на мов? програмування Python для в?зуал?зац?? даних двовим?рно? (2D) граф?ки (3D-граф?ка також п?дтриму?ться). Matplotlib ? потужною б?бл?отекою, що на сьогодн?шн?й день служить основами для багатьох ?нших. Як ? описана вище б?бл?отека Seaborn, Matplotlib використову?ться як потужнуй граф?чний ?нструмент та застосову?ться для первинного анал?зу даних. Функц??, що реал?зован? у даному доробку, можуть використовуватися роб?тниками та досл?дниками ?з р?зних галузей. Можлив?сть параметризувати та комб?нувати методи роботи дану б?бл?отеку гарним вибором для анал?зу даних та ?х коректно? та детально? в?зуал?зац??. В?домо, що його функц?? реал?зован? на б?льш низькому р?вн?, чим частина ?нших граф?чних модулей. Певн? задач?, виконуван? б?бл?отекою Seaborn, можуть бути реал?зован? ? на р?вн? б?бл?отеки Matplotlib. Виб?р метод?в оц?нки ефективност? моделейДля адекватно? роботи модел? необх?дно оц?нити ?? реальну результативн?сть та ефективн?сть. Для цього використовуються методи оц?нок моделей. При вибор? певного методу важливо пам'ятати, що кожен з них п?дходить для окремо вибраних моделей ? може бути не застосовуваним до дек?лькох одночасно. Тому для пор?вняльного анал?зу сл?д вибирати под?бн? модел?, або ж проводити б?льш загальн? оц?нювання, що уже не будуть включати в себе прямого пор?вняння.Розглянемо б?льш детально методи анал?зу та оц?нок моделей, що будуть використовуватися у дан?й робот? б?льш детально.2.4.1. Точн?сть, специф?чн?сть та чутлив?стьРозглянемо поняття в?рних позитивних та негативних запис?в, а також нев?рних позитивних запис?в. Таким чином, будемо мати можлив?сть в?дсл?дковувати одразу дек?лька вид?в помилково? та в?рно? класиф?кац??. Даний вид анал?зу допоможе нам у майбутньому визначити, як? саме помилки присутн?, що на них вплива? та яким чином ми можемо ?х виправити.Спочатку розглянемо базове поняття точност? або ж правильност? класиф?кац??. Точн?сть класиф?кац?? визнача?ться як сп?вв?дношення м?ж в?рними в?дпов?дями та загальною к?льк?стю в?дпов?дей. Будемо користуватися системою True positive, True negative, False positive, False negative та запишемо в?дпов?дн? формули. Accuracy = TP+TNTP+TN+FP+FN(2.3)Як бачимо, це да? нам змогу вц?лому визначити, наск?льки гарною ? наша класиф?кац?я. П?д чутлив?стю (Sе - sensitivity) б?нарно? модел? розум??ться частка ?стинно-позитивних класиф?кац?й в загальн?й к?лькост? позитивних спостережень (TPR – true-positive rate). Це ? частка правильно класиф?кованих позитивних спостережень.Отже, чим вище чутлив?сть, тим над?йн?ше класиф?катор розп?зна? позитивн? приклади. Це ? частка правильно класиф?кованих позитивних спостережень. Отже, чим вище чутлив?сть, тим над?йн?ше класиф?катор розп?зна? позитивн? приклади. П?д специф?чн?стю (Sp - specify) модел? розум??ться частка ?стинно-негативних класиф?кац?й в загальн?й к?лькост? негативних спостережень (TNR - true-negative rate). Таким чином, чим вище специф?чн?сть, тим над?йн?ше класиф?катор розп?зна? негативн? спостереження.2.4.2. ROC AUCТакож сл?д розглянути ROC-криву як один ?з можливих вибор?в.ROC-крива ? оц?нкою якост? роботи класиф?катор?в, зокрема б?нарних. Крива покликана надавати ?нформац?ю про те, наск?льки швидко буде зб?льшуватися частка в?рних ?стинних класиф?кац?й залежно ?з частиною нев?рних ?стинних класиф?кац?й. Таким чином, фактично, ми будемо говорити про чутлив?сть системи, для яко? матимемо показник дано? криво?. Лог?чно також, що характеристика буде мало?нформативною в тому випадку, якщо доля нев?рних класиф?кац?й буде припадати на негативн? спостереження.ROC крива для як?сно? модел? ма? велику площу п?д собою. В?дпов?дно, граф?к криво? для поганого класиф?катора залишатиме п?д собою дуже маленьку площу. ?деальна модель, яка н?коли не помиля?ться, досягатиме стов?дсотково? точност? моментально, але дана ситуац?я ? практично недосяжною, так як природн?, а не штучно сформульован? дан? мають спотворення та деформац??. Чим ближче крива на граф?ку, що зобража? ROC-криву до верхнього л?вого кута, тим вище передбачувана здатн?сть модел?. ? з ?ншого боку, навпаки, чим менше вигин криво? ? чим ближче вона розташована до д?агонально? прямо?, тим менш ефективна модель. Д?агональна л?н?я в?дпов?да? непридатному класиф?катору, тобто повн?й нерозр?зненост? двох клас?в. Лог?чно, що д?агональна крива в?дпов?да? поганому класиф?катору. [15] Посилаючись на працю “Beyond Accuracy, F-score and ROC” [15] , можна сказати що використання стандартних метод?в оц?нок ?нколи може бути не?нформативним для завдань медично? д?агностики ? в певних ситуац?х необх?дно запоб?гати до б?льш глибокого анал?зу та пошуку нестандартних р?шень. 2.4.3.RMSE та MSE MSE - це середня квадратична помилка. Даний показник в?дпов?да? середньому значенню квадрат?в помилок прогнозування. Таким чином, в?н показу? р?зницю м?ж фактичним та прогнозованим значенням ? виступа? функц??ю ризику, яка нада? ?нформац?ю про квадрат втрат. Нульове значення майже н?коли не досяга?ться , але модель з високою точн?стю роботи буде наближатися до нуля, хота однаково будуть залишатися не врахован? показники вх?дно? ?нформац??.MSE ? другим моментом помилки прогнозування. Отже, фактично, MSE буде мати в соб? ?нформац?ю про дисперс?ю та зсув помилок оц?нка(зсув характеризу? в?ддалення фактичного значення в?д середнього – мат. оч?кування, а дисперс?я – розкид значень). Грубо кажучи, MSE фактично явля? собою дисперс?ю помилки. Якщо брати квадратний кор?нь ?з середньоквадратичного в?дхилення, то на виход? будемо мати в?дхилення в?дхилення, яке називають RMSE. Root Mean Square Error, або ж стандартна помилка, це в?дстань м?ж двома точками.У раз? якщо мова йде про прив'язку даних, ? як точки м?ж якими вим?рю?ться в?дстань можуть виступати:Вх?дна та вих?дна точки – значення середньоквадратичного в?дхилення буде в?дступати показником помилки, що ? м?ж двома цими значеннями.Бажане положення прогнозовано? точки (точка визначена ??користувачем) ? результат прогнозування(точка визначена ??моделлю).Можуть визначатися в?дхилення для пол?ном?альних та аф?нних перетворень, р?зних категор?й та вид?в прогнозування абсолютних даних. Коли стандартизован? спостереження та прогнози використовуються як входи RMSE, ?сну? прямий вза?мозв'язок з коеф?ц??нтом кореляц??. Наприклад, якщо коеф?ц??нт кореляц?? дор?вню? 1, RMSE буде дор?вню? 0, оск?льки вс? точки лежать на л?н?? регрес?? (? тому помилки в?дсутн?).2.4.4. R-squaredR-квадрат (R2) - статистична м?ра, яка представля? частку дисперс?? для залежно? зм?нно?, що поясню?ться незалежною зм?нною або зм?нними в регрес?йн?й модел?. Якщо кореляц?я поясню? м?цн?сть зв’язку м?ж незалежною та залежною зм?нною, R-квадрат поясню?, в як?й м?р? дисперс?я одн??? зм?нно? поясню? дисперс?ю друго? зм?нно?. Отже, якщо R2 модел? становить 0,50, то приблизно половина спостережувано? зм?ни може бути пояснена введеннями модел?.При ?нвестуванн? R-квадрат, як правило, ?нтерпрету?ться як в?дсоток руху фонду чи ц?нного папера, що може бути пояснено рухами в ?ндекс?-ор??нтир?. Наприклад, R-квадрат для ц?нних папер?в з ф?ксованим доходом пор?вняно з ?ндексом обл?гац?й ?дентиф?ку? пропорц?ю руху ц?н у ц?н? ц?нних папер?в, передбачувану на основ? ц?нового руху ?ндексу. В?н також може бути в?домий як коеф?ц??нт визначення.R-squared явля?ться м?рою поясненост? модел? ? виража? частку пояснено? дисперс?? модел?. Чим ближче буде значення до одиниц?, тим сильн?шою буде залежн?сть ц?льово? зм?нно?. Тобто, фактично, показу? степ?нь визначеност?. Постановка завданняВ дан?й робот? ставиться задача визначити р?вень ?ндексу маси т?ла людини(?МТ). Як бачимо, у задачах, що стосуються сфери здоров'я та медицини, можна обрати низку ефективних метод?в, що дозволяють проводити як?сний анал?з, класиф?кац?ю та прогнозування даних. Також присутн?й ряд метод?в оц?нки ефективност? моделей, що обирався виходячи з типу задач?, виду ?? параметр?в та даних, як? будуть надходити до дано? модел?. Бачимо, що отримана задача б?нарно? класиф?кац?? може бути вир?шена за допомогою метод?в нейронно? мереж? з багатьма шарами, лог?стично? регрес?? та ансамблево? модел? ?випадковий л?с?, так само як ? завдання прогнозування.З огляду на описаний вище огляд р?зних метод?в прогнозування та анал?зу ?нформац??, приведено? аргументац?? щодо вибору того чи ?ншого методу, можна сказати, чи п?д?йшли до постановки завдання, що буде реал?зованим у наступних розд?лах дано? роботи. Визначаються наступн? кроки:- проведення декодування та огляду даних, що м?стять у датасет?;- попередня п?дготовка даних для роботи з ними;- програмна реал?зац?я задач? визначення ?МТ людини;- програмна реал?зац?я метод?в оц?нки ефективност? моделей;- анал?з отриманих результат?в за допомогою вибраних вище метод?в оц?нки параметр?в та виб?р кращо? ?з приведених моделей.П?дсумовуючи, можна сказати, що перед нами поставлена задача класиф?кац??, яка ма? за ц?ль визначити оптимальну модель для прогнозування значень р?вня ?ндекса маси т?ла людини. Для цього плану?ться використовувати обран? методи оц?нки нашо? системи, враховуючи вс? необх?дн? параметри та особливост? наших методик. Програмний продукт плану?ться п?дготувати у вигляд? програмного коду, що працював би в?дпов?дно до поставлено? задач? та надавав можлив?сть граф?чного в?дображення отриманих результат?в роботи.РОЗД?Л 3 ПРОГРАМНА РЕАЛ?ЗАЦ?Я ТА АНАЛ?З ОТРИМАНИХ РЕЗУЛЬТАТ?ВПопередня робота з даними та анал?з датасетуДля роботи з проблемою визначення ?ндексу маси т?ла було обрано датасет American Time Use Survey (ATUS) Data Dictionary: 2014-16 Eating & Health Module Data. Датасет ма? 37 зм?них показник?в(атрибут?в), чи? значення лежать у визначених межах норми.Ма?мо наступн? атрибути для кожного об’?кта:- ` TUCASEID` - код-специф?катор для кожного запису- `EEINCOME1` - Минулого м?сяця ваш загальний дох?д до сплати податк?в був б?льшим чи меншим (сума) на м?сяць?- `ERBMI` - ?ндекс маси т?ла- ` ERHHCH` - Зм?на в композиц?? м?ж CPS та ATUS- ` ERINCOME ` - Зв'язок м?ж порогом б?дност? та доходом- ` ERSPEMCH` - Зм?на статусу робочо? сили подружжя або неодруженого партнера або працевлаштування на повний або неповний робочий день м?ж CPS та ATUS- ` ERTPREAT` - Загальна к?льк?сть часу, проведеного за прийомом ?ж? та пиття (у хвилинах)- ` ERTSEAT` - Загальна к?льк?сть часу, проведеного за вторинним харчуванням(у хвилинах)- ` ETHGT` - Топкод для росту (EUHGT) - ` ETWGT` - Топкод для ваги (EUWGT)- ` EUDIETSODA` - Безалкогольн? напо?, що ви пили, були д??тичними чи звичайними чи ви вживали. - ` EUDRINK` - Не включаючи чисту воду, чи вживали ви вчора як?сь ?нш? напо?? - ` EUEAT` - Протягом минулого дня, чи вживали ви снеки чи закуски, в особливост? п?д час якихось занять?- ` EUEATSUM` - Чи приймали ви ?жу протягом занять?-` EUEDUR` - К?льк?сть часу, проведеного протягом вторинного харчування п?д час занять у хвилинах(за останню добу)- ` EUEDUR24` - Amount of time spent doing secondary eating during a given activity in minutes (last activity truncated at 24 hours) - ` EUEXERCISE` - Протягом останн?х 7 дн?в [кр?м вашо? звичайно? роботи, **] чи брали ви участь у будь-яких ф?зичних заняттях або вправах для ф?тнесу та здоров’я, таких як б?г, ?зда на велосипед?, тренування в тренажерному зал?, прогулянки на тренуваннях або заняття спортом ?- ` EUEXFREQ` - Як часто протягом останн?х семи дн?в ви приймали участь у них заняттях? - ` EUFASTFD`- Протягом останн?х семи дн?в, чи замовляли ви готову ?жу у ресторанах, магазинах м?сцях швидкого харчування тощо?- ` EUFASTFDFRQ` - Як часто за останн? с?м дн?в ви користувалися замовленням приготовно? ?ж??- ` EUFDSIT` - Яке з наведених тверджень найкраще опису? к?льк?сть ?ж?, з'?дено? вами за останн? 30 дн?в - достатньо , ?нод? недостатньо або часто недостатньо?- ` EUFFYDAY` - Чи замовляли ви ?жу в ресторанах, серв?сах швидкого приготування тощо ?жу вчора? - ` EUFINLWGT` - К?нцева вага за час участ? в опит? щодо харчування та ваги- ` EUGENHTH` - В ц?лому, ви оц?ню?те ваше ф?зичне здоров’я як дуже гарне, гарне, задов?льне чи погане? - ` EUGROSHP` - Чи ви ? т??ю людиною, що зазвичай викону? покупку продукт?в у сво?й с?м’??- ` EUHGT` - Який ваш зр?з без взуття?(у дюймах)- ` EUINCLVL` - Визнача? як? значення EUINCOME1 чи EUINCOME2 було взято- ` EUINCOME2` - Минулого м?сяця ваш загальний дох?д до сплати податк?в був б?льшим або меншим, н?ж (сума) на м?сяць?- `EUMEAT` - Протягом останн?х семи дн?в, чи готували ви страви з м’яса чи морепродукт?в? - ` EUMILK` - Протягом останн?х семи дн?в, чи пили ви св?же або ж непастеризоване молоко?- ` EUPRPMEL` - Чи ви ? тою людиною, що зазвичай готу? ?жу вдома?- ` EUSNAP` - Протягом останн?х 30 дн?в, ви чи хтось ?з вашо? с?м’? отримував талони на ?жу?- ` EUSODA` - Чи були у вас безалкогольн? напо?, так? як кола, безалкогольне пиво чи ?мбирний ель?- ` EUSTORES` - Де ви купували б?льш?сть овоч?в? - ` EUSTREASON` - Що було основною причиною купувати ?жу саме в тому м?сц?? - ` EUTHERM` - Чи використову?те ви термометр для ?ж? при приготуванн? страв?- ` EUWGT` - Яка ваша вага без взуття(у фунтах)?- ` EUWIC` - Протягом останн?х 30 дн?в, чи отримували ви чи ваша с?м’я допомогу в?д програми захисту д?тей, п?дл?тк?в та ж?нок?Ц?льовою зм?нною(залежною) ? зм?нна ERBMI, що м?стить в соб? дан? про ?ндекс маси т?ла. Проведемо зм?ни в робот? датасету шляхом перетворення к?льк?сно? зм?нно?, що м?стить у соб? дан? про ?ндекс маси т?ла(?МТ), на категор?альну. В?зьмемо за критичний р?вень значення 30. Саме починаючи з цього показника ми будемо визначати записи, як? описують людину, що ма? д?агноз ожир?ння. Отже, ми врешт? решт отрима?мо наб?р даних, що ма? в соб? б?нарну ц?льову зм?нну. Таким чином, ми можемо застосовувати б?нарн? класиф?катори, визначен? попередньо.Спершу проведемо роботу ?з ц?льовою зм?нною. П?сля приведення ?? до б?нарного вигляду, отрима?мо, що 8172 респондент?в ма? ?ндекс маси т?ла нижчий, ан?ж критичний, в той час як 3040 ?нших опитаних хвор?ють на ожир?ння.Проведемо розбиття нашо? виб?рки на тестову на навчальну шляхом випадкового под?лу за допомогою вбудовано? функц??. Розпод?л будемо проводити у в?дношенн? 80% навчально? виб?рки та 20% тестово?. В?дношення значень ц?льово? зм?нно? в тестов?й та навчальн?й виб?рках приблозно р?вн?, тому ми уника?мо проблеми навчання моделей лише на одн?й категор?? даних.Дан?, укладен? в датасет?, мають в соб? як к?льк?сн?, так ? категор?альн? зм?нн?. Категор?альн? зм?нн? закодовано чисельними значеннями в?дпов?дно до словника даних, котрий використову?ться при робот? з необх?дними даними.Для покращення результат?в роботи датасету проводиться м?н?максна нормал?зац?я даних, для приведення ?х до одного ? того ж д?апазону значень(у нашому випадку в?д 1 до 0). Також проводиться вилучення стовпця значень, який м?стить дан? про особистий код – для перев?рки на дисперс?ю в?н покаже гарний результат, проте лог?чно ? не?нформативним, так як не збер?га? схож? чи то однаков? результати ? м?стить лише дан? про код, який не ? корисним при класиф?кац??.Для цього застосову?ться функц?я нормал?зац??, у як?й викликаються вбудвон? попередньо елементи програмних модул?в.При робот? з даними, що мають багато ознак, дуже складно уникнути проблеми розпорошення та багатовим?рност?.?сну? поняття прокляття багатовим?рност?, що включа? в себе проблему множення простор?в та п?дпростор?в та вар?ативност? роботи будь-якого з алгоритм?в, адже маючи всього лиш три признаки, зам?сть двох, ми уже зб?льшу?мо к?льк?сть можливих комб?нац?й при робот? з чотирьох до дев’яти. В?дпов?дно, коли к?льк?сть ознак буде зб?льшуватися до десятк?в чи то сотень, необх?дно буде зб?льшувати к?льк?сть ? обчислень.Для цього ?сну? робота з визначенням найб?льш придатних до цього ознак, в?дкидаючи ?нш?, менш ?нформативн?. Вище було описано принцип роботи F-тесту, що базу?ться на оц?нц? показника Х?-квадрат.Ми застосу?мо саме даний признак, що базу?ться на оц?нц? р?вня дисперс?? та оберемо саме т? признаки, чи? показники будуть найвищими. Виберемо близько 12 найкращих ознак, що становить близько третини вс?х представлених ознак. Для виконання даного завдання використову?мо програмну реал?зац?ю з модулю, призначеного для машинного навчання sklearn.Для роботи з моделями прогнозування також застосу?мо метод головних компонент, що дозволить нам боротися з проблемою багатовим?рност? та мультикол?неарност?(деяк? признаки ? сильно корельованими м?ж собою).Проводячи експерименти, було пом?чено, що модел?, як? навчалися на повному списку ознак, мали в соб? пом?тно г?рший результат та були не?нформативними. Для оц?нки результат?в застосовано р?зн? методики, зокрема було проведено в?дсл?дковування двох вид?в помилок та двох вид?в правильно? ?дентиф?кац?? для подальшого використання ?х у метод? ROC-криво? та анал?зу отриманих результат?в. Як в?домо, дан? про вид помилки та приклади, як? б?льш до не? схильн?, можуть м?стити необх?дну для ?х виправлення ?нформац?ю. Для оц?нки результат?в метод?в прогнозування абсолютного значення будемо використовувати параметр R-squared та параметри MSE та RMSE.Прогнозування за допомогою нейронно? мереж?Отже, першою моделлю на черз? оберемо багатошаровий персептрон. Шляхом проведення експеримент?в, було визначено, що при перевищенн? к?лькост? прихованих шар?в понад 1000, покращення результативност? припиня?ться. Так як обсяг даних, що використову?ться для роботи з даною моделлю, ? пор?вняно невеликим(близько 12 тисяч запис?в сум?сно для навчально? та тестово? виб?рки). Проведемо анал?з роботи модел? для нормал?зованих та ненормал?зованих даних. Спершу розглянемо випадок, коли дан? нашо? виб?рки ненормал?зован?, а для роботи використову?ться 12 кращих ознак, а не повний обсяг елемент?в. Попередн? експерименти показали, що при робот? з ус?ма представленими даними, модель за значенням параметру roc-криво? буде не?нформативною та матиме низьк? оц?нки в?рно? класиф?кац??. Як в?домо, повн?стю не?нформативна модель буде мати показник 50%, в той час максимально ?нформативна буде наближатися од 100%. Модель, що використовувала повний наб?р даних, мала саме 50% значення дано? характеристики. Розглянемо таблицю(таблиця 3.1) отриманих гарних результат?в, що надала нам модель багатошарового персептрону. Таблиця 3.1. Показники класиф?кац?? нейронно? мереж? (ненормал?зован? дан?)Назва показникуЗначення показникуTrue positive(TP)595False Positive(FP)14True Negative(TN)1601False Negative(FN)33Sensitivity(Se)0.95Specifity(Sp)0.99RocAucScore0.97Accuracy0.98Як бачимо, доля загально? к?лькост? правильно класиф?кованих приклад?в ? в рази б?льшою, в той час як к?льк?сть нев?рно класиф?кованих приклад?в ? малою. Розглянемо уважн?ше показники чутливост? та специф?чност?, як? входять до ROC-анал?зу. Чутлив?сть(вона ж Sensetivity), як було зазначено вище, нада? нам ?нформац?ю щодо частки правильно класиф?кованих ?стинних запис?в нашого датасету, в той час як специф?чн?сть(вона ж Specifity), дозволя? нам знаходити частину в?рно класиф?кованих негативних запис?в. Як бачимо, наша модель да? висок? значення обох параметр?в, при чому частка в?рно класиф?кованих негативних запис?в - специф?чн?сть - ? вищою. Це можна пояснити б?льшою к?льк?стю приклад?в, що в?дносяться саме до негативних елемент?в. Показник Roc Auc Curve також наближа?ться до одиниц?, що св?дчить про гарну роботу нашо? модел? на поточних даних. Тепер розглянемо значення наших показник?в для модел?, для яко? виконувалася нормал?зац?я вх?дних даних та переведення ?х до в?домого в?др?зку [0,1] за допомогою minmax-перетворення, що показано у таблиц?(таблиця 3.2)Таблиця 3.2 Показники класиф?кац?? нейронно? мереж? (нормал?зован? дан?)Назва показникуЗначення показникуTrue positive(TP)499False Positive(FP)93True Negative(TN)1522False Negative(FN)129Sensitivity(Se)0.79Specifity(Sp)0.94RocAucScore0.87Accuracy0.9Як можемо бачити, отриман? результати набагато г?рш?, хоча ? дос? прийнятн? для нас. К?льк?сть в?рно класиф?кованих приклад?в сутт?во упала, що св?дчить про пог?ршення точност? роботи алгоритму. Отже, нормал?зац?я даних у даному випадку призводить не до покращення, а до пог?ршення роботи. Специф?чн?сть також знизилася, але меншою м?рою, тому можна зробити висновок, що показники, як? впливають на визначення позитивних запис?в, ? б?льш чутливими. Тепер розглянемо задачу прогнозування, де ми будемо прогнозувати абсолютне значення ?МТ за допомогою багатошарово? нейронно? мереж?.Будемо також анал?зувати значення параметр?в RMSE, MSE та R-squared. Проведено п?дготовчу роботу та за допомогою критер?ю Ф?шера виберемо 12 показник?в, як? будуть характеризувати нашу модель. Параметр 12 п?дбирався експериментально, шляхом пор?вняльного анал?зу за визначеними вище критер?ями. Будемо вносити дан? в таблицю(таблиця 3.3) для майбутнього пор?вняльного анал?зу результат?в вс?х моделей. Таблиця 3.3 Показники прогнозування нейронно? мереж? Назва параметруK-bestPCAПовний наб?р ознакR-squared0.992-321,8-20,1MSE0.271795,6428,2RMSE0.52111696,92108,15Як бачимо, дан? оц?нки ? довол? добрими. Як бачимо, R-squared майже р?вний одиниц?, що говорить про високу долю пояснено? дисперс??, в той час як середньоквадратична похибка та кор?нь середньоквадратично? похибки ? дещо г?ршими, проте теж мають довол? непоган? значення ? можуть в?дпов?дати ?нформативн?й модел?.Прогнозування за допомогою ансамблю моделей Random ForestНаступним алгоритмом, який плану?мо використати для роботи з даними ? ансамблева модель випадковий л?с. Розглянемо також два можливих набори даних, як? будуть включати в себе нормал?зован? та не нормал?зован? показники. Спочатку перев?римо, як буде працювати модель, побудована на необроблених даних, проте зменшених, шляхом в?дкиду ознак ?з г?ршими показниками в?дпов?дно до F-тесту. Будемо збирати т? ж ознаки, що ? у випадку нейронно? мереж?. К?льк?сть дерев прийма?мо 50, а максимально можливу глибину - 50 . Наша модель використову? не занадто великий обсяг даних, тому зб?льшення к?лькост? ?терац?й та базових моделей дозволя? нам п?двищити як?сть ?? роботи, при цьому не маючи надто великих обчислювальних затрат. Таблиция 3.4 - Показники класиф?кац?? Random Forest (ненормал?зован? дан?)Назва показникуЗначення показникуTrue positive(TP)601False Positive(FP)9True Negative(TN)1606False Negative(FN)27Sensitivity(Se)0.96Specifity(Sp)0.99RocAucScore0.98Accuracy0.98Як бачимо, показники довол? висок? та гарн?. Часта в?рних ?стинних запис?в залиша?ться нижчою, н?ж частка в?рних негативних запис?в, що, в т?м, наближа?ться до одиниц?. Показник ROC-криво? також ? довол? гарним - 0,98, що св?дчить про гарну роботу модел?.Розглянемо роботу на уже нормал?зованих даних, як? були приведен? до д?апазону [0,1].Таблиция 3.4 - Показники класиф?кац?? Random Forest(нормал?зован? дан?)Назва показникуЗначення показникуTrue positive(TP)601False Positive(FP)9True Negative(TN)1606False Negative(FN)27Sensitivity(Se)0.96Specifity(Sp)0.99RocAucScore0.98Accuracy0.98Як бачимо, дана таблиця не в?др?зня?ться в?д попередньо?, тому робимо висновок, що нормал?зац?я даних н?як не вплинула на роботу дано? модел?. Як зазначалося вище, випадковий л?с визнача?ться як модель, що ма? бути нечутливою до масштабування та ма? надавати можлив?сть уникати перенавчання, чому ми ? бачимо п?дтвердження. Тепер розглянемо дану модель та можлив?сть ?? використання як модел? прогнозування. В ц?лому зазнача?ться, що модель випадкового л?су ? довол? доброю, тому скориста?мося регресором випадкого л?су. Будемо досл?джувати так? ж параметри, як ? у попередн?й модел? - RMSE, MSE та R-squared. Побуду?мо таблицю для пор?вняння даного методу.Таблиця 3.6 - Значення показник?в прогозування Random ForestНазва параметруK-bestPCAПовний наб?р данихR-squared0.9990,9790,999MSE0.0320,7540,053RMSE0.1790,8680,179Як бачимо, дана модель ? гарною та показу? гарн? значення параметр?в, як? вибрано для оц?нки ?? роботи. Бачимо, що модель ма? значення середньоквадратично? похибки, що наближаються до нуля, що ? показником непогано? точност?. Також R-squared близький до одиниц?, що виступа? показником поясненост? модел?. Прогнозування за допомогою регрес?йно? модел?Лог?стична регрес?я також ? часто використовуваною при робот? з б?нарною класиф?кац??ю та задачами медицинсько? д?агностики. Розглянемо роботу дано? модел? для роботи з нормованими та ненормованими даними. Зауважимо, що лог?стична регрес?я оц?ню? ймов?рн?сть потрапляння кожного елемента в будь-який клас.Так як дан? розпод?лено в приблизному в?дношенн? 80:20, то скориста?мося вагами для даного виду роботи з моделями. Ма?мо: Таблиця 3.7 – Показники класиф?кац?? лог?стично? регрес??(ненормал?зован? дан?)Назва показникуЗначення показникуTrue positive(TP)597False Positive(FP)145True Negative(TN)1470False Negative(FN)31Sensitivity(Se)0.95Specifity(Sp)0.91RocAucScore0.93Accuracy0.92Як бачимо, показники дано? модел? все ще залишаються задов?льними, хоча м?ститься ? багато деталей щодо нев?рно визначених хибно позитивних запис?в. На практиц? це може призводити до постановки нев?рного д?агнозу там, де в?н в?дсутн?й, тому треба звернути на це увагу. Дана модель ма? недол?ки ? ма? бути доопрацьована, хоча ? м?стить показник точност?(доля правильно класиф?кованих запис?в серед ус?х запис?в).Тепер розглянемо нормал?зован? дан? та оц?нимо ?х Таблиця 3.8 – Показники класиф?кац?? лог?стично? регрес?? (нормал?зован? дан?)Назва показникуЗначення показникуTrue positive(TP)572False Positive(FP)253True Negative(TN)1362False Negative(FN)56Sensitivity(Se)0.91Specifity(Sp)0.84RocAucScore0.88Accuracy0.86Як бачимо, на даному етап? ми отримали значне пог?ршення роботи модел?. Очевидно, що нормал?зац?я даних призвела до дано? ситуац??, а отже для роботи з лог?стичною регрес??ю вона не ? найкращим вибором. Отже, лог?стична регрес?я, що використову? не перетворен? дан?, на даному етап? ? прийнятною моделлю з нормальними показниками правильност? роботи та ROC-криво?. Також ма?мо можлив?сть використати регрес?йну модель( в нашому випадку - л?н?йну регрес?ю) для прогнозування абсолютних значень ?МТ. Для цього ма?мо також визначити показники, як? дозволять нам шляхом експеримент?в визначити кращу модель. Будемо визначати так? показники якост? роботи модел? л?н?йно? регрес?? - R-squared та MSE та RMSE. Для кожно? модел? ма?мо ?деальн? значення, як? будуть характеризувати точну та ?нформативну модель. Для R-squared та значення мають наближатися до 1, MSE та RMSE мають м?н?м?зуватися, отже, чим менший даний показник, тим краще. Саме за таких умов можна вважати, що регрес?йна модель буде доброю та матиме гарн? показники. Скориста?мося також моделлю ridge регрс??, яка ма? в соб? метод регуляризац??. Цей метод застосову?ться для того, щоб вир?шити проблему мультикол?неарност? - зм?нн?, що знаходяться в датасет?, сильно корелюють м?ж собою - це було визначено за допомогою матриц? кореляц?? та попереднього ?нту?тивного анал?зу зм?нних задано? предметно? област?(зм?нн? розбито по модулям ? деяк? зм?нн? уточнюють ?нш?). Проанал?зу?мо отриман? таблиц? параметр?в для роботи моделей. Показники л?н?йно? регрес??. Таблиця 3.8 - Показники прогнозування л?н?йно? регрес??Назва параметруЗначення параметру PCAПовний наб?р ознакR-squared0.9840,9850,985MSE0.6290,6810,632RMSE0.7930,8250,795Як бачимо, дана модель ? гарною за показником R-squared та дещо г?ршою за показником точност?. Можемо бачити, що коливання значень дещо б?льше, ан?ж у попередн?х моделях, тому робимо висновок, що регрес?я ? чутливою до даних, зокрема, до проблем кол?неарност?.Тепер розглянемо модель Ridge, яка ? модиф?кац??ю, що використову? L2 регуляризац?ю. Таблиця 3.9 - Показники прогнозування регуляризовано? регрес??Назва параметруK-bestPCAПовний наб?р ознакR-squared0.9820,9820,982MSE0.6290,6810,632RMSE0,7930,8250,795 Як бачимо, модиф?кована регрес?я дала т? ж результати, що ? звичайна л?н?йна, довол? посередн?. Отже, можемо зробити висновок, що наш? дан? ? менш прийнятними для роботи ?з регрес?ями. Анал?з отриманих результат?в та пор?вняння моделейРозглянемо в пор?внянн? вс? модел? за показниками, визначеними нижче, та побуду?мо д?аграми, що будуть в?дображати кожен з показник?в к?льк?сно. Спершу розглянемо к?льк?сн? значення вс?х ?стинно та хибно класиф?кованих правдивих та неправдивих запис?в.Рисунок 3.1 ?стинно позитивн? класиф?кац??Рисунок 3.2 ?стинно негативн? класиф?кац??Рисунок 3.3 Хибно позитивн? класиф?кац??Рисунок 3.4 Хибно ?стинн? класиф?кац??Як бачимо з представлених вище д?аграм, серед в?рно визначених запис?в ми ма?мо приблизно одну ? ту ж тенденц?ю, коливання значень не ? великими, в той час як серед нев?рно класиф?кованих приклад?в можна пом?тити, що нормал?зован? дан? дають б?льше помилок(це бачимо по п?ков? на зображеннях, де показники ? зависокими у моделей нейронна мережа та лог?стична регрес?я). В той же час, випадковий л?с стаб?льно нада? найменшу к?льк?сть нев?рно класиф?кованих приклад?в.Тепер розглянемо д?аграми чутливост? та специф?чност?.Рисунок 3.5 Чутлив?сть класиф?кац?йРисунок 3.6 Специф?чн?сть класиф?кац?йЯк бачимо на поточних д?аграмах, випадковий л?с нада? стаб?льно одн? з найвищих показник?в, також гарн? значення ма? нейронна мережа для ненормованих значень, трохи г?рш? - лог?стична регрес?я для також ненормованих даних. Отже ? за даними параметрами бачимо, що перевага нада?ться ненормованим моделям. Проанал?зу?мо граф?ки правильност? роботи моделей та ROC-анал?зу. Рисунок 3.7 ROC AUCРисунок 3.8. Правильн?стьЯк бачимо з зображених вище д?аграм, найкращ? показники правильност? ма? нейронна мережа на ненормованих даних та випадковий л?с(значення метрик для дано? модел? не зм?нювалося залежно в?д того нормували ми дан? чи н?). Також можемо бачити, що лог?стична регрес?я на ненормованих даних знову ма? кращ? показники, ан?ж на нормованих, проте в ц?лому показу? г?рш? результати. Тепер перейдемо до анал?зу моделей прогнозування.Ми намагалися спрогнозувати абсолютне значення ?ндексу маси т?ла, а тому використовували вс? т? ж модел? чи типи моделей(окр?м зам?ни лог?стично? регрес?? л?н?йною та ridge регрес??ю). Так як у вс?х моделей гарний показник R-squared, то розглядати його для пор?вняння нема? сенсу. Будемо працювати з показниками MSE та RMSE. Побуду?мо пор?вняльну д?аграму для даних параметр?в ? розглянемо ?? на рисунку нижче(рисунок 3.9)Рисунок 3.9 В?дхилення значень(критер?й Ф?шера)Як видно з представленого зображення, випадковий л?с ма? найкращ?(найнижч?) показники помилок ? тому може бути визнаним кращою моделлю з найвищою точн?стю. Також пом?тимо, що як ? в минулому випадку, модель була менш чутливою до перетворень, перенавчання та п?дбору даних. Розглянемо також зображення(рисунок 3.10 ), яке буде показувати нам дан? значень в?дхилення для роботи на повному набор? ознак. Рисунок 3.10 Розпод?л в?дхилення на повному набор? данихЯк бачимо, через значне в?дхилення показник?в для модел? нейронно? мереж?, ми ма?мо мало?нформативне з точки зору пор?вняння зображення. Тому побуду?мо таку ж д?аграму, проте виключимо з не? значення середньоквадратичного в?дхилення для нейронно? мереж?. Матимемо наступне зображення(рисунок 3.11):Рисунок 3.11 Розпод?л в?дхилення на повному набор? даних вибраних моделейОтже, в п?дсумку, можна прийти до таких результат?в - при розгляд? та анал?з? ус?х запропонованих метод?в оц?нки було виявлено, що найкращий результат для обох задач показала модель випадковий л?с. В додаток до всього, вона виявилася нечутливою до масштабування даних, на в?дм?ну в?д модел? нейронна мережа, що робить ?? гарним вар?антом для використання при робот? з завданнями д?агностики, як? не потребують велико? навчально? виб?рки, а навпаки мають меншу к?льк?сть ?нформац??. Також датасет мав значну к?льк?сть категор?альних даних, що може бути одн??ю ?з причин кращо? роботи саме випадкового л?су, який добре працю? з даним типом ?нформац??. Таким чином, спираючись на отриман? дан? про роботу моделей, було обрано саме випадковий л?с як модель з кращими показниками для визначення ожир?ння та р?вня ?ндексу маси т?ла на основ? даних про харчов? звички людей. РОЗДФЛ 4 ФУНКЦ?ОНАЛЬНО-ВАРТ?СНИЙ АНАЛ?З ПРОДУКТУ4.1. Об?рунтування функц?й та параметр?в програмного продукту Ц?льова функц?я F0 - розробка програмного продукту, що реал?зу? прогнозування р?вня ?ндексу маси т?ла за допомогою метод?в машинного навчання трьома р?зними способами на основ? даних про харчову повед?нку респондента. Виходячи з конкретно? задач?, можна виокремити наступн? функц?? програмного продукту: F1 – програмна реал?зац?я; а) мова програмування Phyton; б) мова програмування SAS; в) мова програмування Java.F2 – завантаження даних ?з зовн?шн?х ресурс?в; а) ?з файл?в формату *.csv;б) ?з файл?в формату *.txt.F3 – оц?нювання отриманого результату; а) використання сторонн?х модул?в та функц?й; б) власна реал?зац?я ?снуючих метод?в.F4 – граф?чне представлення результат?в. а) використання програмних засоб?в.Вар?анти реал?зац?? основних функц?й наведено у морфолог?чн?й карт? (Рисунок 4.1)Рисунок 4.1. Морфолог?чна карта7029458255000Морфолог?чна карта показу? вс? можлив? комб?нац?? вар?ант?в роботи функц?й(?х реал?зац??). Дан? функц?? складають у соб? повну множину вар?нт?в програмного продукту. Використовуючи дану карту, було отримано матрицю вар?ант?в основних функц?й(Таблиця 4.1).Таблиця 4.1. Позитивно-негативна карта.Основн? функц??Вар?анти реал?зац??ПеревагиНедол?киF1АПростота реал?зац??Швидк?сть роботи алгоритм?вБНаявн?сть ?нтерфейсу, простота використанняПотребу? л?цензц?юВУн?версальн?сть обчисленняСкладн?сть реал?зац??F2АПоширен?сть, ун?версальн?стьПотребу? спец?ально? обробкиБВикористову?ться при великому обсяз? ?нформац??Складний у використанн?F3АТочн?сть та швидк?сть обисленьНеобх?дн?сть встановлювати додатков? програмн? модул?БМожлив?сть написання специф?чних модул?вНеобх?дн?сть написання кожного методуF4AПростота реал?зац??Строго форматоване представленняНа основ? анал?зу приведено? вище матриц?, робимо висновок що деяк? вар?анти роботи були не в?дпов?дними до поставлено? задач? та мають сво? м?нуси, а отже в?дпов?дн? реал?зац?? функц?й необх?дно в?дкинути, щоб зосередитися на правильних вар?антах. Таким чином будемо використовувати наступн? вар?анти реал?зац?? програмного продукту:1.F1а – F2а – F3a – F4а;2.F1а – F2б – F3a – F4а;3.F1а – F2а – F3б – F4а;4.F1а – F2б – F3б – F4а.Для оц?нювання якост? розглянутих функц?й обрана система параметр?в, описана нижче.4.2. Об?рунтування системи параметр?в програмного продуктуБудемо розглядати три типи вар?ант?в значення параметр?в. Г?рш?, середн? ? кращ? значення параметр?в вибираються на основ? вимог замовника й умов, що характеризують експлуатац?ю ПП як показано у таблиц? 4.2.Таблиця 4.2. Основн? параметри програмного продукту.НазваПараметраУмовн? позначенняОдиниц? вим?руЗначення параметраГ?рш?Середн?Кращ?Час розробки алгоритму X1Год805020Час обробки данихX2Мс80042060Точн?сть розв’язкуX3доля одиниц?10Е-410Е-510Е-6Потенц?йний об’?м програмного кодуX4к?льк?сть ком?рок коду200015001000За даними таблиц? 4.2 будуються граф?чн? характеристики параметр?в – рисунок 4.2 – рисунок 4.5. Рисунок 4.2. Х1, час розробки алгоритмуРисунок 4.3. Х2, час обробки даних.Рисунок 4.4. Х3, точн?сть розв’язкуРис. 4.5. Х4, потенц?йний об’?м програмного кодуРезультати експертного ранжування наведен? у таблиц? 4.3.Таблиця 4.3. Результати ранжування параметр?в.Познач. ПараметраРанг параметра за оц?нкою експертаСума ранг?в RiВ?дхилення ΔiΔi21234567X13343333224,520,25X221211119-8,572,25X34434444279,590,25X4121222212-5,530,25Разом10101010101010700213Пораху?мо коеф?ц??нт узгодженост?:W=12SN2n3-n,W=12*21372*43-4=0,87>Wk=0,67.(4.5)Ранжування можна вважати достов?рним, тому що знайдений коеф?ц??нт узгодженост? перевищу? нормативний, котрий дор?вню? 0,67.Скориставшись результатами ранжування, проведемо попарне пор?вняння вс?х параметр?в ? результати занесемо у таблицю 4.4. За найб?льший ранг прийма?мо 4.Таблиця 4.4. Попарне пор?вняння показник?вПараметриЕкспертиК?нцева оц?нкаЧисловезначення1234567Х1 та Х2>>>>>>>>1.5Х1 та Х3<<><<<<<0.5Х1 та Х4>>>>>>>>1.5Х2 та Х3<<<<<<<<0.5Х2 та Х4><><<<<<0.5Х3 та Х4>>>>>>>>1.5Таблиця 4.5. Розрахунок вагомост? параметр?в.ПараметриПараметриПерша ?тер.Друга ?тер.Третя ?терХ1Х2Х3Х4biКв?bi1Кв?1bi2Кв?2Х11,01,50,51,54,50.315,750,27856,6250,274Х20,51,00,50,52,50.1678,750,15632,6250,158Х31,51,51,01,54,50.320,250,35874,6250,361Х40,51,50,51,03,50.23311,750,20842,8750,207Всього:15156,51206,751Як видно з таблиц?, р?зниця значень коеф?ц??нт?в вагомост? не перевищу? 2%, тому б?льшо? к?лькост? ?терац?й не потр?бно.4.3. Анал?з р?вня якост? вар?ант?в реал?зац?? функц?йВар?ант функц?? F1 опису?ться параметром Х1, F2 параметром Х2, F3 параметром Х3, F4 параметром Х4. Таблиця 4.6. Розрахунок показник?в р?вня якост? вар?ант?в реал?зац??.Основн? функц??Вар?ант реал?зац?? функц??Абсолютне значення параметраБальна оц?нка параметраКоеф?ц??нт вагомост? параметраКоеф?ц??нт р?вня якост?F1А5050.2741,37F2А1208,40.1581,33Б6002,70.1580,43F3А10Е-6100.3613,61Б10Е-550.3611,81F4А120080.2071,66Враховуючи дан? з пор?внянь вар?ант?в реал?зац?й функц?й можна виключити з реал?зац?й функц?й наступн? вар?анти: F1(б, в).Залишаються наступн? вар?анти:1. F1(а)=>F2(а)=>F3(а)=>F4(а)2. F1(а)=>F2(б)=>F3(а)=>F4(а)3. F1(а)=>F2(а)=>F3(б)=>F4(а)4. F1(а)=>F2(б)=>F3(б)=>F4(а)За даними з таблиц? 4.6 визнача?мо р?вень якост? кожного з вар?ант?в:Кя1 = 1,37 + 1,33 + 3,61 + 1,66 = 7,97Кя2 = 1,37 + 0,43 + 3,61+ 1,66 = 7,07Кя3 = 1,37 + 1,33 + 1,81 + 1,66= 6,17Кя4 = 1,37 + 0,43 + 1,81 + 1,66 = 5,27Отже, найкращим ? перший вар?ант, для якого коеф?ц??нт техн?чного р?вня ма? найб?льше значення.4.4. Економ?чний анал?з вар?ант?в розробки ППДля оц?нки трудом?сткост? розробки спочатку проведемо розрахунок трудом?сткост?. Ус? вар?анти мають наступн? основн? завдання: програмна реал?зац?я за допомогою мови Pythonграф?чне представлення результат?в за допомогою програмних засоб?вТакож кожний з вар?ант?в ма? два додаткових завдання, як? ? реал?зац?ями розгалужених вар?ант?в розробки незалежного модуля. Дал? наведено вар?анти додаткових завдань(два завдання, як? мають номери 3 в реал?зац?ях та два завдання, як? мають номери 4 в реал?зац?ях)3.1) завантаження даних ?з формату .csv;3.2) завантаження даних ?з формату .txt;4.1) оц?нювання результату за допомогою сторонн?х модул?в;4.2) оц?нювання результату за допомогою власних функц?й.В вар?ант? 1 присутн? наступн? додатков? завдання п?д номерами 3.1 та 4.1В вар?ант? 2 присутн? наступн? додатков? завдання п?д номерами 3.2 та 4.1 В вар?ант? 3 присутн? наступн? додатков? завдання п?д номерами 3.1 та 4.2В вар?ант? 4 присутн? наступн? додатков? завдання п?д номерами 3.2 та 4.2За ступенем новизни до групи А в?дноситься задання 1, 4.2, до групи Б – 4.1, до групи В в?дносяться завдання 3.2,3.1 , до групи Г — 2.За складн?стю алгоритм?в до групи 1 в?дносяться завдання 1, 4.2 до групи 2 в?дноситься завдання 3.2, 4.1, до групи 3 – 3.1, 2. Якщо при розробц? ПП використовуються стандартн? б?бл?отеки та(чи) пакети прикладних програм, норми часу коректуються з допомогою коеф?ц??нта Кст,значення якого лежать в д?апазон? 0,6-0,8. У нашому випадку Кст =0,7. Для першого завдання (степ?нь новизни А, група складност? – 1), тобто ТР=90 людино-дн?в, КП = 1,7, КСК = 1; КСТ = 0.7. Тод?, загальна трудом?стк?сть програмування першого завдання дор?вню?:Т1 = 90? 1,7?1?0,7 = 107,1 людино-дн?вДля другого завдання (степ?нь новизни Г, група складност? – 2), тобто ТР= 12 людино-дн?в,КП = 0,72; КСК = 1; КСТ = 0.7:Т2= 12 ? 0,72? 1 ? 0,7 = 6,1 людино-дн?в.Для завдання 3.1 (степ?нь новизни В, група складност? – 3), тобто ТР=12 людино-дн?в, КП = 0,6 ; КСК = 1; КСТ = 0.7: Т3.1= 12?0,6?1? 0.7 =5,04 людино-дн?в.Для завдання 3.2(степ?нь новизни В, складн?сть алгоритм?в 2) , тобто ТР= 19 людино-дн?в, КП =0,72 ; КСК = 1; КСТ = 0.7Т3.2 = 19?0,72?1? 0.7= 9,58 людино-дн?в. Для завдання 4.1 (степ?нь новизни Б, група складност? – 2), тобто ТР=27 людино-дн?в,КП = 1.08; КСК = 1; КСТ = 0.7:Т4 .1= 27?1,08?1? 0.7 = 20, 41 людино-дн?в.Для завдання 4.2(степ?нь новизни А, група складност? — 1), тобто ТР=90 людино-дн?в, КП = 1,7 , КСК = 1; КСТ = 0.7. Т4.2 = 90?2,84 ?1?0.7 = 178,92 людино-дн?вСклада?мо трудом?стк?сть в?дпов?дних завдань для кожного з обраних вар?ант?в реал?зац?? програми, щоб отримати ?х трудом?стк?сть:ТI = (107,1 + 6,1 + 5,04+20,41) ?8 = 1109,2 людино-годин;ТII = (107,1 + 6,1 + 9,58 + 20, 41) ?8 = 1145,5 людино-годин.ТII? = (107,1 + 6,1 + 5,04 + 178,92) ?8 = 2377,28 людино-годин.ТIV = (107,1 + 6,1 + 9,58 + 178,92) ?8 = 2413, 6 людино-годин.Найб?льш високу трудом?стк?сть ма? вар?ант IV.В розробц? беруть участь два програм?сти з окладом 9350 грн., один ф?нансовий анал?тик з окладом 10830грн. Визначимо зарплату за годину:СЧ=9350+9350+108303?21?8=58,59грн.Тод?, зароб?тну плата розробник?в за вар?антами становить:I.СЗП = 58,59? 1109,2 ? 1.2 = 77 985,63 грн.;II.СЗП = 58,59?1145,5 ? 1.2 = 80537, 81грн.III.СЗП = 58,59?2377,28 ? 1.2 = 167141,8 грн.IV.СЗП = 58,59? 2413,6 ? 1.2 = 169695,39 грн.В?драхування на ?диний соц?альний внесок становить 22%:I.СВ?Д = СЗП ? 0.22 = 77985,63 ? 0.22 = 17156, 84 грн.II.СВ?Д = СЗП ? 0.22 = 80537, 81 ? 0.22 = 17718,32 грн.III.СВ?Д = СЗП ? 0.22 = 167141,8 ? 0.22 = 36771,19 грн.IV.СВ?Д = СЗП ? 0.22 = 169695,39 ? 0.22 = 37332,98 грн.Тепер, визначимо витрати на оплату одн??? машино-години. (СМ)Так як одна ЕОМ обслугову? одного програм?ста з окладом 14000 грн., з коеф?ц??нтом зайнятост? 0,2 то для одн??? машини отрима?мо:СГ = 12?M?KЗ = 12 ?9350? 0,2 = 22440 грн.З урахуванням додатково? зароб?тно? плати:СЗП =СГ? (1+ KЗ) = 22440 ? (1 + 0.2)=26928 грн.В?драхування на ?диний соц?альний внесок:СВ?Д= СЗП ? 0.22 = 26928? 0,22 = 5924,16 грн.Амортизац?йн? в?драхування розрахову?мо при амортизац?? 25% та вартост? ЕОМ – 15250 грн.СА = КТМ? KА?ЦПР = 1.15 ? 0.25 ?15250 = 4384,38 грн.,Витрати на ремонт та проф?лактику розрахову?мо як:СР = КТМ?ЦПР ? КР = 1.15 ?15250? 0.05 = 876,88 грн.,Ефективний годинний фонд часу ПК за р?к розрахову?мо за формулою:ТЕФ =(ДК – ДВ – ДС – ДР) ? tЗ? КВ = (365 – 142 – 16) ? 8 ? 0.9 = 1324,8 год.,Витрати на оплату електроенерг?? розрахову?мо за формулою:СЕЛ = ТЕФ? NС? KЗ? ЦЕН =1324,8 ? 0,156 ? 0,61 ? 1,75 = 220,62 грн.,Накладн? витрати розрахову?мо за формулою:СН = ЦПР?0.67 = 15250? 0,67 =10217,5 грн.Тод?, р?чн? експлуатац?йн? витрати будуть:СЕКС =СЗП+ СВ?Д+ СА + СР+ СЕЛ + СНСЕКС = 26928+ 5924,16+ 4384,38+ 876,88+220,62+ 10217,5 = 48551,54 грн.Соб?варт?сть одн??? машино-години ЕОМ дор?внюватиме:СМ-Г = СЕКС/ ТЕФ = 48551,54? /1324,8 = 36,65 грн/час.Отже, витрати на оплату машинного часу, в залежност? в?д обраного вар?анта реал?зац??, склада?:СМ = СМ-Г?T?. СМ = 36,65 ?1109,2 = 40652,18 грн.??. СМ = 36,65 ?1145,5 = 41982,58 грн. III.СМ = 36,65 ?2377,28 = 85661,31 грн. IV.СМ = 36,65 ?2413, 6 = 88458,44 грн.Накладн? витрати складають 67% в?д зароб?тно? плати:СН = СЗП? 0,67?. СН = 77 985,63 ? 0,67 = 52250,37 грн.??. СН = 80537, 81 ? 0,67 = 53960,33 грн. III.СН = 167141,8 ? 0,67 = 111985 грн. IV.СН = 169695,39 ? 0,67 = 113695,91 грн. Отже, варт?сть розробки ПП за вар?антами становить:СПП = СЗП+ СВ?Д+ СМ +СН?. СПП = 77985,63 +17156, 84+40652,18+ 52250,37=188045,1грн.; ??. СПП = 80537, 81 + 17718,32+41982,58+ 53960,33 =194199,1грн. III.СПП = 167141,8+ 36771,19+85661,31 +111985 = 401559,3грн. IV.СПП = 169695,39 + 37332,98 + 88458,44+113695,91 = 409182 грн. Виб?р кращого вар?анта ПП техн?ко-економ?чного р?вняРозраху?мо коеф?ц??нт техн?ко-економ?чного р?вня за формулою:КТЕРj = ККj ? СППj,КТЕР1 = 7,97 / 188045,1 = 4,24?10-5КТЕР2 = 7,07 / 194199,1 = 3,64?10-5КТЕР3= 6,17 / 401559,3 = 1,5 ?10-5КТЕР4 = 5,25 / 409182 = 1,28 ?10-5Як бачимо, найб?льш ефективним ? перший вар?ант реал?зац?? програми з коеф?ц??нтом техн?ко-економ?чного р?вня КТЕР1= 2,8?10-5.4.5 Висновки П?сля виконання функц?онально-варт?сного анал?зу програмного комплексу, що розроблю?ться, можна зробити висновок, що з альтернатив, що залишились п?сля першого в?дбору двох вар?ант?в виконання програмного комплексу оптимальним ? перший вар?ант реал?зац?? програмного продукту. У нього виявився найкращий показник техн?ко-економ?чного р?вня якост?: КТЕР1 = 7,97 / 188045,1 = 4,24?10-5.До першого вар?анту реал?зац?? в?дносятся так? задач?:програмна реал?зац?я за допомогою мови Python;завантаження даних ?з формату .csv;оц?нювання результату за допомогою сторонн?х модул?в;граф?чне представлення результат?в за допомогою програмних засоб?в.Як бачимо, даний вар?ант реал?зац?? дозволя? швидко та просто реал?зувати необх?дн? функц??, а також задовольня? потреби у функц?ональност?. ВИСНОВКИУ дан?й робот? було розглянуто та досл?джено основн? методи для вза?мод?? з медичними даними. В першому розд?л? було проведено огляд предметно? област?, проанал?зовано основн? проблеми та особливост?, що виникають при робот? з медичними даними, проанал?зовано датасет, що було обрано для роботи в даному досл?дженн? та розглянуто методи машинного навчання та оц?нки моделей, як? можуть застосовуватися в даному випадку.У другому розд?л? було проведено виб?р необх?дних моделей, описано ?х б?льш детально та проанал?зовано ?х в?дпов?дн?сть поставлен?й задач?. Для класиф?кац?? р?вня ?МТ людини було обрано ансамблеву модель ?випадковий л?с?, багатошарову нейронну мережу та лог?стичну регрес?ю. Кожна ?з моделей ма? сво? недол?ки та переваги, серед яких можна зауважити чутлив?сть або ж нечутлив?сть до масштабування, великий обсяг моделей, можлив?сть уникати перенавчання, оц?нити параметри моделей, що да? змогу судити про важлив?сть тих чи ?нших ознак. Також у другому розд?л? було проведено виб?р метод?в оц?нок даних моделей, а саме кросс-вал?дац?ю та ROC-криву. Дан? методи гарно п?дходять при робот? з обраними моделями та дозволяють оц?нити ефективн?сть роботи кожно? з них. Також було проанал?зовано особливост? метод?в попередньо? п?дготовки даних. Для поточно? задач? визначено метод нормал?зац?? за допомогою м?н?максно? норми, що дозволя? привести дан? до одного д?апазону та спростити складн?сть роботи з ?нформац??ю.П?сля завершення роботи з анал?тичним апаратом, було також проведено огляд необх?дних програмних б?бл?отек та мови програмування. П?сля пор?вняння плюс?в та м?нус?в, було обрано мову Python та низку ?? б?бл?отек, що забезпечують роботу математичного апарату, граф?чне представлення даних, надають можлив?сть побудови сум?сних граф?к?в та роботи з методами машинного навчання. В к?нц? розд?лу поставлено завдання на основ? уже опрацьованого матер?алу та визначено ц?л? наступного розд?лу роботи.В третьому розд?л? було проведено пор?вняльний анал?з моделей класиф?кац?? та прогнозування. Найкраще себе показала модель випадкового л?су, г?рше – модел? нейронна мережа та регрес?йн? модел?. Було проведено в?дб?р кращих ознак та п?дтверджено ?х результативн?сть – точн?сть та правильн?сть моделей значно п?двищувалась. П?дсумовуючи, можна сказати, що було обрано методи машинного навчання, ефективн?сть яких буде пор?вняна при робот? з визначенням ?ндексу маси т?ла людини, а також визначено необх?дний ?нструментар?й та приведено об?рунтування даного р?шення.ПЕРЕЛ?К ПОСИЛАНЬ1. Методические рекомендации по организации программ профилактики хронических неинфекционных заболеваний. URL: .html (Дата звернення: 3.05.2020)2. About Adult BMI. URL: (Дата звернення: 8.05.2020)3.Sidath Asiri. Machine Learning Classifiers . URL: (Дата звернення: 5.05.2020)4. Chen T. XGBoost: A Scalable Tree Boosting System/ Chen T., Guestrin C. . URL: (Дата звернення: 7.05.2020)5. Бустинг. Mashine Learning.. URL: Бустинг. (Дата звернення: 6.05.2020)6. Курс "Машинное обучение" на ФКН ВШЭ.. URL: (Дата звернення: 06.05.2020)7. Воронцов К.В. Машинное обучение: курс лекц?й.. URL: Машинное_обучение_%28курс_лекций%2C_К.В.Воронцов%29. (Дата звернення: 4.05.2020)8. Simon Haykin. Neural Networks: A Comprehensive Foundation(2nd edition). McMaster University, Ontario Canada, 1999. 1088 p.9.Jason Bronwlee. Logistic Regression for Machine Learning . URL: (Дата звернення: 07.05.2020) 10.Дьяконов А. Введение в анализ данных и машинное обучение . URL: f.pdf11. Методы оценки модели, которые должен знать каждый. . URL: (Дата зверення: 3.05.2020)12. Kohavi R. Wrappers for feature subset selection, Artificial Intelligence. Volume 97, Issues 1–2, 1997, Pages 273-324. 13. Chi-Square Statistic: How to Calculate It. . URL: (Дата звернення: 5.05.2020)14. Armstrong S. Data, data everywhere: the challenges of personalised medicine . Armstrong S. URL: (Дата зверненя: 29.04.2020)15. Sokolova M. Beyond Accuracy, F-score and ROC: a Family of Discriminant Measures for Performance Evaluation . Sokolova M., Japkowicz N., Szpakowicz S. – American Association for Artificial Intelligence.URL: (Дата звернення: 3.05.2020)16. IBM Watson Health . URL: (Дата зверення: 29.04.2020)17. Многослойная нейронная сеть . URL: (Дата звернення: 1.05.2020)18. Rodr?guez J.J. Rotation Forest: A New Classifier Ensemble Method . Rodr?guez J.J., Kuncheva L.I., Alonso C.J. IEEE Transactions on Pattern Analysis and Machine Intelligence. ВШЭ . URL: (Дата звернення: 7.05.2020)19. Регрессия в машинном обучении: оптимальный алгоритм . URL: (Дата звернення: 6.05.2020)20. Арустамов А. Статья: Предобработка и очистка данных перед загрузкой в хранилище . Арустамов А. URL:(Дата звернення:5.05.2020)21. Нормализация входных векторов/Machine learning .URL: (Дата звернення:4.05.2020)22. Manohar Swamynathan: Mastering Machine Learning with Python in Six Steps. New-York, 2017. 387 p.23.Pandas documentation. . URL: (Дата звернення: 3.05.2020)24. Racheel Shaikh: Cross Validation Explained: Evaluating estimator performance.. URL: (Дата звернення: 7.05.2020)ДОДАТОК А Л?CТИНГ ПРОГРАМИ%matplotlib inlineimport seaborn as snsimport matplotlib.pyplot as pltimport pandas as pd%config InlineBackend.figure_format = 'svg'?from pylab import rcParamsrcParams['figure.figsize'] = 8, 5import pandas as pdimport numpy as npfrom sklearn.linear_model import LogisticRegressionfrom sklearn.metrics import accuracy_scorefrom sklearn.metrics import precision_scorefrom sklearn.metrics import recall_scorefrom sklearn.metrics import f1_scorefrom sklearn.metrics import roc_auc_scorefrom sklearn.metrics import precision_recall_curve?from sklearn.metrics import log_lossfrom sklearn.model_selection import train_test_splitfrom sklearn.model_selection import KFoldfrom sklearn.preprocessing import MinMaxScaler,Normalizer, scalefrom sklearn.svm import LinearSVCfrom sklearn.feature_selection import SelectFromModel, RFECV, SelectKBest, mutual_info_classiffrom sklearn.decomposition import PCAfrom sklearn.ensemble import ExtraTreesClassifier,RandomForestClassifier#from xgboost import XGBClassifier#from vecstack import stackingfrom sklearn.naive_bayes import GaussianNB,BernoulliNBfrom sklearn.tree import DecisionTreeClassifierdf = pd.read_csv('ehresp_2014.csv')dataset = df.copy()dataset["obese"] = 0dataset["bmi"] = dataset["erbmi"].astype(float)#set obese to true if bmi above 30dataset.loc[dataset['bmi']>30, 'obese'] = 1#obese is our targettarget = dataset["obese"]print(dataset["obese"].value_counts())y_abs = dataset['bmi']print(y_abs)new_df = dataset.copy()new_df2 = new_df.drop(columns= 'erbmi')new_df3 = new_df2.drop(columns = 'bmi')new_df4 = new_df3.drop(columns = 'tulineno')from string import ascii_lettersimport numpy as npimport pandas as pdimport seaborn as snsimport matplotlib.pyplot as pltcorr = new_df4.corr()mask = np.triu(np.ones_like(corr, dtype=np.bool))# Set up the matplotlib figuref, ax = plt.subplots(figsize=(11, 9))# Generate a custom diverging colormapcmap = sns.diverging_palette(220, 10, as_cmap=True)# Draw the heatmap with the mask and correct aspect ratiosns.heatmap(corr, mask=mask, cmap=cmap, vmax=.3, center=0,????????????square=True, linewidths=.5, cbar_kws={"shrink": .5})new_()x = new_df4.iloc[:,:-1]y = new_df4.iloc[:,-1]print('x:? ',x)print('y:? ',y)import scipydef split_data(x,y):????X_train,X_test, Y_train, Y_test = train_test_split(x, y, test_size=0.2, random_state=427)???????return X_train,X_test,Y_train, Y_testX_train,X_test,Y_train, Y_test = split_data(x,y)pd.value_counts(Y_train)pd.value_counts(Y_test)test = SelectKBest( k=12)fitted = test.fit(X_train, Y_train)X_train_kbest = fitted.transform(X_train)X_test_kbest = fitted.transform(X_test)# summarize selected featuresdict(zip(list(new_df4.columns),fitted.scores_))#normalize_datadef normalize (train,test):????scaler = MinMaxScaler(feature_range=(0, 1))????train1 = scaler.fit_transform(train)????test1 = scaler.transform(test)????return train1,test1#scores for ROC-curvedef evaluation_scores(ress, y_test):????TP = FP = TN = FN = 0????for i in range(len(Y_test)):????????if y_test[i] == 1:????????????if ress[i] == 1:????????????????TP+=1????????????else:????????????????FN+=1????????if y_test[i] == 0:????????????if ress[i] == 1:????????????????FP+=1????????????else:????????????????TN+=1????print ('TP=',TP)????print ('FP=',FP)????print ('FN=',FN)????print ('TN=',TN)????print ('****************************')??????print ('sensitivity','%.2f'% (recall_score(y_test,ress)))????print ('specificity', '%.2f'%(TN/ (TN+FP)))????print ('roc auc score', '%.2f'% (roc_auc_score(y_test,ress)))????print('accuracy', '%.2f'% (accuracy_score(y_test,ress)))#transform Y_test to array for work with functionY_test_arr = Y_test.to_numpy()# ## Multi-layer Perceptron classifier.from sklearn.neural_network import MLPClassifier#X_train1,X_test1 = rescaling (X_train, X_test, 'stand')#train,test = feature_selection('decision_trees',X_train1, X_test1)clf2 = MLPClassifier(activation='tanh',learning_rate='adaptive', hidden_layer_sizes =500, alpha =0.01, max_iter=1000)clf2.fit(X_train_kbest,Y_train)result_nn_2 = clf2.predict(X_test_kbest)train_norm,test_normalize = normalize(X_train_kbest,X_test_kbest)clf3 = MLPClassifier(activation='tanh',learning_rate='adaptive', hidden_layer_sizes =1000, alpha =0.01, max_iter=1000)clf3.fit(train_norm,Y_train)result_nn_3 = clf3.predict(test_normalize)import matplotlib.pyplot as plt? # doctest: +SKIPfrom sklearn import datasets, metrics, model_selection, svmmetrics.plot_roc_curve(clf2, X_test_kbest, Y_test)? # doctest: +SKIPplt.show()???????????????????????????????????import matplotlib.pyplot as plt? # doctest: +SKIPfrom sklearn import datasets, metrics, model_selection, svmmetrics.plot_roc_curve(clf3, test_normalize, Y_test)? # doctest: +SKIPplt.show()???????????????????????????????????evaluation_scores(result_nn_2, Y_test_arr)evaluation_scores(result_nn_3, Y_test_arr)?### Random Forestfrom sklearn.model_selection import cross_val_scorefrom sklearn.datasets import make_blobsfrom sklearn.ensemble import RandomForestClassifierclf = RandomForestClassifier(n_estimators=50, max_depth=50,random_state=41)clf.fit(train_norm,Y_train)res = clf.predict(test_normalize)print("NORMALIZED")evaluation_scores(res, Y_test_arr)clf = RandomForestClassifier(n_estimators=50, max_depth=50,random_state=41)clf.fit(X_train_kbest,Y_train)res = clf.predict(X_test_kbest)print("NOT NORMALIZED")evaluation_scores(res,Y_test_arr)print ('\n\n')### Logistic regressionfrom sklearn import preprocessingfrom sklearn import utilsclf = LogisticRegression(random_state=241,max_iter = 1000, class_weight={1:0.8,0:0.2})clf2 = LogisticRegression(random_state=241,max_iter = 1000, class_weight={1:0.8,0:0.2})#clf = LogisticRegression(random_state=241,class_weight=weights)clf.fit(train_norm,Y_train)#encoded_X_test = lab_enc.fit_transform(X_test)clf2.fit(X_train_kbest,Y_train)result = clf.predict(test_normalize)result2 = clf2.predict(X_test_kbest)res1 = clf.predict_proba(test_normalize)res2 = clf2.predict_proba(X_test_kbest)#evaluation_scores(result2,Y_test)print('all_features')#print(encoded_Y_test)print(log_loss(Y_test,res1))log_loss(Y_test, res2)print('NORMALIZED')evaluation_scores(result,Y_test_arr)print('NOT NORMALIZED')evaluation_scores(result2,Y_test_arr)#prediction using linear regressionimport numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport statsmodels.api as smfrom statsmodels.graphics.gofplots import ProbPlot%matplotlib inlinedf = pd.read_csv('ehresp_2014.csv')df = df[df['erbmi'] > 0]()y_mean = df['erbmi'].mean()y_std= df['erbmi'].std()df2 = pd.read_csv('ehresp_2014.csv', usecols=['erbmi', 'erincome', 'euexercise', 'eugenhth', 'euwgt', 'eudietsoda', 'eufastfd', 'eufdsit','eusnap'])df2 = df2[df2['erbmi'] > 0]df2.head()y = df['erbmi']new_df = df.copy()new_df2 = new_df.drop(columns= 'tucaseid')new_df3 = new_df2.drop(columns = 'tulineno')new_df4 = new_df3.drop(columns = 'erbmi')x = new_df4#new_()df3 = df2.drop(columns = 'erbmi')()X_train,X_test,Y_train, Y_test = split_data(x,y)X_train2,X_test2, Y_train2, Y_test2 = split_data(df3,y)pca = PCA(n_components=10)pca.fit(new_df4)X_pca_train = pca.transform(X_train)X_pca_test = pca.transform(X_test)pca.explained_variance_test = SelectKBest( k=11)fitted = test.fit(X_train, Y_train)X_train_kbest = fitted.transform(X_train)X_test_kbest = fitted.transform(X_test)# summarize selected featuresdict(zip(list(new_df4.columns),fitted.scores_))x_test = sm.add_constant(X_pca_test)x_train = sm.add_constant(X_pca_train)x_test2 = sm.add_constant(X_test_kbest)x_train2= sm.add_constant(X_train_kbest)x_test3 = sm.add_constant(X_test)x_train3= sm.add_constant(X_train)model = sm.OLS(Y_train, x_train).fit()model2 = sm.OLS(Y_train, x_train2).fit()model3 = sm.OLS(Y_train, x_train3).fit()#sns.residplot(model.fittedvalues, Y_train, lowess=True, line_kws={'color':'r', 'lw':1})#plt.title('Residual plot')#plt.xlabel('Predicted values')#plt.ylabel('Residuals');#QQ = ProbPlot(model.resid)#fig = QQ.qqplot(alpha=0.5, markersize=5, line='s')#plt.title('QQ plot');#model_norm_resid = model.get_influence().resid_studentized_internal# absolute squared normalised residuals#model_norm_resid_abs_sqrt = np.sqrt(np.abs(model_norm_resid))# plot scale-location#sns.regplot(model.fittedvalues, model_norm_resid_abs_sqrt, lowess=True, line_kws={'color':'r', 'lw':1})#plt.xlabel('Fitted values')#plt.ylabel('Sqrt abs standardized residuals')#plt.title('Scale-location');model.summary()model2.summary()model3.summary()ypred = model.predict(x_train)ynewpred=model.predict(x_test)linreg2 = model2.predict(x_test2)lin3 = model3.predict(x_test3)from sklearn.metrics import mean_squared_errormean_squared_error(Y_test, linreg2)#mean_squaredmean_squared_error(Y_test, ynewpred)mean_squared_error(Y_test, lin3 )#mean_squared_error(Y_train, ypred)mean_squared_error(Y_test, linreg2, squared = False)mean_squared_error(Y_test, lin3, squared = False)mean_squared_error(Y_test, ynewpred, squared = False)mean_squared_error(Y_test, ynewpred, squared = False)#random forest regressionfrom sklearn.ensemble import RandomForestRegressorfrom sklearn.datasets import make_regressionregr = RandomForestRegressor(max_depth=1000, random_state=142)regr.fit(X_train, Y_train)rand_f_regr = regr.predict(X_test)regr.score(X_test,Y_test)#regr2 = RandomForestRegressor(max_depth=1000, random_state=142)regr2.fit(X_train_kbest, Y_train)rand_f_regr2 = regr2.predict(X_test_kbest)regr2.score(X_test_kbest,Y_test)regr2 = RandomForestRegressor(max_depth=1000, random_state=142)regr2.fit(X_train_kbest, Y_train)rand_f_regr2 = regr2.predict(X_test_kbest)regr2.score(X_test_kbest,Y_test)regr3 = RandomForestRegressor(max_depth=1000, random_state=142)regr3.fit(X_pca_train, Y_train)rand_f_regr3 = regr3.predict(X_pca_test)regr3.score(X_pca_test,Y_test)mean_squared_error(Y_test, rand_f_regr2)print(mean_squared_error(Y_test, rand_f_regr2, squared = False))print(mean_squared_error(Y_test, rand_f_regr))print(mean_squared_error(Y_test, rand_f_regr, squared = False))print(mean_squared_error(Y_test, rand_f_regr3))print(mean_squared_error(Y_test, rand_f_regr3, squared = False))mean_squared_error(Y_test, rand_f_regr2, squared = False)#neural network regressionfrom sklearn.neural_network import MLPRegressorfrom sklearn.datasets import make_regressionfrom sklearn.model_selection import train_test_splitregr = MLPRegressor(hidden_layer_sizes = 1000, random_state=42, max_iter=1000)regr.fit(X_train_kbest, Y_train)regr_nn = regr.predict(X_test_kbest)regr.score(X_test_kbest, Y_test)regr2 = MLPRegressor(hidden_layer_sizes = 1000, random_state=42, max_iter=1000)regr2.fit(X_train, Y_train)regr_nn2 = regr2.predict(X_test)regr2.score(X_test, Y_test)regr3 = MLPRegressor(hidden_layer_sizes = 1000, random_state=42, max_iter=1000)regr3.fit(X_pca_train, Y_train)regr_nn3 = regr3.predict(X_pca_test)regr3.score(X_pca_test, Y_test)mean_squared_error(Y_test, regr_nn)mean_squared_error(Y_test, regr_nn2)mean_squared_error(Y_test, regr_nn3)mean_squared_error(Y_test,regr_nn, squared = False)mean_squared_error(Y_test,regr_nn3, squared = False)from sklearn.linear_model import Ridgeimport numpy as npclf = Ridge(alpha=10, solver = 'svd')clf.fit(X_train, Y_train)predict_ridge = clf.predict(X_test)clf.score(X_test,Y_test)clf2 = Ridge(alpha=10)clf2.fit(X_pca_train, Y_train)predict_ridge2 = clf2.predict(X_pca_test)clf2.score(X_pca_test,Y_test)mean_squared_error(Y_test, predict_ridge)mean_squared_error(Y_test, predict_ridge2)mean_squared_error(Y_test, predict_ridge, squared = False)mean_squared_error(Y_test, predict_ridge2, squared = False)ДОДАТОК Б ДЕМОНСТРАЦ?ЙН? МАТЕР?АЛИ ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download