• Главная <
  • Галерея
  • Карта сайта
  • Наши контакты
  • Обратная связь

НОУ ІНТУЇТ | лекція | Короткий огляд алгоритмів інтелектуального аналізу даних. Алгоритми часових рядів і кластеризації

  1. Аналіз часових рядів
  2. кластеризація

Анотація: Дана лекція присвячена розгляду двох класів алгоритмів інтелектуального аналізу даних - алгоритмів часових рядів і алгоритмів кластеризації. Описуються особливості реалізації зазначених алгоритмів в MS SQL Server 2008.

Аналіз часових рядів

У загальному випадку, часовий ряд - це набір числових значень, зібраних в послідовні моменти часу (в більшості випадків - через рівні проміжки часу). Як приклад можна назвати котирування іноземних валют або інших біржових товарів, результати серії експериментів і т.п. Метою аналізу часового ряду може бути виявлення наявних залежностей поточних значень параметрів від попередніх і використовувались наступного разу для прогнозування нових значень.

Ряд можна уявити як впорядкована множина елементів або подій Ряд можна уявити як впорядкована множина елементів або подій   , Кожне з яких в загальному випадку може бути описано набором атрибутів: , Кожне з яких в загальному випадку може бути описано набором атрибутів: .Але на практиці найчастіше використовується один атрибут. При описі варіанти для інтелектуального аналізу даних, позначка часу (або номер елемента в тимчасовому ряді) вводиться як один з атрибутів. Як правило, передбачається, що відмітка часу - дискретне числове значення, а що передбачається атрибут (и) - безперервний.

Виділяють два основних формату представлення часових рядів - стовпчастий і чергується (англ. Mixed) [ 1 ]. Нехай розглянута предметна область - торгівля велосипедами. І потрібно представити дані з продажу двох моделей велосипедів по місяцях, моделі називаються M200 і R200.В цьому випадку ми маємо два тимчасових ряду. В таблиці 10.1 вони представлені в столбчатом форматі, в таблиці 10.2 - використовується чергується.

Таблиця 10.1. Подання часових рядів в "столбчатом" форматі Рік і місяць Кількість M200 КолічествоR200 200904 100 50 200905 120 20 200906 110 60 ... ... ... Таблиця 10.2. Подання часових рядів в "чергується" форматі Рік і місяць Модель Кількість 200904 M200 100 200904 R200 50 200 905 M200 120 200 905 R200 20 200906 M200 110 200906 R200 60 ... ... ...

З даними в столбчатом форматі дещо простіше працювати, але цей формат менш гнучкий. У наведеному прикладі, якщо з якогось моменту з'явилася в продажу третя модель велосипеда, додати дані про неї в разі використання чергується формату буде простіше.

Фактичні значення елементів ряду використовуються для навчання моделі, після чого робиться спроба прогнозу для зазначеного числа нових елементів. Приклад такого аналізу представлено на Мал. 10.1 , Де пунктирною лінією зображені передбачаються значення.

Розглянемо тепер деякі особливості реалізації алгоритму в SQLServer 2008. Алгоритм тимчасових рядів Майкрософт (MicrosoftTimeSeries) надає собою сукупність двох алгоритмів регресії, оптимізованих для прогнозу рядів безперервних числових значень. Цими алгоритмами є:

  1. "Дерево авторегресії з перехресним прогнозуванням" (ARTxp), який оптимізований для прогнозування наступного значення в ряду; з'явився в SQL Server 2005;
  2. "Інтегровані ковзаючі середні авторегресії" (ARIMA), що є галузевим стандартом в даній області; доданий в SQL Server 2008, щоб підвищити точність довгострокового прогнозування.

За замовчуванням служби AnalysisServices використовують кожен алгоритм окремо для навчання моделі, а потім об'єднують результати, щоб отримати найкращий прогноз. Також можна вибрати для використання тільки один алгоритм, в залежності від наявних даних і вимог до прогнозів.

на Мал. 10.2 представлені параметри для одного з вузлів прогнозуючої моделі, заснованої на алгоритмі часових рядів. З малюнка видно, що вузол насправді містить параметри для двох алгоритмів. Також у розглянутого часового ряду 'R250 Europe: Quantity' (кількість проданих в Європі велосипедів марки R250) виявлена ​​кореляція з іншим рядом 'R750 NorthAmerica: Amount' (продажу в Північній Америці велосипедів марки R750).

Облік кореляцій між розглянутими рядами або, інакше кажучи, перехресного впливу, можна відзначити як особливості реалізації алгоритму часових рядів в SQLServer. Це може бути важливо, якщо одночасно аналізуються пов'язані ряди, наприклад, описують ціни на нафту і котирування валют нафтовидобувних країн. Дану корисну можливість підтримує тільки алгоритм ARTxp. Якщо для прогнозу використовується тільки алгоритм ARIMA, перехресне вплив рядів не враховується.

Точність прогнозу для тимчасового ряду може підвищити вказівку відомої періодичності. Наприклад, в даних про продажі магазину спорттоварів по місяцях, швидше за все, буде присутній періодичність 12 (по числу місяців у році).

Коротко розглянемо основну ідею методу авторегресії. Авторегресія відрізняється від звичайної регресії тим, що поточне значення параметра Коротко розглянемо основну ідею методу авторегресії виражається через його значення в попередні моменти часу. Якщо використовувати лінійні залежності, то алгоритм шукає рішення в вигляді:

де де   - похибка, яку треба мінімізувати шляхом підбору коефіцієнтів   , В чому і полягає навчання моделі - похибка, яку треба мінімізувати шляхом підбору коефіцієнтів , В чому і полягає навчання моделі. Як видно з Мал. 10.2 , Наявність кореляції може враховуватися шляхом включення в цю формулу членів з іншого ряду. Періодичність враховують, вводячи в розгляд додаткові члени послідовності. Наприклад, для періодичності 12 це буде , і т.д. А використання аналітичними службами SQLServer дерева авторегресії дозволяє змінювати формулу шляхом розбиття в точках нелінійності.

кластеризація

Як ми вже розбирали раніше, кластеризація дозволяє знизити розмірність завдання аналізу предметної області, шляхом "природною" угруповання варіантів в кластери. Таким чином, кластер будуть об'єднувати близькі за сукупністю параметрів елементи, і в деяких випадках його можна розглядати як єдине ціле. Наприклад, описуючи якийсь курортний регіон можна сказати в ньому 250 днів в році гарна погода, не вдаючись у подробиці щодо температури, атмосферного тиску і т.д.

У випадках, коли для угруповання використовуються значення 1-2 параметрів, завдання кластеризації може бути відносно швидко вирішена вручну або, наприклад, звичайними засобами роботи з реляційними БД. Коли параметрів багато, виникає потреба в автоматизації процесу виявлення кластерів.

Наданий аналітичними службами SQL Server 2008 алгоритм кластеризації (MicrosoftClustering), використовує ітераційні методи для угруповання варіантів з подібними характеристиками в кластери. Алгоритм спочатку визначає наші зв'язки в наборі даних і на основі цієї інформації формує кластери.

Ідею можна проілюструвати за допомогою діаграм на

Новости