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内核驱动module_init解析(1)

    本文转载自博客http://blog.csdn.net/richard_liujh/article/details/45669207 写过linux驱动的程序猿都知道module_init() 这个函 ...

  2. plsql执行sql

    第一步找执行的命令:: plsql ::::::::::File----->>>>Change Windows to ------->>>Command Wi ...

  3. 牛客假日团队赛10 L 乘积最大 (dp,大数)

    链接:https://ac.nowcoder.com/acm/contest/1072/L?&headNav=acm&headNav=acm 来源:牛客网 乘积最大 时间限制:C/C+ ...

  4. Summer training round2 #8(Training26)

    A:贪心DFS 先从最远的搜起 如果一个点的value>=2 就ans++ D:并查集 E:大模拟 F:快速幂 #include <bits/stdc++.h> using name ...

  5. leetcode二刷结束

    二刷对一些常见的算法有了一些系统性的认识,对于算法的时间复杂度以及效率有了优化的意识,对于简单题和中等题目不再畏惧.三刷加油

  6. 19.8.12 记录Scaffold(脚手架)的常见属性及使用

    Scaffold   有利于我们快速的构建页面,使用也是十分的方便. 下面记录一下其简单的使用方法 Scaffold( appBar: AppBar( title: Text('课程'), ), bo ...

  7. fedora 29 安装ALSA声音驱动

    centos系列解决 安装utils时遇到的问题 configure: error: this packages requires a curses library yum install ncurs ...

  8. 解决You may use special comments to disable some warnings.

    问题:运行vue项目出现: You may use special comments to disable some warnings.Use // eslint-disable-next-line ...

  9. vue 安装scss

    1.安装插件 npm install node-sass --save-devnpm install sass-loader --save-dev 在App页面测试是否可用,在style 上添加< ...

  10. springboot pdf模板打印

    1.下载Adobe Acrobat DC工具来制作pdf的模板 打开一个pdf 2.制作pdf模板 把自动生成的文本框删除 然后 拖入文本框并自定义键 导入maven 依赖 <dependenc ...