one-hot和tf-idf的理解

one-hot:

对每个特征进行普通的数字编码。对于每个特征有多少状态,就用多少状态码来表示,one-hot编码保证每个样本的单个特征只有一位处于状态1,其他都是状态0。

对于2、3、4种状态,可以得到以下的表示:

所以可以得到sample_1的特征向量为:【0.1.1.0.0.0.1.0.0】   sample_4:【1.0.0.0.0.1.0.0.1】

one-hot在文本特征提取上属于词袋模型:

假设语料库有三句话:

       我爱中国

       爸爸妈妈爱我

       爸爸妈妈爱中国

获取语料库中的所有词,得到特征:

feature1:我        feature2:爱       feature3:爸爸        feature4:妈妈       feature5:中国

此时每个特征有2个状态:有/无

  爸爸 妈妈 中国
我爱中国 01 01 10 10 01
爸爸妈妈爱我 01 01 01 01 10

于是得到特征向量为:我爱中国:0.1.0.1.1.0.1.0.0.1    爸爸妈妈爱我:0.1.0.1.0.1.0.1.1.0

但我们发现所有特征都有两个状态,可以对特征状态位进行简化:我爱中国:1.1.0.0.1    爸爸妈妈爱我:1.1.1.1.0

优缺点分析:

有点:解决了离散值特征的问题;同时在一定程度上起到扩充特征的作用。

缺点:不考虑词之间顺序的词袋模型。假设条件时词之间相互独立。得到的特征过于离散稀疏。

TF-IDF:

算法思想是:统计每个词出现的词频(tf),再为其附上一定的权值(idf)

tf-idf = tf*idf  (tf = 某个词在文章中出现的次数/文章的总词数,idf(逆文档频率) = log(语料库的文档总数/包含该词的文档数+1)

优缺点:

有点:简单快速,结果比较符合实际。

缺点:单纯考虑词频,而忽略了词之间的位置信息和相互关系。

转自:https://www.cnblogs.com/lianyingteng/p/7755545.html

猜你喜欢

转载自blog.csdn.net/tryhardsilently/article/details/86063254