В настоящее время я работаю над сентиментальным анализом данных twitter для одной из данных компании. Я загружаю данные в HDFS и используя классификатор Naive Bayes от Mahout для прогнозирования положительных, отрицательных или нейтральных настроений ,Логистическая регрессия Реализация SVM в Mahout
Вот что я делаю
я обеспечиваю подготовки данных к машине (ключ: настроения, значение: текст).
Использование библиотеки mahout путем вычисления tf-idf (Inverse Document Frequency) текста, создающего вектор-функцию.
махаут seq2sparser -i/пользователь/корень/new_model/dataseq --maxDFPercent --minSupport 4 1000000 --maxNGramSize 2 -a org.apache.lucene.analysis.WhitespaceAnalyzer -o/пользователь/корень/new_model/предсказывал
Разделение данных как набора для обучения и набора тестов.
Этот вектор функции Я передаю наивный алгоритм Байеса, чтобы построить модель.
махаут trainnb -i/пользователь/корень/new_model/железно-векторы -EL -lI/пользователь/корень/new_model/labelindex -o/пользователь/корень/new_model/модель -ow -c
- Используя эту модель, я предсказываю чувство новых данных.
Это очень простая реализация, что я делаю. Благодаря этой реализации я получаю очень низкую точность, даже если у меня есть хороший набор для обучения. Поэтому я решил переключиться на логистическую регрессию/SVM, потому что они дают лучшие результаты для этой проблемы.
Итак, мой вопрос: как я могу использовать этот алгоритм для построения моей модели или предсказания настроений твитов с использованием этих двух алгоритмов. Какие шаги я должен выполнить для достижения этого?
Вы фильтруете слова, используя слова остановки? Насколько низкая точность? Является ли ваша точность рассчитана по одному тестовому набору или перекрестно проверена? –
Нет. Я не удаляю стоп-слова. Я тестировал его на 1000 тестовых данных. Точность составляет около 65%. –
Если вы сохраняете слова остановки (т. Е. Шумные функции) и выполняете только 1 проход поезда/теста, то полученная точность может быть не очень значимой. Прежде чем решить, следует ли менять алгоритм, я предлагаю убедиться, что 65% - это точная оценка точности. Например, вы можете выполнить кросс-валидацию (я не знаю, возможно ли это с помощью Mahout), или вы можете выполнить процедуру обучения n раз и вычислить среднюю точность (70% -поезд-30% или 90% % train-10% test - общие схемы) –