如何以及何时将要素附加到目标标签

数据挖掘 特征选择 机器学习模型 特征工程 顺序
2022-03-08 11:15:14

我正在使用Mallet CRF 库并具有如下训练集序列。

KFC     Bangalore  INDIA        <--- Sequence
PLACE   CITY       COUNTRY      <--- Target Label

在培训/验证期间,我没有任何功能。在测试时间时,我提供如下功能。

KFC                 Bangalore            INDIA                  <--- Sequence
PLACE_LIKE(1.0)     CITY_LIKE(1.0)       COUNTRY_LIKE(1.0)      <--- Features
  1. 既然训练时没有特征,那么这些运行时特征会有用吗?
  2. 我相信,特征和目标标签的关联是在训练期间本身发生的,因此任何在运行时直接出现的新特征都不会与目标标签相关联并且无用,对吗?
  3. 我可以在训练时将班加罗尔与 CITY_LIKE(1.0) 连接起来,并在测试期间通过较低权重的特征 CITY_LIKE(0.5) 吗?那会有影响吗?
1个回答

我假设您正在训练 CRF 模型或其他序列标记变体,对吗?

我对 Mallet 不是特别熟悉,但任何模型都不太可能让您在测试阶段添加功能:训练后的模型和测试数据必须具有完全相同的功能,不多不少。

显然,您要添加的功能由具有几个特定类别的相似性分数组成,我假设这个分数是在预处理期间独立计算的?如果是的话,这通常会在数据中这样表示:

<token>   <PLACE_LIKE> <CITY_LIKE> <COUNTRY_LIKE> <label>
KFC       1.0          0.0         0.0            PLACE
Bangalore 0.0          1.0         0.0            CITY
INDIA     0.0          0.0         1.0            COUNTRY

请注意,在训练和测试数据中都必须遵循这种带有 token + N 特征的格式。因此,您必须对两者应用相同的预处理步骤。