Наука про дані: дослідження прихованого у масиві інформації
Наука про дані – це галузь, що приваблює тих, хто прагне розгадувати складні загадки та знаходити дивовижні закономірності у, здавалося б, хаотичних наборах даних. Це наче пошук рідкісних перлин на дні океану, де дослідники даних, не вдаючись до ручної праці, використовують потужні інструменти з візуалізаціями та аналізують великі масиви чисел. Вони проникають у глибини даних, щоб виявити цінні ідеї, корисні для розвитку бізнесу.
Типовий арсенал фахівця з аналізу даних обов’язково включає різноманітні інструменти, охоплюючи реляційні та NoSQL бази даних, фреймворки для обробки великих даних, засоби візуалізації, інструменти для скрапінгу, мови програмування, інтегровані середовища розробки (IDE) та технології глибокого навчання.
Реляційні бази даних
Реляційна база даних – це організована колекція інформації, представлена у вигляді таблиць з визначеними атрибутами. Зв’язки між таблицями створюються за допомогою визначення відповідних залежностей та обмежень, формуючи таким чином модель даних. Для взаємодії з реляційними базами даних використовується мова SQL (Structured Query Language).
Програмні системи, які керують структурою та вмістом реляційних баз даних, відомі як RDBMS (Relational Database Management Systems). Існує безліч таких систем, і останнім часом вони дедалі більше фокусуються на аналізі даних, додаючи функціонал для роботи зі сховищами великих даних, а також використовуючи методи, такі як аналіз даних та машинне навчання.
SQL Server
Microsoft RDBMS, розвиваючись понад два десятиліття, постійно розширює свій набір інструментів для корпоративних користувачів. Починаючи з версії 2016, SQL Server пропонує підтримку вбудованого коду R. Версія SQL Server 2017 підняла планку, перейменувавши R-сервіси в Machine Language Services, а також додавши підтримку мови Python.
Ці важливі вдосконалення роблять SQL Server привабливим для фахівців з аналізу даних, які, можливо, не мають глибоких знань Transact SQL, основної мови запитів Microsoft SQL Server.
Важливо зазначити, що SQL Server є платним продуктом. Ліцензії можна придбати для встановлення на Windows Server (вартість залежить від кількості користувачів), або використовувати як платну послугу в хмарі Microsoft Azure. Навчитися працювати з Microsoft SQL Server нескладно.
MySQL
У світі програмного забезпечення з відкритим кодом, MySQL є найпопулярнішою RDBMS. Незважаючи на те, що Oracle є її власником, вона залишається безкоштовною та має відкритий код на умовах GNU General Public License. Багато веб-додатків використовують MySQL як основне сховище даних через її сумісність зі стандартом SQL.
Простота встановлення, велика спільнота розробників, наявність вичерпної документації та інструментів сторонніх розробників, таких як phpMyAdmin, що спрощують адміністрування, також сприяють її популярності. Хоча MySQL не має вбудованих функцій для аналізу даних, її відкритість дозволяє інтегрувати її майже з будь-якими інструментами візуалізації, звітності та бізнес-аналітики.
PostgreSQL
Ще одним варіантом RDBMS з відкритим кодом є PostgreSQL. Хоча вона не настільки популярна, як MySQL, вона відзначається своєю гнучкістю, можливістю розширення та підтримкою складних запитів, що виходять за рамки основних операторів, таких як SELECT, WHERE та GROUP BY.
Ці можливості роблять її привабливою для дослідників даних. Ще одна її особливість – підтримка різних середовищ, що дозволяє використовувати її в хмарних та локальних інфраструктурах, або в комбінації обох (гібридні хмарні середовища).
PostgreSQL здатна поєднувати онлайн-аналітичну обробку (OLAP) з онлайн-обробкою транзакцій (OLTP), працюючи в режимі, що називається гібридною транзакційно-аналітичною обробкою (HTAP). Вона також добре підходить для роботи з великими даними завдяки додаванню PostGIS для географічних даних та JSON-B для документів. PostgreSQL також підтримує неструктуровані дані, що дозволяє відносити її як до баз даних SQL, так і до NoSQL.
Бази даних NoSQL
Бази даних NoSQL, також відомі як нереляційні бази даних, забезпечують швидкий доступ до даних, що мають нетабличну структуру. Приклади таких структур включають графи, документи, широкі стовпці, пари “ключ-значення” тощо. Сховища даних NoSQL можуть жертвувати цілісністю даних заради інших переваг, таких як доступність, розділення та швидкість доступу.
Оскільки в сховищах даних NoSQL не використовується SQL, для запитів до них застосовуються мови низького рівня, і не існує єдиної мови, такої ж універсальної, як SQL. Крім того, для NoSQL немає стандартних специфікацій. З цієї причини деякі бази даних NoSQL починають додавати підтримку SQL.
MongoDB
MongoDB – це популярна NoSQL система баз даних, яка зберігає інформацію у форматі документів JSON. Основна увага приділяється масштабованості та гнучкому зберіганню неструктурованих даних. Це означає відсутність фіксованого набору полів, якого потрібно дотримуватися для всіх збережених елементів. Крім того, структура даних може змінюватися з часом, що в реляційних базах даних може створити проблеми для існуючих програм.
Технології MongoDB дозволяють індексувати, здійснювати спеціальні запити та агрегувати дані, створюючи міцну основу для аналізу даних. Розподілений характер бази даних забезпечує високу доступність, масштабування та географічне розгортання без необхідності в складних інструментах.
Redis
Redis – ще один представник NoSQL з відкритим кодом. По суті, це сховище структур даних, що працює в пам’яті. Крім функцій бази даних, він також може використовуватися як кеш-пам’ять і брокер повідомлень.
Redis підтримує різноманітні нетрадиційні структури даних, зокрема хеші, геопросторові індекси, списки та відсортовані набори. Він підходить для обробки даних завдяки високій продуктивності в інтенсивних завданнях, таких як обчислення перетинів наборів, сортування довгих списків або створення складних рейтингів. Висока продуктивність Redis обумовлена його роботою в пам’яті. Є можливість вибіркового збереження даних.
Фреймворки для обробки великих даних
Уявіть, що вам потрібно проаналізувати дані, які користувачі Facebook створюють протягом місяця. Це фотографії, відео, повідомлення, усе. З огляду на те, що користувачі цієї соціальної мережі щодня додають понад 500 терабайт даних, складно навіть уявити обсяг інформації за цілий місяць.
Для ефективної обробки таких величезних масивів даних потрібна спеціальна структура, здатна обчислювати статистику на основі розподіленої архітектури. На ринку є два основних фреймворки: Hadoop та Spark.
Hadoop
Фреймворк Hadoop вирішує складності, пов’язані з пошуком, обробкою та зберіганням великих масивів даних. Він працює в розподіленому середовищі, використовуючи кластери комп’ютерів, які обробляють прості алгоритми. Існує алгоритм оркестровки MapReduce, що розділяє великі завдання на дрібні частини, а потім розподіляє їх між доступними кластерами.
Hadoop рекомендується для корпоративних сховищ даних, що потребують швидкого доступу та високої доступності за невелику ціну. Однак для підтримки структури в робочому стані необхідний адміністратор Linux з глибоким розумінням Hadoop.
Spark
Hadoop – не єдиний фреймворк для обробки великих даних. Ще одним важливим інструментом є Spark. Механізм Spark був розроблений для того, щоб перевершити Hadoop за швидкістю аналітики та простотою використання. Він досяг цієї мети: згідно з порівняннями, Spark працює в 10 разів швидше, ніж Hadoop, коли працює з диском, та в 100 разів швидше при роботі в пам’яті. Крім того, для обробки того ж обсягу даних потрібна менша кількість машин.
Крім швидкості, ще однією перевагою Spark є підтримка потокової обробки. Цей тип обробки даних, також званий обробкою в реальному часі, передбачає безперервне введення та виведення даних.
Інструменти візуалізації
Серед аналітиків даних поширений жарт: якщо довго «мучити» дані, вони зізнаються в тому, що потрібно. У цьому контексті «мучити» означає маніпулювати даними шляхом їх перетворення та фільтрації, щоб краще їх візуалізувати. І тут на допомогу приходять інструменти візуалізації даних. Ці інструменти беруть попередньо оброблені дані з різних джерел і представляють їх у графічній, зрозумілій формі.
Існує безліч інструментів, що належать до цієї категорії. Незалежно від ваших уподобань, найбільш широко використовуваним інструментом є Microsoft Excel та його функції для побудови діаграм. Діаграми Excel доступні кожному користувачеві Excel, але вони мають обмежені можливості. Те ж саме стосується й інших програм для роботи з електронними таблицями, наприклад, Google Sheets та Libre Office. Однак, тут йдеться про більш специфічні інструменти, розроблені спеціально для бізнес-аналітики (BI) та аналізу даних.
Power BI
Нещодавно Microsoft випустила свій додаток для візуалізації Power BI. Він може отримувати дані з різних джерел, таких як текстові файли, бази даних, електронні таблиці та різноманітні онлайн-сервіси, включно з Facebook і Twitter, та використовувати їх для створення інтерактивних інформаційних панелей, заповнених діаграмами, таблицями, картами та іншими візуальними об’єктами. Об’єкти інформаційних панелей є інтерактивними, тобто ви можете натиснути на ряд даних на діаграмі, щоб вибрати його та використовувати як фільтр для інших об’єктів на панелі.
Power BI – це поєднання настільної програми Windows (частина пакету Office 365), веб-програми та онлайн-сервісу для публікації інформаційних панелей в Інтернеті та надання доступу до них користувачам. Сервіс дозволяє створювати та керувати дозволами для надання доступу до панелей тільки певним користувачам.
Tableau
Tableau – це ще один інструмент для створення інтерактивних інформаційних панелей з даних, отриманих з різних джерел. Він також пропонує настільну версію, веб-версію та онлайн-сервіс для спільного використання інформаційних панелей. Tableau працює інтуїтивно зрозуміло, як стверджується його розробниками, і він простий у використанні для людей без технічної підготовки. Про це свідчать численні посібники та онлайн-відео.
Серед видатних особливостей Tableau можна виділити необмежену кількість конекторів для передачі даних, можливість роботи з “живими” даними та даними в пам’яті, а також дизайн, оптимізований для мобільних пристроїв.
QlikView
QlikView пропонує простий і зрозумілий інтерфейс, який допомагає аналітикам виявляти нові ідеї на основі даних за допомогою візуалізацій, що легко сприймаються будь-ким.
Цей інструмент відомий як одна з найгнучкіших платформ для бізнес-аналітики. Він пропонує функцію асоціативного пошуку, яка допомагає зосередитися на найважливіших даних, заощаджуючи час, необхідний для самостійного пошуку. За допомогою QlikView можна співпрацювати з колегами в режимі реального часу, проводячи порівняльний аналіз. Усі відповідні дані можуть бути об’єднані в одній програмі з функціями безпеки, що обмежують доступ.
Інструменти для скрапінгу
В епоху зародження Інтернету, веб-сканери почали подорожувати мережами, збираючи інформацію. З розвитком технологій термін веб-сканування змінився на веб-скрапінг, але суть залишилася тією ж: автоматизоване вилучення інформації з веб-сайтів. Для здійснення веб-скрапінгу використовуються автоматизовані процеси або боти, що переміщаються веб-сторінками, видобуваючи з них дані та експортуючи їх у різних форматах або вставляючи в бази даних для подальшого аналізу.
Далі представлені характеристики трьох найпопулярніших веб-скраперів, що є доступними сьогодні.
Octoparse
Octoparse – це веб-скрапер, який пропонує ряд цікавих функцій, зокрема вбудовані інструменти для отримання інформації з веб-сайтів, які зазвичай ускладнюють роботу роботам-скраперам. Це настільний додаток, що не вимагає програмування, зі зручним інтерфейсом, що дозволяє візуалізувати процес вилучення за допомогою графічного конструктора робочого процесу.
Окрім окремого додатка, Octoparse пропонує хмарний сервіс для прискорення процесу вилучення даних. Користувачі можуть збільшити швидкість в 4-10 разів, використовуючи хмарний сервіс замість настільного додатка. Якщо ви використовуєте настільну версію, Octoparse можна використовувати безкоштовно. Для використання хмарного сервісу потрібно придбати один із платних планів.
Content Grabber
Якщо вам потрібен багатофункціональний скрапер, варто звернути увагу на Content Grabber. На відміну від Octoparse, для його використання необхідні навички програмування. Замість цього ви отримуєте можливість редагувати скрипти, інтерфейси для налагодження та інші розширені функції. За допомогою Content Grabber можна використовувати мови .Net для створення регулярних виразів, що позбавляє від необхідності використовувати вбудований інструмент.
Інструмент надає API (інтерфейс прикладного програмування), що можна використовувати для додавання можливостей скрапінгу до настільних і веб-додатків. Щоб використовувати цей API, розробники повинні мати доступ до служби Windows Content Grabber.
ParseHub
Цей скрапер може працювати з різними типами контенту, включно з форумами, коментарями, календарями та картами. Він також може працювати зі сторінками, що містять автентифікацію, Javascript, Ajax тощо. ParseHub можна використовувати як веб-програму або настільний додаток, який працює на Windows, macOS X і Linux.
Як і Content Grabber, для ефективного використання ParseHub рекомендується мати певні знання в програмуванні. Він має безкоштовну версію з обмеженням до 5 проектів і 200 сторінок за один запуск.
Мови програмування
Подібно до того, як SQL була створена спеціально для роботи з реляційними базами даних, існують інші мови, розроблені спеціально для науки про дані. Ці мови дозволяють розробникам створювати програми для аналізу великих масивів даних, статистики та машинного навчання.
SQL також є важливою навичкою для фахівців з обробки даних, оскільки багато організацій досі використовують реляційні бази даних. Однак “справжніми” мовами науки про дані є R і Python.
Python
Python – це високорівнева інтерпретована мова програмування загального призначення, що підходить для швидкої розробки програм. Вона має простий та легкий для вивчення синтаксис, що дозволяє швидко навчатися та знижує витрати на підтримку програм. Існує багато причин, чому ця мова є найкращою для науки про дані. Ось деякі з них: можливість створення скриптів, виразність, портативність і продуктивність.
Ця мова є хорошим початком для дослідників даних, що планують багато експериментувати, перш ніж приступити до серйозної обробки даних, а також для тих, хто хоче розробляти повноцінні програми.
R
Мова R в основному використовується для статистичної обробки даних та побудови графіків. Хоча R не призначена для розробки повноцінних програм, як Python, останніми роками вона стала дуже популярною завдяки своєму потенціалу для інтелектуального аналізу та аналізу даних.
Завдяки постійно зростаючій бібліотеці безкоштовних пакетів, що розширюють її функціонал, R здатна виконувати різноманітні завдання з обробки даних, включно з лінійним/нелінійним моделюванням, класифікацією, статистичними тестами тощо.
Цю мову не так легко вивчити, але після знайомства з її філософією, ви зможете здійснювати статистичні обчислення на професійному рівні.
IDE
Якщо ви серйозно плануєте присвятити себе науці про дані, вам необхідно ретельно вибрати інтегроване середовище розробки (IDE), що відповідає вашим потребам, оскільки ви та ваша IDE будете проводити багато часу, працюючи разом.
Ідеальне IDE повинно об’єднувати всі інструменти, необхідні для щоденної роботи програміста: текстовий редактор з підсвічуванням синтаксису та автозавершенням, потужний налагоджувач, браузер об’єктів та легкий доступ до зовнішніх інструментів. Крім того, воно має бути сумісним із мовою, яку ви обрали. Отже, доцільно обирати IDE вже після того, як ви визначилися з мовою програмування.
Spyder
Spyder – це універсальне IDE, розроблене для науковців та аналітиків, які також потребують програмування. Щоб зробити їх роботу зручною, воно не обмежується функціями IDE, а також надає інструменти для дослідження/візуалізації даних та інтерактивного виконання, характерні для наукового пакету. Редактор у Spyder підтримує декілька мов і надає браузер класів, розбиття вікон, перехід до визначення, автоматичне завершення коду та навіть інструмент аналізу коду.
Налагоджувач допомагає відслідковувати кожен рядок коду в інтерактивному режимі, а профайлер – знаходити та усувати неефективності.
PyCharm
Якщо ви програмуєте на Python, то, швидше за все, ви оберете IDE PyCharm. Він має інтелектуальний редактор коду з розумним пошуком, автодоповненням коду, виявленням та виправленням помилок. Всього одним клацанням миші ви можете перейти з редактора коду до будь-якого вікна, пов’язаного з контекстом, включно з вікном тесту, суперметоду, реалізації, оголошення тощо. PyCharm підтримує Anaconda та багато наукових пакетів, таких як NumPy та Matplotlib.
Він пропонує інтеграцію з найважливішими системами контролю версій, а також з програмою виконання тестів, профайлером та налагоджувачем. На додаток до цього, він інтегрується з Docker і Vagrant для забезпечення кросплатформної розробки та контейнеризації.
RStudio
Для фахівців з обробки даних, які віддають перевагу мові R, ідеальним варіантом IDE буде RStudio, через його багатий функціонал. Його можна встановити на робочому столі з Windows, macOS або Linux, або запустити з веб-браузера, якщо ви не хочете встановлювати його локально. Обидві версії пропонують такі переваги, як підсвічування синтаксису, розумні відступи та автодоповнення коду. Також є інтегрований переглядач даних, який стає в пригоді, коли потрібно переглянути табличні дані.
Режим налагодження дозволяє спостерігати за динамічним оновленням даних під час виконання програми або скрипту крок за кроком. Для контролю версій RStudio інтегрує підтримку SVN і Git. Приємним бонусом є можливість створювати інтерактивні графіки за допомогою бібліотек Shiny і дає.
Ваш персональний інструментарій
Тепер у вас є повне уявлення про інструменти, які необхідні для успішної роботи в науці про дані. Сподіваємося, що ми надали вам достатньо інформації для вибору інструмента, що найбільше вам підходить в кожній з категорій. Тепер черга за вами. Наука про дані – це перспективна галузь для побудови кар’єри. Але якщо ви бажаєте досягти успіху, необхідно постійно стежити за змінами в трендах і технологі