随着时间的推移,我们已经通过各种不同的技术和方法确定了机器学习项目中哪些有效,哪些无效。下面总结了5个步骤,希望对你有所帮助。生成简单的特征当第一次开始建模过程时,尽量生成尽可能多的简单特征,尽量生成不需要很长时间编码的特征。例如,我们可以实现一个简单的词袋,用最少的代码生成数千个特征,而不是训练Word2vec模型。想要首先使用任何可测量的特征作为特征,因为没有明确的方法可以提前知道一个或多个特征组合是否对预测有用。id也可以是特征(如果需要)将id添加为特征集的一部分听起来可能很愚蠢,因为唯一的id可能对模型的泛化没有太大贡献。但是,包括ids使从业者能够创建一个模型,该模型通常以一种方式表现,而在其他方式中表现不同。例如,假设我们想根据描述某个位置的某些特征来预测某个位置。通过将位置的id作为特征集的一部分,我们将能够为一个一般位置添加更多训练示例,并训练模型在其他特定位置表现不同。减少基数(如果可能)作为一般经验法则,如果我们有一些具有许多不同唯一值(比如超过12)的分类特征,我们应该只在我们希望模型基于该特征表现不同时才使用该特征特征。例如,美国有50个州,因此如果您希望模型的预期行为在加利福尼亚是一种方式而在佛罗里达州是另一种方式,您可以考虑使用称为“州”的特征。另一方面,如果我们不需要根据“状态”特征表现不同的模型,那么我们最好减少“状态”特征的基数。请注意计数的问题,在某些情况下,总数随时间大致保持在相同范围内——如果文档长度不随时间增加或减少,例如词袋(BoW)的情况。计算可能导致问题的实例。例如,在一个场景中,我们有一项功能可以计算用户自订阅该服务以来拨打的电话次数。如果一家提供订阅服务的公司已经存在了很长时间,纯粹的统计数据会显示他们拨打了很多电话。随着数据的增长,今天出现频率较低的值将来可能会变得更加频繁。所以处理这类问题需要增加特征选择的时间窗口这里有一些只在绝对必要时才进行特征选择的原因;该模型必须是可解释的,因此最好保留具有严格硬件要求的最重要的特征,而不要花太多时间进行大量实验和/或重建模型以用于生产,并在多个模型训练之间产生预期的分布变化
