潜在的问题是:什么是特征,它代表什么,以及 ML 算法如何使用它?
特征是一个指标,它应该帮助算法预测响应变量。因此,该特征的语义至关重要:例如,很容易看出患者的年龄可能是检测特定疾病的相关特征,而知道他们的姓氏则不是。
ML 算法可以对特征做什么?它只是比较它:仅对分类特征进行相等/差异测试(布尔值,确切地说是单热编码会发生什么),对数值特征进行顺序测试。
但是它可以将固定大小的向量作为一个整体特征来学习吗?
根据我的最后一点,该算法需要一种比较“整个向量”的方法。据我所知,这只会发生:
- 或者通过将整个向量与它可能采用的任何可能值进行比较:这是一个布尔测试,我们回到 one-hot 编码情况。
- 或通过独立比较每个单独的单元格,这是使用 OP 描述的二进制表示的想法:
或者我们可以用二进制来表示 128 位的字符串,它只对 128 维有贡献。不知道随机forrests等传统ML模型(不是CNN)是否能够学习到128个特征的依赖关系。
在这种情况下,问题在于这些单个单元格的语义:它们代表什么,它们可以帮助预测响应变量吗?
以垃圾邮件二进制分类器为例:传统上使用 one-hot 编码,每个特征表示特定单词是否出现在文本文档中。这是有道理的,因为知道文档是否包含例如“伟哥”一词可以表明它是否是垃圾邮件。现在如果你只使用“伟哥”这个词的二进制表示,特征表示是否iithbit 在字的 ASCII 或 UTF8 二进制表示中为 1。很明显,这不是决定文档是否为垃圾邮件的相关指标(顺便说一句,这可以通过相关性或其他措施进行测试)。因此,可以肯定的是,从技术上讲,可以将各个位作为特征提供,但是预测将接近随机,因为该模型没有相关指标作为特征。
重要提示:我专注于语义问题,所以我什至没有谈论顺序是否重要的问题,但这也是一个问题。