Как я могу развернуть свои функции в алгоритме машинного обучения? - PullRequest
2 голосов
/ 22 января 2020

Я новичок в ML, поэтому у меня очень простой вопрос. Я был бы признателен, если бы кто-то разъяснил мне это.

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

Я извлек 3 основных c функции:

  1. Эмоциональные иконки
  2. Восклицательные знаки
  3. Интенсивность слов (очень, действительно эт c .).

Как использовать эти функции с SVM или другими алгоритмами ML?

Другими словами, как развернуть извлеченные функции в алгоритме SVM? Я работаю с python и уже знаю, как мне запустить SVM или другие алгоритмы, но я понятия не имею о связи между извлеченными функциями и их ролью в каждом алгоритме!

Основываясь на ответах некоторых экспертов, я обновляю свой вопрос:

Сначала я хочу оценить ваше время и достойные объяснения. Я думаю, что моя проблема решается ... Итак, в соответствии с тем, что вы сказали, каждому алгоритму ML могут потребоваться некоторые векторизованные функции, и я должен найти способ представить свои функции как векторы. Я хочу объяснить, что я получил из вашего объяснения, в зачаточном примере.

Скажем, у меня значки смайликов (например, 3 значка) как одна особенность:

1 - следовательно, я должен представлять это особенность вектора с 3 значениями.

2-Векторизованная функция может начинаться следующим образом: [0,0,0] (каждое значение представляет значок = :) и :( и: P).

3-Далее я должен go просмотреть каждый твит и проверить, есть ли в твите значок или нет. Например, [2,1,0] показывает, что твит имеет: :) 2 раза, и :( 1 раз, и: p нет времени.

4-После того, как я проверю все твиты, у меня будет большой вектор с размером n * 3 (n - общее количество моих твитов).

5-этапы 1-4 должны быть сделаны для других функций.

6-тогда я должен объедините все эти функции, используя m моделей SVM (m - это число моих функций), а затем классифицируйте их большинством голосов или каким-либо другим способом или создайте длинный вектор, объединив все векторы, и подайте его в SVM.

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

1 Ответ

4 голосов
/ 22 января 2020

в основном, чтобы сделать вещи очень"простыми" и "неглубокими", весь алгоритм требует своего рода числительного c вектора, представляющего особенности

, настоящая работа которого заключается в поиске как представить объекты в виде вектора, которые дают наилучший результат, это зависит от самой функции и от алгоритма, использующего

, например, чтобы использовать SVM, который в основном находит плоскость разделителя, вам необходимо спроецировать объекты на некоторые наборы векторов, которые дают достаточно хорошее разделение, поэтому, например, вы можете рассматривать ваши функции следующим образом:

  • Значки эмоций - создать вектор, который представляет все имеющиеся значки в этом твите определите каждую иконку для индекса от 1 до n, чтобы твит, представленный [0,0,0,2,1], означал, что четвертая и пятая иконки появляются в его теле 2 и 1 раз соответственно

  • Восклицательные знаки - вы можете просто посчитать количество вхождений (лучшим подходом будет представление дополнительной информации об этом l ike место в предложении и прочее ...)

  • Слова интенсивности - вы можете использовать тот же подход, что и Значки эмоций

в принципе каждая функция может использоваться отдельно в модели SVM для классификации хороших и плохих

вы можете объединить все эти функции с помощью 3 моделей SVM а затем классифицировать большинством голосов или другим методом

или

вы можете создать длинный вектор путем объединения всех векторов и передать его в SVM

это всего лишь один подход, вы можете настроить его или использовать другой, чтобы лучше соответствовать вашим данным, модели и цели

...