2012-01-31 7 views
0

Скажем, я хочу создать бинарный классификатор для обнаружения сообщений СПАМа. У меня есть миллиард учебных примеров и около 20 функций. Я хочу, чтобы мой обученный классификатор поместился в память (я запустил его на облачных и дисковых операциях, которые на самом деле rpc-вызовы будут очень дорогим).Как оценить объем памяти, необходимый для бинарного классификатора?

Мой вопрос: как я могу оценить объем памяти, который мне понадобится для этого? Скажем, мой классификатор - Random Forest, и я ничего не знаю о распространении сообщений SPAM в моем учебном наборе.

Только номера: два класса, миллиард примеров, 20 функций.

Возможна ли такая оценка вообще? Как это можно сделать?

+0

Вы пытаетесь установить миллиарды учебных примеров в памяти или подгонять обучаемую модель в память? –

+0

@MichaelMcGowan: Установите обучаемую модель в память и классифицируйте ее в режиме реального времени. – izhak

+0

Хорошо, что теоретически зависело бы от размера деревьев и практически на фактической реализации. –

ответ

2

Для классификации спама вы, вероятно, должны использовать линейный классификатор для функций ввода слов + bigrams + доменных имен или IP-адресов, встречающихся в ссылках + материалах, извлеченных из заголовков и контекста SMTP.

В этом случае вы можете использовать функции на 2 ** 18 размерах (например, с помощью vowpal wabbit) раз 8 байт на каждую функцию, которая делает модель 2MB в памяти.