Nano Hash - криптовалюты, майнинг, программирование

могу ли я использовать числовые функции в модели crf

Возможно/хорошо ли добавлять числовые функции в модели crf? например положение в последовательности.

Я использую CRFsuite. Кажется, все функции будут преобразованы в строку, например. 'pos=0', 'pos=1', которые затем теряют свое значение как евклидово расстояние.

Или я должен использовать их для обучения другой модели, например. svm, тогда ансамбль с моделями crf?



Ответы:


1

Я выяснил, что CRFsuite обрабатывает числовые функции, по крайней мере, согласно этой документации:

  • {"string_key": float_weight, ...} указывает, где ключи — это наблюдаемые функции, а значения — их веса;
  • {"string_key": bool, ...} dict; True конвертируется в вес 1.0, False - в 0.0;
  • {"string_key": "string_value", ...} dict; это то же самое, что и {"string_key=string_value": 1.0, ...}
  • ["string_key1", "string_key2", ...] список; это то же самое, что и {"string_key1": 1.0, "string_key2": 1.0, ...}
  • {"string_prefix": {...}} dicts: обрабатывается вложенный dict, и к каждому ключу добавляется "string_prefix".
  • {“string_prefix”: [...]} dicts: обрабатывается вложенный список, и “string_prefix” добавляется к каждому ключу.
  • {"string_prefix": set([...])} dicts: обрабатывается вложенный список, и перед каждым ключом добавляется "string_prefix".

Так долго как:

  1. Я сохраняю ввод в правильном формате;
  2. Я использую поплавок против строки поплавка;
  3. Я нормализую это.
13.10.2014

2

Сам CRF может использовать числовые функции, и вы должны их использовать, но если ваши реализации преобразуют их в строки (кодирует в двоичной форме с помощью «кодирования одной горячей точки»), тогда это может иметь меньшее значение. Я предлагаю искать более «чистую» CRF, которая допускает непрерывные переменные.

Забавный факт заключается в том, что CRF по своей сути представляет собой просто структурированный MaxEnt (LogisticRegression), который работает в непрерывной области, это кодирование строк на самом деле является способом перехода от категориальных значений к < strong>непрерывный домен, поэтому ваша проблема на самом деле является результатом «перепроектирования» CRFSuite, который забыл о реальных возможностях модели CRF.

02.10.2014
  • Попался. Причина, по которой я выбираю CRFsuite, заключается в том, что он поставляется с прекрасной оболочкой Python, которая легко использовать. Поможет ли использование этих числовых функций в другой модели, а затем в сочетании с crf? 02.10.2014
  • Это не кажется правильным, CRF - это классификатор последовательности. Объединение его с непоследовательной моделью довольно странно. Было бы намного выгоднее искать способ включения числовых характеристик в CRF, поскольку, как уже говорилось ранее, CRF полностью способна на такие действия. 03.10.2014

  • 3

    Просто чтобы немного прояснить ответ Лишу (что правильно, но может сбить с толку других читателей, как это было со мной, пока я не попробовал). Этот:

    {"string_key": float_weight, ...} dict, где ключи — наблюдаемые функции, а значения — их веса

    можно было написать как

    {"feature_template_name": feature_value, ...} dict, где ключи — это имена функций, а значения — их значения

    то есть при этом вы устанавливаете не вес для CRF, соответствующий этому шаблону feature_template, а значение этой функции. Я предпочитаю называть их шаблонами функций, у которых есть значения функций, чтобы все было понятнее, чем просто «фичи». Затем CRF узнает вес, связанный с каждым из возможных значений feature_values ​​для этого feature_template.

    03.09.2019
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..