几乎所有的机器学习模型都是与用向量表示的数值特征打交道。因此,需要将原始数据转换为数值。
- 数值特征:这些特征通常为实数或整数,比如年龄
- 类别特征:它们的取值只能是可能状态集合中的某一种。性别、职业或者电影类别便是这类特征。
- 文本特征:它们派生自数据中的文本内容,比如电影名、描述或评论。
- 其他特征:大部分其他特征最终都表示为数值。比如图像、音频和视频,地理位置则可由经纬度或地理散列(geohash)表示
类别特征
当类别特征为原始形式时,其取值来自所有可能取值所构成的集合,而不是一个数字,故不能作为输入。
将类别特征表示为数字形式,常可借助k之1(1-of-k)编码方法进行。
词袋分词法
如果每个单词都是一种可能的取值,那么可能出现的单词组合几乎有无限种。这时模型几乎看不到有相同的特征出现两次,学习效果也不理想,因此需要将原始的文本转换为一种更便于机器学习的形式。
- 分词(tokenization):可用的方法如空白分词法,在空白处对文本进行分割,可能同时还删除标点符号和其他非字母或数字字符
- 删除停用词:比如the、and和but
- 提取词干:将各个词项简化为其基本的形式或者干词。比如dogs变为dog
- 向量化:一般用k之1编码,然后用稀疏矩阵来表示
另外还有一个特征抽取的神器:word2vec,有兴趣可以参考这篇文章《通俗理解word2vec》
网友评论