Machine Learning: Инструменти за НЕпрограмисти

Необходимо ли ви е програмиране, за да се занимавате с машинно обучение?

Бих искала чрез тази статия да ви запозная с различните инструменти за машинно обучение, предназначени за специалисти в конкретна предметна област, които нямат познания по програмиране, като ще се фокусираме най-вече върху KNIME и процеса на работа с него. Интерфейсът на другите продукти е сходен и принципът на работа е еднакъв, като разликите са единствено в допълнителните възможности и приставки, които се предлагат.

Макар че притежаването на добри познания по програмиране дава голям контрол и гъвкавост при използване на алгоритми за машинно обучение и създаване на модели, има и доста инструменти, чрез които специалистите могат да се възползват от подобни възможности без да се налага да пишат код.

Тези инструменти са полезни, защото имат графичен интерфейс, чрез който моделите се настройват. Това обаче не отменя необходимостта от знания в предметната област, статистическите методи и разбиране на самите алгоритми за машинно обучение.

KNIME (Konstanz Information Miner)

KNIME

KNIME е безплатен инструмент с отворен код, който е предназначен за анализ на данни и машинно обучение. Той е разработен в академична среда – университета в Констанц. Опростеният и интуитивен графичен интерфейс, който притежава, включва множество модули и учебни примери (KNIME Examples). KNIME позволява връзка към множество източници на данни (текстови файлове, бази данни, уеб услуги и др.) чрез компоненти. Той е мощен инструмент, с който специалистите могат да подготвят данните си за анализ – има голям набор от възможности за трансформация като групиране или филтриране на редове, транспониране, промяна на стойности и др.

С KNIME специалистите могат да извличат полезна информация от данните чрез графичното им представяне и изграждане на модели за машинно обучение, като са им необходими добри знания за моделиране и визуализация.

Работен процес

Работата в KNIME е организирана в работно пространство (workspace), в което се изграждат процеси (workflows) с помощта на възли (nodes). Процесите представляват отделните стъпки от зареждането на данните до получаването на крайните резултати. Възлите са компонентите, които добавят необходимите за дадена стъпка действия. Например, ако трябва да се обединят данните от два източника, може да се използва възел, който извършва дадената операция. Ако моделът е сложен (състои се от много процеси), отделните процеси могат да се групират за по-добра организираност на работата.

При създаване на модел за машинно обучение специалистите разполагат с голям набор от готови възли, намиращи се в хранилището (Node Repository). Има различни типове възли за всеки стадий на изграждане на модела – за четене и обработка на данни, за визуализации, за статистически методи и др.

Възлите се свързват помежду си, подават им се входни данни и параметри, след което се изпълнява алгоритъмът и се връщат резултати. От няколко възела може да се създаде нов (metanode), което прави модела по-компактен и позволява възлите да се използват и в други проекти като вече готови компоненти.

Всеки възел е много добре документиран, като е описано какво може да се постигне с него, къде се прилага и полезни съвети при работа.

KNIME също така дава възможности за изготвяне на отчети благодарение на разширението KNIME Report Designer.

Предимства:

  • Няма ограничение за размера на данните
  • Предоставя добър контрол над данните във всяка една стъпка
  • Напълно функционален безплатен продукт
  • Безплатни компоненти и голяма общност потребители и разработчици
  • KNIME Workflow Coach, който интерактивно препоръчва подходящи възли

Недостатъци:

  • Въпреки големия брой възли, понякога няма определени функционалности, които на специалиста му трябват
  • За много от действията се налага добавяне на допълнителни компоненти (например при смяна на цвят)

Още инструменти

Orange

Orange

Orange е инструмент с отворен код, който също както KNIME, е разработен в академична среда (университетът в Любляна). Той е предназначен за извличане на знания от данни (data mining), машинно обучение, анализ и визуализация. Разполага с множество компоненти (widgets), които комуникират помежду си чрез връзки (channels), за да може специалистите бързо и лесно да изготвят модели и представят резултати.

Orange предлага и допълнителни пакети от компоненти, с които да се разширят възможностите на инструмента, както и примерни данни, които могат да се използват за тестови и учебни цели.

Предимства:

  • Съдържа голям набор от компоненти
  • Много интуитивен и лесен за използване drag-and-drop интерфейс
  • Богат избор на визуализации, като някои специфични (географски карти, облак от думи и др.) са достъпни чрез разширения (add-ons)
  • Перфектен е за учебни цели

Недостатъци:

  • Няма достатъчно алгоритми за машинно обучение
  • Невинаги предоставя достатъчно параметри за настройка на компонентите (например при RandomForest, няма възможност за избиране на критерия на Джини или ентропия, необходими са допълнителни компоненти за тази цел)
  • По-подходящ е за малки проекти, понеже има затруднения при работа с големи обеми от данни

RapidMiner

RapidMiner

Една от водещите системи за анализ на данни и директен конкурент на KNIME е RapidMiner. Това е професионален инструмент, чиято безплатна версия е с ограничени възможности. Позволява на специалистите да подготвят данните си, да създават модели за машинно обучение, както и да правят анализи и да визуализират резултати.

Предимства:

  • Връзка с голям брой източници на данни (Oracle, MySql, SQL Server и др.)
  • Множество методи за трансформация, анализ и визуализация на данни
  • Отделните етапи на цялостния процес са визуално разделени (Design, Result и др.)

Недостатъци:

  • Съобщенията за грешка са кратки и могат да бъдат доста объркващи
  • Няма достатъчно помощни примери за всеки блок

Къде са приложими тези инструменти?

Специалистите в конкретна предметна област успяват да се възползват от алгоритмите за машинно обучение, като ги прилагат в работата си чрез ML инструментите с графичен интерфейс. Те са широко приложими, като някои от сферите, в които се използват са:

  • финансови институции – за управление на риск, прогноза за отказ на клиентите и др.
  • търговия – сегментиране, препоръчване на продукти и кръстосана продажба, прогнозиране на жизнената стойност на клиентите и др.
  • телекомуникации – автоматизация на клиентско обслужване, използване на семантичен анализ при клиентско удовлетворение и др.
  • производство – управление на веригата на доставки, при поддръжката на продукти и др.

Искате да научите повече за машинното обучение?

Включете се в курса по машинно обучение и анализ на данни с Python.

Научете повече

Автор: Десислава Христова