Изменения

Перейти к: навигация, поиск

Обучение на больших данных

648 байт добавлено, 17:18, 22 января 2021
Нет описания правки
=== Применение машинного обучения к большим данным. Поиск в больших данных ===
В условиях больших данных иногда возникает ситуация, когда пользователю нужно найти какие-то конкретные данные. Встаёт Возникает задача эффективного поиска в условиях больших данных. В силу большого объёма всех данных большинство известных методов поиска будут работать неэффективно. Например, '''''поиск перебором'''''<ref ="bruteforcesearch">[https://en.wikipedia.org/wiki/Brute-force_search#:~:text=In%20computer%20science%2C%20brute%2Dforce,candidate%20satisfies%20the%20problem's%20statement. Поиск перебором]</ref> (англ. ''exhaustive search'') {{---}} широко распространенный алгоритм не подходит для больших данных вследствие плохой оптимизации по времени исполнения и используемому месту. Также '''не подходят''' алгоритмы '''''поиска с ориентиром (индексирование)''''' (англ. ''beacon guided searching, BGS'') и [[Метрический классификатор и метод ближайших соседей|'''''метод "ближайших соседей"''''']] (англ. ''nearest neighbour search''). В случае первого на больших данных хранение индексов этих данных становится проблемой, так как данных слишком много, а в случае со вторым алгоритмом будут сильно мешать различные шумы и отклонения, коих в больших данных зачастую очень много.
Здесь на помощь приходят [https://ru.wikipedia.org/wiki/%D0%93%D0%B5%D0%BD%D0%B5%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC генетические алгоритмы]. Процедура поиска в больших данных производится довольно часто, следовательно такие алгоритмы довольно быстро приспособятся к поиску наиболее часто используемых данных. Также к плюсам генетических алгоритмов можно отнести возможность кастомизации и устойчивость к шумам, а также хорошую масштабируемость для задач с более высокой размерностью. Всё это как раз то, что нужно в случае больших данных.
 
Кроме того, при поиске в больших данных может помочь [[Кластеризация|кластеризация]] этих данных. Таким образом они будут разбиты на группы "похожести", когда данные в каждой группе обладают сходными признаками, по которым можно существенно снизить круг дальнейшего поиска, что существенно ускоряет процесс поиска.
== Обработка разнородных данных в рамках одной системы ==
Данная модель позволяет хранить как сырые разнородные данные, так и структурированные данные в соответствии с предопределенной схемой. Такой результат достигается наличием шаблонов объектов и шаблонов параметров объектов. Также это позволяет снизить временные затраты на доступ к данным.
 
=== Схема модели хранения разнородных данных ===
[[Файл:Schema.PNG|700px|thumb|right|Рисунок 1: Модель хранения разнородных данных<ref name="datalake_pic">[http://www.vstu.ru/upload/iblock/ed2/ed26c52e2ff99fb5b39fbaf37717a96c.pdf Модель хранения разнородных данных - схема озера данных]</ref>]]
 
=== Схема модели хранения разнородных данных ===
Рассмотрим схему модели, изображённую на рисунке 1:
=== Применение методов машинного обучения для построения "озера" данных ===
Представленная выше модель хорошо описывает схему хранения разнородных данных путём создания некоторого шаблона, который мог бы описывать все эти данные. Построение такого шаблона может быть очень трудоёмкой задачей, так как данных много и их форматов тоже может быть много. Встаёт Возникает задача '''''метапрофилирования''''' данных. Этот процесс направлен на структуризацию разносортных данных и различных метаданных. Без этого большинство действий с данными будут попросту невозможны – будь то построение запросов для СУБД, очистка данных, их классификация и кластеризация. Кроме того, в условиях больших данных, в БД может быть огромное количество таблиц, чьи метаданные могут сильно различаться. В таких условиях получение полной информации даже по одному объекту будет практически невыполнимой задачей.
'''Мета-профайл''' (англ. ''metadata-profile'') {{- --}} особая структура данных, призванная собрать воедино различную информацию о конкретном объекте <tex>O</tex>. Сюда так же входят и различные представления этого объекта. Например, музыкальную композицию можно идентифицировать по-разному, от названия и автора до жанра и года создания:
::<tex>MP=(Name, Prop)</tex>
* <tex>Name</tex> {{---}} уникальное имя мета-профайла, <tex>Name \in Namespace</tex>, где <tex>Namespace</tex> {{---}} все возможные имена объектаобъектов;
* <tex>Prop</tex> {{---}} множество атрибутов мета-профайла <tex>\{p_1, \dots, p_n\} | \forall p_i \in Prop: i=\{1, \dots, n\}</tex>. <tex>p_i=(PName_i, PType_i, P_i, PF_i)</tex>:
** <tex>PName_i</tex> {{---}} уникальное имя атрибута, <tex>PName_i \in PNamespace</tex>, где <tex>PNamespace</tex> {{---}} все возможные имена атрибутов;.** <tex>PType_i</tex> {{---}} простой тип данных, <tex>PType_i \in Plaintypes</tex>, где <tex>Plaintypes</tex> {{---}} все возможные типы данных. Важно, что типы являются простыми, то есть числами, символами или строками;.
** <tex>P_i : 0 < P_i < 1</tex> {{---}} вероятность принадлежности атрибута <tex>p_i</tex> некоторому случайно отобранному представлению <tex>O</tex>.
Построение этой структуры можно произвести различными методами машинного обучения. Сюда входят [[Логистическая регрессия|логистическая регрессия]], [[Байесовская классификация|наивная байесовская классификация]], [[Глубокое обучение|глубокое обучение]]. Фактически, здесь стоит задача классификации, в которой мы должны понять, какие атрибуты относятся к описываемому объекту, а какие нет.
Предположим, что у нас имеется некоторая выборка данных из одного источника. В данной выборке для каждого объекта имеется лишь одно представление, достаточно полное для однозначной его идентификации. Также имеется выборка данных, относящихся к объектам совсем другого типа, но имеющих похожие атрибуты, её размер должен быть примерно таким же, как и у предыдущей, чтобы убедиться в том, что данные для обучения сбалансированы. Это необходимо, чтобы отметать неверные варианты при обучении. Опираясь на эти выборки, происходит обучение на остальных данных (различные источники данных), представленных в виде векторов , содержащих в себе имена различных атрибутов объекта и значения этих атрибутов. На основе вероятностей, имен, типов атрибутов принимается решение, отнести их к объекту или нет. Таким образом, шаблон объекта обрастает новыми атрибутами, по которым его можно идентифицировать.
== Работа с комплексом Apache Spark для обучения на больших данных ==
* [https://www.researchgate.net/profile/Michael_Gubanov/publication/346275767_WebLens_Towards_Interactive_Large-scale_Structured_Data_Profiling/links/5fc0055c299bf104cf7fd4a1/WebLens-Towards-Interactive-Large-scale-Structured-Data-Profiling.pdf Towards Interactive Large-scale Structured Data Profiling] {{---}} Rituparna Khan, Michael Gubanov {{---}} Department of Computer Science, Florida State University, 2020г.
[[Категория: Машинное обучение]]
[[Категория: Большие данные]]
59
правок

Навигация