Я пытаюсь построить дерево решений для бинарной классификации из огромных (то есть, которые не могут быть сохранены в памяти) наборов данных с использованием MATLAB. По сути, то, что я делаю, это:
- Собрать все данные
- Попробуйте n функции принятия решения по данным
- Выберите функцию наилучшего решения , чтобы разделить классы в данных
- Разделить исходный набор данных на 2
- Рекурс на шпагат
Данные имеют атрибуты k и классификацию, поэтому они хранятся в виде матрицы с огромным числом строк и k + 1 столбцами. Решающие функции являются логическими и действуют на атрибуты, присваивающие каждой строке левое или правое поддерево.
В данный момент я рассматриваю возможность сохранения данных в файлах в виде фрагментов, которые можно хранить в памяти, и присвоения идентификатора каждой строке, поэтому решение о разделении принимается путем последовательного чтения всех файлов, и будущие разбиения определяются по Идентификационные номера.
Кто-нибудь знает, как сделать это лучше?
РЕДАКТИРОВАТЬ: количество строк m составляет около 5e8 и k составляет около 500