У меня есть огромный набор данных из реляционной базы данных, для которого мне нужно создать модель классификации. Обычно для этой ситуации я бы использовал индуктивное логическое программирование (ILP), но из-за особых обстоятельств я не могу этого сделать.
Другой способ решения этой проблемы - просто объединить значения, когда у меня есть внешнее отношение. Тем не менее, у меня есть тысячи важных и отличных строк для некоторых номинальных атрибутов (например: пациент, имеющий отношение к нескольким различным рецептам лекарств). Таким образом, я просто не могу сделать это без создания нового атрибута для каждой отдельной строки этого номинального атрибута, и, более того, большинство новых столбцов будут иметь значения NULL, если я это сделаю.
Есть ли какой-нибудь не-ILP алгоритм, который позволяет мне собирать данные в реляционных базах данных, не прибегая к таким методам, как поворот, который бы создал тысячи новых столбцов?
источник
Ответы:
Во-первых, некоторые предостережения
Я не уверен, почему вы не можете использовать предпочитаемую вами (под) парадигму программирования, индуктивное логическое программирование (ILP) или то, что вы пытаетесь классифицировать. Предоставление большего количества деталей вероятно привело бы к намного лучшему ответу; тем более что немного необычно подходить к выбору алгоритмов классификации на основе парадигмы программирования, с которой они связаны. Если ваш реальный пример является конфиденциальным, тогда просто выдумайте пример, похожий на вымышленный, но аналогичный.
Классификация больших данных без ILP
Сказав это, после исключения ILP у нас есть 4 другие парадигмы логического программирования в нашем наборе соображений:
в дополнение к десяткам парадигм и подпарадигм вне логического программирования.
В функциональной логике программирования , например , существует расширение НРПА называется индуктивной Функциональная логика программирование , которая основана на инверсию сужению (т.е. инверсии механизма сужения). Этот подход преодолевает несколько ограничений ILP и ( по крайней мере, по мнению некоторых ученых ) подходит для применения с точки зрения репрезентации и дает преимущество, позволяющее выражать проблемы более естественным образом.
Не зная больше о специфике вашей базы данных и препятствиях, с которыми вы сталкиваетесь при использовании ILP, я не могу знать, решает ли это вашу проблему или страдает от тех же проблем. Таким образом, я выброшу совершенно другой подход.
ILP отличается от «классического» или «пропозиционального» подхода к интеллектуальному анализу данных . Эти подходы включают в себя основные элементы машинного обучения, такие как деревья решений, нейронные сети, регрессия, пакетирование и другие статистические методы. Вместо того, чтобы отказываться от этих подходов из-за размера ваших данных, вы можете вступить в ряды многих ученых-данных, инженеров больших данных и статистиков, которые используют высокопроизводительные вычисления (HPC) для применения этих методов с массивными наборами данных (есть также выборка и другие статистические методы, которые вы можете использовать для сокращения вычислительных ресурсов и времени, необходимого для анализа больших данных в вашей реляционной базе данных).
HPC включает в себя такие вещи, как использование нескольких ядер ЦП, расширение масштабов анализа за счет гибкого использования серверов с большим объемом памяти и большого количества быстрых ядер ЦП, использование высокопроизводительных устройств хранилища данных, использование кластеров или других форм параллельных вычислений и т. Д. I ' Я не уверен, с каким языком или статистическим набором вы анализируете ваши данные, но в качестве примера в этом представлении задач CRAN перечислены многие ресурсы HPC для языка R, которые позволят вам расширить алгоритм предложений.
источник