Pull to refresh

Comments 12

Какова величина ошибки первого рода и какая величина ошибки второго рода? Это принципиально: не так страшно увидеть спам, как не увидеть не спам.

С байевскими фильтрами для смс (равно как и для пейджера) проблема одна — слишком маленький объем текста, по нему сложно построить технологию правильной классификации. Можете попробовать использовать hidden баесовскую сеть. Вычислений будет побольше, но точность должна получиться лучше.
да согласен на счет ошибок первого и второго рода, но это вообще тема отдельного поста может быть про precision и recall, про sensitivity и specificity, решил не усложнять -)

Можете попробовать использовать hidden баесовскую сеть. Вычислений будет побольше, но точность должна получиться лучше.

я планирую позже сравнить результат с глубокой сетью примого распространения предобученной на органиченной машине больцмана
Так-так-так… народ, а давайте все-таки справляться с смс-спамом не софтом, а штрафованием операторов и расстрелами рассылающих?
Это будет намного эффективнее, чем городить софтину, коммерцию по защите, которая приведет к обычному выкачиванию баблоса из карманов пользователей?)
Не сочтите за рекламу, не имею к авторам сервиса никакого отношения. По опыту лишь могу сказать, что они реально отписывают от надоедающих рассылок – повторных сообщений не было замечено от тех отправителей, на которых было написано заявление.

www.smsnenado.ru
UFO just landed and posted this here
Если конкуренты рассылают спам, почему бы и нет?
А они и не скрывали, что являются крупным «поставщиком» смс услуг.

1. Всех своих клиентов проконтролировать невозможно, а в конечном итоге по голове получают они, это банально дешевле чем судиться/быть оштрафованным (пару десятков раз, а там и лицензию можно потерять)
2. Пара дополнительных баллов в карму + непрямой PR
UFO just landed and posted this here
fileName <- "./Data/Spam/SMSSpamCollection"
df <- LoadData()
Всё таки, имя файла не худо бы передать в функцию LoadData() — а то я запускаю Ваш код в другом окружении и натыкаюсь на ошибку доступа к файлу с данными.
LoadData <- function(fileName = "./Data/Spam/SMSSpamCollection") {...}
ну так можно и передать, просто это значение по умолчанию такое; причем оно такое не спроста: если выкачать репозиторий изгитхаба и открыть проект ml-r.Rproj в r-студии, то рабочей папкой будет как раз папка с файлом проекта, и если вызвать LoadData с параметром по умолчанию, то все должно загрузиться корректно
Ну да, я просто ручками всё скопипастил и переложил в другие директории, поэтому дефолты не работают. Но раз объявлена переменная fileName почему бы её не использовать.

Вот тут ещё может быть проблема (теоретически!), если вдруг лучшим лалас-фактором «объявится» нулевой. В зависимости от случайного разбиение выборки на обучающую, проверяющую (значения передаваемого set.seed ) лучший лаплас фактор принимает значения как 1 так и 2…
laplaceFactorValues <- 1:10
cvErrors <- CrossValidation(df[ds$train, ], df[ds$validation, ], 0:10, showLog = T)

А так — спасибо Вам за показательный код.
Было бы любопытно сравнить решение той же самой задачи, но с использованием SVM (из пакета e1071, например) и, скажем, RandomForest.
я в основном нейросетями занимаюсь, так что в будущем запилю пост про глубокую нейросеть предобученную с помощью ограниченной машины Больцмана для решения этой же задачи

а так ты вполне можешь сам сделать сравнение с свм и остальным, для этого ты составляешь обучающее множество состоящее из векторов длины равной количеству уникальных слов в словаре в целом (который использовался при обучении модели). для каждого сообшения ты ставишь единицу в тех индексах, какие слова есть в сообщении. сообщение вида «more and more over», если в общем словаре more находится на 10 месте, and на 11 и over на 12, а всего слов 1000, тогда вектор будет длины 1000 состоящий из 0, кроме единиц на 10, 11 и 12 месте.

и в принципе можно обучать, такой код от силы строк 10 займет.

открытым остается вопрос что делать со словами не учавствовавшими в обучении, но это уже углуление в тему.

кстати думаю что рандом форест покажет не очень годные результаты, изза специфики модели
Sign up to leave a comment.

Articles