Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Двокаскадна декомпозиція простору






 

Підхід з декомпозицією всього простору n -вимірних даних полягає в поділі всіх координат на частини і побудови гіперкубів. Фактично рознесення значень точок n -вимірного простору у відповідний гіперкуб вимагає попереднього опрацювання даних, а саме сортування значень вибірки за всіма координатами.

Для декомпозиції простору використовуємо двокаскадну кластеризацію. Розбиваємо вхідну множину ключів Q (Q 1, Q 2, Q 3, … QN)на p підмножин O 1(Q 1, Q 2, Q 3, … Qz), O 2(Qz+ 1, Q z +2, Q z +3, … Qt), …, Op (Qt +1, Q t +2, Qt+ 3, … QN). До кожної з підмножин, застосуємо алгоритм кластеризації, утворивши множини відповідних кластерів K 1(k 1, k 2, k 3, …), K 2(ks, ks +1, ks +2, …), …, Kp (kr, kr +1, kr +2, …), де k 1, k 2, …, ki,... – кластери, ключі в яких відносяться до відповідних підмножин O 1, O 2, …, Op. Утворимо множину кластерів 1-го каскаду кластеризації K об’єднанням (2.20). Застосуємо до цієї множини алгоритм кластеризації, розглядаючи кожен з кластерів k 1, k 2, …, ki,... як базовий, тобто листок деревазгортання. В результаті сформується множина кластерів 1-го каскаду. Таким чином отримуємо двокаскадну декомпозицію простору. Схема поділу та згортання зображена на рис. 2.10.

 

Рис. 2.10. Двокаскадне дерево формування кластерів

Нехай простір складаєтсься із s n -вимірних даних: C = C (a, b, …, z). Вимірність а поділимо на n частин, b – на m частин,..., вимірність z – на k частин. Поділ простору за вимірностями на частини за параметрами n, m, …, k позначимо вектором розбиття l = (n, m, …, k). Схематично поділ тривимірного простору зображено на рис. 2.11.

Рис. 2.11. Схема поділу тривимірного простору на куби

 

Використаємо два способи поділу простору: гіперкуби різних розмірів, але з однаковою кількістю значень даних; другий ­­– на гіперкуби з неконтрольованими кількостями значеннями даних, але контрольованими розмірами сторін, що задаються користувачем.

На рис. 2.12 схематично зображено поділ двовимірного простору: а – вхідна множина, б – гіперкуби із однаковою кількістю точок, в – поділ за значеннями по кожній координаті.

а б в

Рис. 2.12. Схема поділу двовимірного простору

На рис. 2.12, а зображено простір що складається із 20000 2-вимірних точок, згенерованих за нормальним законом розподілу. На рис. 2.12, б вектор розбиття l = (2, 2) дає гіперкуби (прямокутники у 2-вимірному просторі) із однаковою кількістю точок, але різних за розмірами. На рис. 2.12, в цей же вектор розбиття та поділ координатних проміжків на рівні частини дає однакові гіперкуби. На рис. 2.12, б – кожна підмножина (кожен квадрант) містить по 5000 точок. На рис. 2.12, в червоним кольором позначено 4540 точок, зеленим – 2030, синім – 11350, темносинім – 2080.

Складність алгоритму збільшується на сортування вибірки за всіма координатами, тобто стає рівною: O (pni 3) + pO (N 2).

Приведемо алгоритм поділу гіперкуба на куби із однаковою кількістю точок:

Крок 0. Отримати вектор l = (n, m, …, k) розбиття гіперкуба за його вимірностями a, b, …, z; i = 0; множина C – вхідна множина.

Крок 1. Обчислити count = [ s / l 0].

Крок 2. Якщо l 0 = 1 то перейти на крок 7, інакше на крок 3.

Крок 3. Посортувати множину С за i -вимірністю.

Крок 4. j = 0. Поки j < l 0:

Крок 5. Поки кількість точок у Ctj не рівна count, перенести точку із множини С у Ctj, якщо С = перейти на крок 6, інакше j = j +1.

Крок 6. Перенести всі точки із множини С у Ctj.

Крок 7. Додати до множини Сt множину С.

Крок 8. Видалити зі списку l перший елемент l 0.

Крок 9. Якщо l = , то кожну підмножину з Сt додати до множини результату Сres. Інакше i = i +1, для кожної підмножини Сt виконати алгоритм, починаючи з 1 кроку.

Множина Сt містить підмножини проміжних результатів поділу гіперкуба. Множина Сres містить шукані підмножини розбиття гіперкуба. Крок 6 додає { s / l 0} точок до останньої підмножини у Сt.

У випадку коли необхідно поділити гіперкуб на куби за значеннями точок по кожній вимірності, поданий вище алгоритм зміниться в наступному кроці:

Крок 5. minMaxValue = C 0, i + Cs -1, i. Поки координата точки Сі ≤ [(i + 1) ∙ minMaxValue / l 0], перенести точку із множини С у Ctj, якщо С = перейти на крок 6, інакше j = j +1.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.