机器学习-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理解与总结相关推荐

  1. Python小白机器学习教程:Sklearn精讲

    点击"简说Python",选择"置顶/星标公众号" 福利干货,第一时间送达! 本文授权转载自王的机器 禁二次转载 作者:王圣元 阅读文本大概需要 60 分钟 老 ...

  2. Python之 sklearn:sklearn中的RobustScaler 函数的简介及使用方法之详细攻略

    Python之 sklearn:sklearn中的RobustScaler 函数的简介及使用方法之详细攻略 目录 sklearn中的RobustScaler 函数的简介及使用方法 sklearn中的R ...

  3. ML之sklearn:sklearn.linear_mode中的LogisticRegression函数的简介、使用方法之详细攻略

    ML之sklearn:sklearn.linear_mode中的LogisticRegression函数的简介.使用方法之详细攻略 目录 sklearn.linear_mode中的LogisticRe ...

  4. ML之sklearn:sklearn的make_pipeline函数、RobustScaler函数、KFold函数、cross_val_score函数的代码解释、使用方法之详细攻略

    ML之sklearn:sklearn的make_pipeline函数.RobustScaler函数.KFold函数.cross_val_score函数的代码解释.使用方法之详细攻略 目录 sklear ...

  5. sklearn:sklearn.preprocessing.StandardScaler函数的fit_transform、transform、inverse_transform简介、使用方法之详细攻略

    sklearn:sklearn.preprocessing.StandardScaler函数的fit_transform.transform.inverse_transform简介.使用方法之详细攻略 ...

  6. ML之sklearn:sklearn的RobustScaler函数、KFold函数、cross_val_score函数的代码解释、使用方法之详细攻略

    ML之sklearn:sklearn的RobustScaler函数.KFold函数.cross_val_score函数的代码解释.使用方法之详细攻略 目录 sklearn的RobustScaler函数 ...

  7. Python之 sklearn:sklearn.preprocessing中的StandardScaler函数的简介及使用方法之详细攻略

    Python之 sklearn:sklearn.preprocessing中的StandardScaler函数的简介及使用方法之详细攻略 目录 sklearn.preprocessing中的Stand ...

  8. Python之 sklearn:sklearn中的train_test_split函数的简介及使用方法之详细攻略

    Python之 sklearn:sklearn中的train_test_split函数的简介及使用方法之详细攻略 目录 sklearn中的train_test_split函数的简介 train_tes ...

  9. ML之sklearn:sklearn.metrics中常用的函数参数(比如confusion_matrix等 )解释及其用法说明之详细攻略

    ML之sklearn:sklearn.metrics中常用的函数参数(比如confusion_matrix等 )解释及其用法说明之详细攻略 目录 sklearn.metrics中常用的函数参数 con ...

最新文章

  1. 和大学老师结婚到底有多幸福?我已经开始酸了...
  2. c++ 编译器支持情况表
  3. python编辑器背景设置为黑色_GitHub 热榜:21 岁理工男开源的这个编辑器火了!...
  4. 新手学信息检索2:倒排表与存储
  5. [PAT乙级]1023 组个最小数
  6. 实战课堂:系统CPU高消耗的SQL筛选和最佳索引优化
  7. js 节点 选中ztree_zTree使用
  8. psn账号 证明你不是机器人_世界上最聪明的机器人,AlphaGo智能机器人轻松击败世界围棋冠军...
  9. Js页面截取小数点后两位
  10. 遥感软件_遥感软件的可持续发展
  11. 云学python (第二章用编程改造世界·小练习)《vamei-从Python开始学编程》
  12. Android中Hilt的简单使用
  13. 【论文笔记】(VLDB 2020) A Benchmarking Study of Embedding-based Entity Alignment for Knowledge
  14. Stata——固定效应模型、随机效应模型、混合效应模型(区别、实例)
  15. 计算机函数公式大全ppt,三角函数公式大全分解.ppt
  16. 向Linux增加一个系统调用或内核模块
  17. 关键词推广怎么做比较好?抖音宣传做关键词推广有哪些好的方法
  18. 数据结构实验6图的应用-行车路线问题
  19. python计算圆周率的方法_用python计算圆周率PI
  20. cesium获取模型高度_【小技巧】快速生成城市建筑Sketchup模型

热门文章

  1. 1.4.2.4. SAVING(Core Data 应用程序实践指南)
  2. correlated subquery and non-correlated subquery
  3. GARFIELD@03-26-2005
  4. Vue项目构建后通过Nginx/SpringBoot/Express/Egg发布
  5. 分布式系统面试 - 常见问题
  6. 使用MariaDB后端在Ubuntu 18.04 / Debian 9上安装PowerDNS和PowerDNS-Admin
  7. 虚拟技术必须解决的问题_VR/3D虚拟实验室亮相重庆市初中物理青年教师优质课大赛...
  8. 【温故而知新】HTTP 报文
  9. 初识人工智能(一):数据分析(二):numpy科学计算基础库(一)
  10. C#LeetCode刷题之#455-分发饼干(Assign Cookies)