петак, 26 априла, 2024
Слободни професионалац

Програмски језик Р и његова примена у науци о подацима (1. део)

Аутор: Надица Миљковић

Дефиниција Р-а и науке о подацима

Р је програмски језик за статистичка израчунавања и визуелизацију. Међутим, треба напоменути да је ово застарела дефиниција која је одговарала Р-у у тренутку када је настао и која се задржала упркос изменама кроз које су прошли и Р и наука о подацима (енг. data science). Данас је немогуће споменути програмски језик Р, а да се не помисли на науку о подацима чије методе не морају нужно да укључују статистичка израчунавања. У прилог томе иде и чињеница да науку о подацима није једноставно дефинисати јер обухвата велику мултидисциплинарну област у којој се користе научне методе, процеси, алгоритми и системи који омогућавају екстракцију знања и закључака из података. Одличан преглед прошлости, садашњости и будућности Р-а дат је у чланку проф. Роџера Пенга са Џон Хопкинс Блумберг школе за јавно здравље (енг. John Hopkins Bloomberg School of Public Health). Проф. Пенг је предложио нову дефиницију која највише одговара тренутној намени Р-а: “Р је језик за анализу података”.

Иако се Ауторка овог чланка слаже са новом дефиницијом проф. Пенга, важно је напоменути да, поред анализе различитих података (нпр. биомедицинских, финансијских, економских), постоје и други примери примене Р-а. Овде су наведена само два: (1) Могуће је помоћу serial пакета који омогућава да се уписују и читају бинарни и аски (енг. ASCII) подаци са серијског порта мерити сигнале (ово је један од начина да се Р повеже са хардвером, нпр. са Ардуино УНО микроконтролером), (2) Иако је аутоматско генерисање извештаја важно за анализу података и науку о подацима, може се користити и у другим областима, применом Markdown R пакeta. Овде треба напоменути да постоје и књиге као што је Data analysis for the life sciences with R7 које су у потпуности написане у Р-у. По мишљењу Ауторке чланка, R Markdown ће бити ускоро трансформисан или интегрисан са другим платформама. Разлог томе је постојање отворених платформи за интерактивно програмирање као што је Jupyter и све веће тежње за непосредном комуникацијом програмских језика. Па се може очекивати да ће се улога Markdown пакета у аутоматском креирању различитих садржаја сигурно променити, али не и нестати.

Релативно велики број чланака је објављен са циљем поређења различитих програмских језика и препоруке најбољег за примену у науци о подацима. Овакви чланци, на први поглед, указују на велико ривалство између програмских језика Р и Пајтон, али ситуација је потпуно другачија. Наиме, Р Студио је 2018. године објавио пакет Reticulate као интерфејс за Пајтон у Р-у који омогућава и аутоматски прелазак између Р и Пајтон објеката. Са друге стране, за писање Р кода у Пајтону, постоји Пyтхон библиотека rpy2 која је објављена 2016. године. Ова интеграција програмских језика је природан след најчешћих ситуација у пракси, а то је да се од почетка до краја једног инжењерског пројекта користи више програмских језика. Упркос чињеници да се број чланака на тему одабира једног јединог и “правог” програмског језика не смањује, пракса је потпуно другачија. Тренутно су веома актуелне вишејезичне платформе за креирање тзв. преносивих библиотека за примену у науци о подацима које могу да се примене у Р-у, Пајтону и другим програмским језицима. Међу најпознатијим вишејезичним платформама налазе се Ursa Labs и Apache Arrow.

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

Циљ овог чланка је да упозна читатељке и читаоце са програмским језиком Р и његовом применом у науци о подацима, без намере да се програмском језику Р даје предност над било којим другим алатом(или алатима). Специфично, циљ овог текста је да мотивише читатељке и читаоце да се баве анализом сигнала, програмирањем у Р-у, да користе слободан софтвер, да наставе професионално усавршавање, да им пружи информације о новим трендовима у науци о подацима и потпуно неочекивано да им исприча једну причу из историје.

Р на Електротехничком факултету у Београду

Програмски језик Р је званично уведен на Електротехничком факултету, Универзитета у Београду пре две године у школској 2016/17 години на Мастер академским студијама на модулу за Сигнале и системе. Курс 13Е051ТОБС (Технике обраде биомедицинских сигнала) се, поред програмирања у Р-у, бави и анализом биосигнала и применом науке о подацима у биомедицинском инжењерству. ТОБС курс је Ауторка овог чланка конципирала тако да га могу бирати сви које генерално занима наука о подацима, програмирање у Р-у и којима је биомедицинско инжењерство привлачна област, а без икаквог претходног знања о овим областима. Иако 80% оцене покривају тест и испит који су формално гледано теоријски оријентисани, предмет је врло практичан. На пример, тест и испит се раде на рачунарима у Р-у, а само тестирање садржи врло мало или скоро нимало провере теоријског знања тј. репетиције чињеница. Пројекат чини 20% оцене и од 2018/19. године у сарадњи са Електротехничким факултетом Универзитета у Љубљани уведена је и награда за најбољи пројекат. Сви пројекти, до сада, су били конципирани тако да имају директну примену у пракси и већина је реализована на скуповима података који су мерени у лабораторијама на Електротехничком факултету, Универзитета у Београду или на другим универзитетима.