相关
很多机器学习问题需要研究的对象时文字甚至图像,提取变量特征的方法是数据处理的前提。
BOW和VSM
BOW:bags-of-words model,忽略文档内的单词顺序和语法等要素,将其仅仅看作是若干的词汇的集合。
VSM:Vector space model,表示文本文档的数学模型,在BOW的假设下,将每个文档表示成同一向量空间的向量。
优化:
如果再出现一个长文档,将会有更多的零向量,可以采取的方法是,最后仅仅出现在一个文档中的都集中到一个向量中,减少维数。
停用词
Stop words,在信息检索中,为节省存储空间和提高处理效率,在处理自然语言文本之前或之后自动过滤掉的某些字或词。英文常用停用词:the,a,of,an,to,be,etc。
N-gram模型
N-gram通常是指一段文本或语音中连续N个项目(item)的序列,项目可以是单词、字母、碱基对等。
N=1,称为unigram;N=2,称为bigram;N=3,称为trigram。
Tf-idf词条权重计算
特征向量里高频词的权重更大,这些词在文集内其他文档里面也经常出现,对区分文档的作用不大,有必要抑制那些在很多文档中都出现了的词条的权重。
词条在文档d中的权值计算为:
w(t) = tf(t, d)* idf(t)
其中,tf(t, d)表示词条t在文档d中出现频率,idf(t)表示与包含词条t的文档数目成反比。
图片特征向量
使用sklearn库的digits手写字体数据集,并打印出来效果
from sklearn import datasets
import matplotlib.pyplot as plt
digits = datasets.load_digits()
#print(digits.keys())
#print(digits.images[0])
images_and_labels = list(zip(digits.images, digits.target))
for index, (image, label) in enumerate(images_and_labels[:4]):
plt.subplot(2,4, index+1)
plt.axis('off')
plt.imshow(image, cmap = plt.cm.gray_r, interpolation='nearest')
plt.title('Training: %i' % label)
定量特征的二值化
对于某些定量特征,需要将定量信息转为区间划分。如将考试成绩,转为及格或不及格。
方法:设定一个阈值,大于阈值的赋值为1,小于或等于阈值的赋值为0。
缺失值计算
数据获取时,由于某些原因,缺少某些数值,需要进行弥补;
弥补策略:默认为mean(均值)
举例,如将0作为缺失值
[0,4,2]
[2,3,4]
[8,0,0]
三列特征中,第一列均值为5,第二列为3.5,第三列为3
处理后
[5,4,2]
[2,3,4]
[8,3.5,3]
需要注意的是,在测试集中的每列特征的缺失值要用训练集的该列特征的均值弥补,而不能使用测试集的该列特征均值