您当前的位置: 首页 > 
  • 3浏览

    0关注

    2393博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

AI与生命科学

一个处女座的程序猿 发布时间:2022-07-04 00:01:23 ,浏览量:3

NLP:文本特征表示/字典特征抽取之对字典型数据通过特征抽取和向量化进而实现特征数字化(one-hot编码/仅有值稀疏矩阵,如对类别型特征转换数字型)代码实现

目录

文本特征表示/字典特征抽取之对字典型数据通过特征抽取和向量化进而实现特征数字化(one-hot编码/仅有值稀疏矩阵,如对类别型特征转换数字型)

实现代码

文本特征表示/字典特征抽取之对字典型数据通过特征抽取和向量化进而实现特征数字化(one-hot编码/仅有值稀疏矩阵,如对类别型特征转换数字型)

应用场景:对类别型特征进行数字化转换

实现代码
from sklearn.feature_extraction import DictVectorizer

data = [{'city': 'Shang Hai', 'temperature': 33.}, 
        {'city': 'Bei Jing', 'temperature': 12.}, 
        {'city': 'Las Vegas', 'temperature': 18.}]

# T1、利用DictVectorizer函数对数据实现one-hot编码表征:当类别非常多的时候(0 会很多),但事实使用one-hot编码是为了让类别更加公平一点,相互之间没有优先级
print('----------设置sparse参数返回一个one-hot编码矩阵-------------')
dicvec = DictVectorizer(sparse=False)     #初始化DictVectorizer特征抽取器
data2dicvec = dicvec.fit_transform(data)
print(data2dicvec)                        #输出转化之后的特征矩阵
print(dicvec.get_feature_names())         #输出各个维度的特征含义


# T2、利用DictVectorizer函数对数据实现仅有值稀疏矩阵表征:sparse稀疏矩阵将非0值按照位置表示出来;对比one-hot,可以提高加载效率,节省内存
print('----------默认参数会返回一个稀疏矩阵-------------')
dicvec = DictVectorizer()                 #初始化DictVectorizer特征抽取器
data2dicvec = dicvec.fit_transform(data)
print(data2dicvec)  
# print(data2dicvec.toarray())              #输出转化之后的特征矩阵
# print(dicvec.get_feature_names())         #输出各个维度的特征含义

----------设置sparse参数返回一个one-hot编码矩阵-------------
[[ 0.  0.  1. 33.]
 [ 1.  0.  0. 12.]
 [ 0.  1.  0. 18.]]
['city=Bei Jing', 'city=Las Vegas', 'city=Shang Hai', 'temperature']
----------默认参数会返回一个稀疏矩阵-------------
  (0, 2)	1.0
  (0, 3)	33.0
  (1, 0)	1.0
  (1, 3)	12.0
  (2, 1)	1.0
  (2, 3)	18.0

关注
打赏
1664196048
查看更多评论
立即登录/注册

微信扫码登录

0.1735s