[机器学习-Sklearn]函数sklearn.feature_extraction.DictVectorizer理解与总结
机器学习-Sklearn之DictVectorizer函数学习
- 函数介绍
- 例子1
- 例子2 - 文件中读数据
函数介绍
sklearn.featture_extraction.DictVectorizer:
将特征与值的映射字典组成的列表转换成向量。
DictVectorizer通过使用scikit-learn的estimators,将特征名称与特征值组成的映射字典构成的列表转换成Numpy数组或者Scipy.sparse矩阵。
当特征的值是字符串时,这个转换器将进行一个二进制One-hot编码。One-hot编码是将特征所有可能的字符串值构造成布尔型值。例如: 特征f有一个值ham,一个值spam,转换后会变成两个特征f=ham和f=spam。
注意,转换器只会将字符串形式的特征值转换成One-hot编码,数值型的不会转换。
一个字典中样本没有的特征在结果矩阵中的值是0.
例子1
说明:DictVectorizer的处理对象是符号化(非数字化)的但是具有一定结构的特征数据,如字典等,将符号转成数字0/1表示
# 定义一组字典列表,用来表示多个数据样本(每个字典代表一个数据样本)
measurements = [{'city': 'Beijing', 'temperature': 33.}, {'city': 'London', 'temperature': 12.},{'city': 'San Fransisco', 'temperature': 18.}]
vec = sklearn.feature_extraction.DictVectorizer(sparse=False)
# 输出转化后的特征矩阵
array = vec.fit_transform(measurements)
print(type(array))
print(array)
# 输出各个维度的特征含义
print(vec.get_feature_names())
print(vec.vocabulary_)
执行结果
<class 'numpy.ndarray'>
[[ 1. 0. 0. 33.][ 0. 1. 0. 12.][ 0. 0. 1. 18.]]
['city=Beijing', 'city=London', 'city=San Fransisco', 'temperature']
{'city=Beijing': 0, 'temperature': 3, 'city=London': 1, 'city=San Fransisco': 2}
原表形式
转换后形式
例子2 - 文件中读数据
文件data/laic.csv
spring,no,breeze,yes
winter,no,no wind,yes
autumn,yes,breeze,yes
winter,no,no wind,yes
summer,no,breeze,yes
winter,yes,breeze,yes
winter,no,gale,yes
winter,no,no wind,yes
spring,yes,no wind,no
summer,yes,gale,no
summer,no,gale,no
autumn,yes,breeze,no
说明 : 真正在实践上的时候大部分都是load文件,然后转换成特征。下面就是这个例子。
从文件中读数据,转换特征
import pandas as pd
from sklearn import treefrom sklearn.model_selection import train_test_split# pandas 读取 csv 文件,header = None 表示不将首行作为列
data = pd.read_csv('data/laic.csv', header=None)
# 指定列
data.columns = ['season', 'after 8', 'wind', 'lay bed']# sparse=False意思是不产生稀疏矩阵
vec = sklearn.feature_extraction.DictVectorizer(sparse=False)
# 先用 pandas 对每行生成字典,然后进行向量化
feature = data[['season', 'after 8', 'wind']]
X_train = vec.fit_transform(feature.to_dict(orient='record'))
# 打印各个变量
print('show feature\n', feature)
print('show vector\n', X_train)
print('show vector name\n', vec.get_feature_names())
执行结果
show featureseason after 8 wind
0 spring no breeze
1 winter no no wind
2 autumn yes breeze
3 winter no no wind
4 summer no breeze
5 winter yes breeze
6 winter no gale
7 winter no no wind
8 spring yes no wind
9 summer yes gale
10 summer no gale
11 autumn yes breeze
show vector[[1. 0. 0. 1. 0. 0. 1. 0. 0.][1. 0. 0. 0. 0. 1. 0. 0. 1.][0. 1. 1. 0. 0. 0. 1. 0. 0.][1. 0. 0. 0. 0. 1. 0. 0. 1.][1. 0. 0. 0. 1. 0. 1. 0. 0.][0. 1. 0. 0. 0. 1. 1. 0. 0.][1. 0. 0. 0. 0. 1. 0. 1. 0.][1. 0. 0. 0. 0. 1. 0. 0. 1.][0. 1. 0. 1. 0. 0. 0. 0. 1.][0. 1. 0. 0. 1. 0. 0. 1. 0.][1. 0. 0. 0. 1. 0. 0. 1. 0.][0. 1. 1. 0. 0. 0. 1. 0. 0.]]
show vector name['after 8=no', 'after 8=yes', 'season=autumn', 'season=spring', 'season=summer', 'season=winter', 'wind=breeze', 'wind=gale', 'wind=no wind']
[机器学习-Sklearn]函数sklearn.feature_extraction.DictVectorizer理解与总结相关推荐
- Python小白机器学习教程:Sklearn精讲
点击"简说Python",选择"置顶/星标公众号" 福利干货,第一时间送达! 本文授权转载自王的机器 禁二次转载 作者:王圣元 阅读文本大概需要 60 分钟 老 ...
- Python之 sklearn:sklearn中的RobustScaler 函数的简介及使用方法之详细攻略
Python之 sklearn:sklearn中的RobustScaler 函数的简介及使用方法之详细攻略 目录 sklearn中的RobustScaler 函数的简介及使用方法 sklearn中的R ...
- ML之sklearn:sklearn.linear_mode中的LogisticRegression函数的简介、使用方法之详细攻略
ML之sklearn:sklearn.linear_mode中的LogisticRegression函数的简介.使用方法之详细攻略 目录 sklearn.linear_mode中的LogisticRe ...
- ML之sklearn:sklearn的make_pipeline函数、RobustScaler函数、KFold函数、cross_val_score函数的代码解释、使用方法之详细攻略
ML之sklearn:sklearn的make_pipeline函数.RobustScaler函数.KFold函数.cross_val_score函数的代码解释.使用方法之详细攻略 目录 sklear ...
- sklearn:sklearn.preprocessing.StandardScaler函数的fit_transform、transform、inverse_transform简介、使用方法之详细攻略
sklearn:sklearn.preprocessing.StandardScaler函数的fit_transform.transform.inverse_transform简介.使用方法之详细攻略 ...
- ML之sklearn:sklearn的RobustScaler函数、KFold函数、cross_val_score函数的代码解释、使用方法之详细攻略
ML之sklearn:sklearn的RobustScaler函数.KFold函数.cross_val_score函数的代码解释.使用方法之详细攻略 目录 sklearn的RobustScaler函数 ...
- Python之 sklearn:sklearn.preprocessing中的StandardScaler函数的简介及使用方法之详细攻略
Python之 sklearn:sklearn.preprocessing中的StandardScaler函数的简介及使用方法之详细攻略 目录 sklearn.preprocessing中的Stand ...
- Python之 sklearn:sklearn中的train_test_split函数的简介及使用方法之详细攻略
Python之 sklearn:sklearn中的train_test_split函数的简介及使用方法之详细攻略 目录 sklearn中的train_test_split函数的简介 train_tes ...
- ML之sklearn:sklearn.metrics中常用的函数参数(比如confusion_matrix等 )解释及其用法说明之详细攻略
ML之sklearn:sklearn.metrics中常用的函数参数(比如confusion_matrix等 )解释及其用法说明之详细攻略 目录 sklearn.metrics中常用的函数参数 con ...
最新文章
- 和大学老师结婚到底有多幸福?我已经开始酸了...
- c++ 编译器支持情况表
- python编辑器背景设置为黑色_GitHub 热榜:21 岁理工男开源的这个编辑器火了!...
- 新手学信息检索2:倒排表与存储
- [PAT乙级]1023 组个最小数
- 实战课堂:系统CPU高消耗的SQL筛选和最佳索引优化
- js 节点 选中ztree_zTree使用
- psn账号 证明你不是机器人_世界上最聪明的机器人,AlphaGo智能机器人轻松击败世界围棋冠军...
- Js页面截取小数点后两位
- 遥感软件_遥感软件的可持续发展
- 云学python (第二章用编程改造世界·小练习)《vamei-从Python开始学编程》
- Android中Hilt的简单使用
- 【论文笔记】(VLDB 2020) A Benchmarking Study of Embedding-based Entity Alignment for Knowledge
- Stata——固定效应模型、随机效应模型、混合效应模型(区别、实例)
- 计算机函数公式大全ppt,三角函数公式大全分解.ppt
- 向Linux增加一个系统调用或内核模块
- 关键词推广怎么做比较好?抖音宣传做关键词推广有哪些好的方法
- 数据结构实验6图的应用-行车路线问题
- python计算圆周率的方法_用python计算圆周率PI
- cesium获取模型高度_【小技巧】快速生成城市建筑Sketchup模型
热门文章
- 1.4.2.4. SAVING(Core Data 应用程序实践指南)
- correlated subquery and non-correlated subquery
- GARFIELD@03-26-2005
- Vue项目构建后通过Nginx/SpringBoot/Express/Egg发布
- 分布式系统面试 - 常见问题
- 使用MariaDB后端在Ubuntu 18.04 / Debian 9上安装PowerDNS和PowerDNS-Admin
- 虚拟技术必须解决的问题_VR/3D虚拟实验室亮相重庆市初中物理青年教师优质课大赛...
- 【温故而知新】HTTP 报文
- 初识人工智能(一):数据分析(二):numpy科学计算基础库(一)
- C#LeetCode刷题之#455-分发饼干(Assign Cookies)