sklearn.feature_extraction.DictVectorizer:将字典组成的列表转换成向量。(将特征与值的映射字典组成的列表转换成向量)

1. 特征矩阵行代表数据,列代表特征,0表示该数据没有该特征

from sklearn.feature_extraction import DictVectorizer

# 设置sparse=False获得numpy ndarray形式的结果
v = DictVectorizer(sparse=False)
D = [{'foo':1, 'bar':2}, {'foo':3, 'baz':1}] # 对字典列表D进行转换,转换成特征矩阵
X = v.fit_transform(D)
# 特征矩阵行代表数据,列代表特征,0表示该数据没有该特征
print(X)
[[ 2.  0.  1.]
[ 0. 1. 3.]]

2.  get_feature_names()获取特征列名

# 获取特征列名
print(v.get_feature_names())
['bar', 'baz', 'foo']

3. inverse_transform将特征矩阵还原成原始数据

# inverse_transform将特征矩阵还原成原始数据
# inverse:相反的
print(v.inverse_transform(X) == D)
True

4. 直接进行转换,不先进行拟合的话,无法识别新的特征

# 直接进行转换,不先进行拟合的话,无法识别新的特征。即没有fit。
print(v.transform([{'foo':4, 'unseen_feature':3}]))
[[ 0.  0.  4.]]

5. 配合特征选择

from sklearn.feature_selection import SelectKBest, chi2

# 使用卡方统计筛选出最好的2个特征
support = SelectKBest(chi2, k=2).fit(X, [0,1]) # 进行筛选,筛选的结果会自动覆盖原有特征矩阵
print(v.restrict(support.get_support()))
print(v.get_feature_names())
DictVectorizer(dtype=<class 'numpy.float64'>, separator='=', sort=True,
sparse=False)
['bar', 'foo']

来自:https://www.cnblogs.com/hufulinblog/p/10591339.html

sklearn.feature_extraction.DictVectorizer的更多相关文章

  1. 特征抽取: sklearn.feature_extraction.DictVectorizer

    sklearn.featture_extraction.DictVectorizer: 将特征与值的映射字典组成的列表转换成向量. DictVectorizer通过使用scikit-learn的est ...

  2. 特征抽取: sklearn.feature_extraction.FeatureHasher

    sklearn.feature_extraction.FeatureHasher(n_features=1048576, input_type="dict", dtype=< ...

  3. sklearn.feature_extraction.text 的TfidfVectorizer函数

    TfidfVectorizer函数主要用于,将文档(句子)等通过 tf-idf值来进行表示,也就是用一个tf-idf值的矩阵来表示文档(句子也可). from sklearn.feature_extr ...

  4. sklearn.feature_extraction.text.CountVectorizer 学习

    CountVectorizer: CountVectorizer可以将文本文档集合转换为token计数矩阵.(token可以理解成词) 此实现通过使用scipy.sparse.csr_matrix产生 ...

  5. 《机学一》特征工程1 ——文本处理:sklearn抽取、jieba中文分词、TF和IDF抽取

    零.机器学习整个实现过程: 一.机器学习数据组成 特征值: 目标值: 二.特征工程和文本特征提取 1.概要: 1.特征工程是什么 2.特征工程的意义:直接影响预测结果 3.scikit-learn库 ...

  6. 利用sklearn进行字典&文本的特征提取

    写在前面 这篇博客主要内容: 应用DictVectorizer实现对类别特征进行数值化.离散化 应用CountVectorizer实现对文本特征进行数值化 特征提取API sklearn.featur ...

  7. Sklearn 与 TensorFlow 机器学习实战—一个完整的机器学习项目

    本章中,你会假装作为被一家地产公司刚刚雇佣的数据科学家,完整地学习一个案例项目.下面是主要步骤: 项目概述. 获取数据. 发现并可视化数据,发现规律. 为机器学习算法准备数据. 选择模型,进行训练. ...

  8. [占位-未完成]scikit-learn一般实例之十一:异构数据源的特征联合

    [占位-未完成]scikit-learn一般实例之十一:异构数据源的特征联合 Datasets can often contain components of that require differe ...

  9. AI学习---特征工程【特征抽取、特征预处理、特征降维】

    学习框架 特征工程(Feature Engineering) 数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已 什么是特征工程: 帮助我们使得算法性能更好发挥性能而已 sklearn主 ...

随机推荐

  1. linux进程调度的算法

    linux进程的调度算法 这节我们来学习一下linux进程的优先级 linux进程的优先级 进程提供了两种优先级,一种是普通的进程优先级,第二个是实时优先级,前者使用SCHEED_NORMAL调度策略 ...

  2. Cocos Creator 热更新文件MD5计算和需要注意的问题

    Creator的热更新使用jsb.热更新基本按照 http://docs.cocos.com/creator/manual/zh/advanced-topics/hot-update.html?h=% ...

  3. 常见shell用法

    分析nginx访问日志 awk '{a[b[$1]++]}END{for(i=length(a);i>0;i--)for(j in b)if(b[j]==i){c++;if(c<=10)p ...

  4. 关于tp5.0中对象数组转换普通数组使用助手函数collection而不是toArray

    tp5.0新版的模型查询返回默认对象,系统默认增加了toArray方法,许多开发者在all或select尝试使用toArray来转换为数组,在此希望开发者能理解对象的概念,尝试使用对象进行数据的使用, ...

  5. WebView net::ERR_CLEARTEXT_NOT_PERMITTED&&net::ERR_INTERNET_DISCONNECTED

    参照博客:https://blog.csdn.net/qq_33721320/article/details/84400825 测试Android 中WebView功能时,发现了这个问题: 解决的方式 ...

  6. 高性能mysql 第5章 创建高可用的索引

    b-tree索引 一定程度上说,mysql只有b-tree索引.他没有bitmap索引.还有一个叫hash索引的,只在Memory存储引擎中才有. b-tree索引跟oracle中的大同小异. mys ...

  7. eclipse从SVN中检出web项目

    提交到svn的时候,选择忽略.project,.settings,.classpath等文件,检出项目的时候就不能选择 [做为工作作为工作空间的项目检出].而应该选择做为新项目检出. 然后选择工程的类 ...

  8. hiho #1038 : 01背包 (dp)

    #1038 : 01背包 时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 且说上一周的故事里,小Hi和小Ho费劲心思终于拿到了茫茫多的奖券!而现在,终于到了小Ho领取奖励 ...

  9. python字典的setdefault的妙用

    现在有一个员工字典,类似这样的结构 staff_dic = {"name":"灭霸", "age": 10000, "hobbie ...

  10. latex参考文献中作者名字含有特殊字符怎么办