【机器学习】数据预处理之将类别数据转换为数值

在进行python数据分析的时候,首先要进行数据预处理。

有时候不得不处理一些非数值类别的数据,嗯, 今天要说的就是面对这些数据该如何处理。

目前了解到的大概有三种方法:

1,通过LabelEncoder来进行快速的转换;

2,通过mapping方式,将类别映射为数值。不过这种方法适用范围有限;

3,通过get_dummies方法来转换。

 1 import pandas as pd
 2 from io import StringIO
 3
 4 csv_data = ‘‘‘A,B,C,D
 5 1,2,3,4
 6 5,6,,8
 7 0,11,12,‘‘‘
 8
 9 df = pd.read_csv(StringIO(csv_data))
10 print(df)
11 #统计为空的数目
12 print(df.isnull().sum())
13 print(df.values)
14
15 #丢弃空的
16 print(df.dropna())
17 print(‘after‘, df)
18 from sklearn.preprocessing import Imputer
19 # axis=0 列   axis = 1 行
20 imr = Imputer(missing_values=‘NaN‘, strategy=‘mean‘, axis=0)
21 imr.fit(df) # fit  构建得到数据
22 imputed_data = imr.transform(df.values) #transform 将数据进行填充
23 print(imputed_data)
24
25 df = pd.DataFrame([[‘green‘, ‘M‘, 10.1, ‘class1‘],
26                    [‘red‘, ‘L‘, 13.5, ‘class2‘],
27                    [‘blue‘, ‘XL‘, 15.3, ‘class1‘]])
28 df.columns =[‘color‘, ‘size‘, ‘price‘, ‘classlabel‘]
29 print(df)
30
31 size_mapping = {‘XL‘:3, ‘L‘:2, ‘M‘:1}
32 df[‘size‘] = df[‘size‘].map(size_mapping)
33 print(df)
34
35 ## 遍历Series
36 for idx, label in enumerate(df[‘classlabel‘]):
37     print(idx, label)
38
39 #1, 利用LabelEncoder类快速编码,但此时对color并不适合,
40 #看起来,好像是有大小的
41 from sklearn.preprocessing import LabelEncoder
42 class_le = LabelEncoder()
43 color_le = LabelEncoder()
44 df[‘classlabel‘] = class_le.fit_transform(df[‘classlabel‘].values)
45 #df[‘color‘] = color_le.fit_transform(df[‘color‘].values)
46 print(df)
47
48 #2, 映射字典将类标转换为整数
49 import numpy as np
50 class_mapping = {label: idx for idx, label in enumerate(np.unique(df[‘classlabel‘]))}
51 df[‘classlabel‘] = df[‘classlabel‘].map(class_mapping)
52 print(‘2,‘, df)
53
54
55 #3,处理1不适用的
56 #利用创建一个新的虚拟特征
57 from sklearn.preprocessing import OneHotEncoder
58 pf = pd.get_dummies(df[[‘color‘]])
59 df = pd.concat([df, pf], axis=1)
60 df.drop([‘color‘], axis=1, inplace=True)
61 print(df)
时间: 2024-12-24 08:09:49

【机器学习】数据预处理之将类别数据转换为数值的相关文章

大数据预处理技术

一.大数据预处理的几个步骤 1.数据预处理 2.数据清洗 3.数据集成 4.数据归约 5.数据变换 6.数据离散化 7.大数据预处理 二.数据预处理 现实中的数据大多是“脏”数据: ①不完整 缺少属性值或仅仅包含聚集数据 ②含噪声 包含错误或存在偏离期望的离群值 比如:salary=“-10”,明显是错误数据 ③不一致 用于商品分类的部门编码存在差异 比如age=“42”Birthday=“03/07/1997” 而我们在使用数据过程中对数据有如下要求: 一致性.准确性.完整性.时效性.可信性.

【读书笔记-数据挖掘概念与技术】数据预处理

数据预处理的目的:提高数据质量,数据质量的三要素:准确性.完整性.一致性. 数据预处理的任务: 数据清理 数据集成 数据规约 数据变换 数据清理--填充缺失的值.光滑噪声.识别离群点.纠正数据中的不一致 缺失值: 忽略元组 人工填写缺失值 使用一个全局常量 使用属性的中心度量 使用与给定元组属同一类的所有样本的属性均值或中位数 使用最可能的值(最流行) 噪声数据 分箱 回归 离群点分析 数据集成--合并来自多个数据存储的数据 实体识别问题 冗余和相关分析 元组重复 数据值冲突的监测与处理 数据规

数据挖掘笔记(三)—数据预处理

1.原始数据存在的几个问题:不一致:重复:含噪声:维度高. 2.数据预处理包含数据清洗.数据集成.数据变换和数据归约几种方法. 3.数据挖掘中使用的数据的原则 应该是从原始数据中选取合适的属性作为数据挖掘属性,这个选取过程应参考的原则是:尽可能赋予属性名和属性值明确的含义:统一多数据源的属性值编码:去除惟一属性:去除重复性:去除可忽略字段:合理选择关联字段. 4.处理空缺值的方法:忽略该记录:去掉属性:手工填写空缺值:使用默认值:使用属性平均值:使用同类样本平均值:预测最可能的值. 5.噪声数据

Deep Learning 十一_深度学习UFLDL教程:数据预处理(斯坦福大学深度学习教程)

理论知识:UFLDL数据预处理和http://www.cnblogs.com/tornadomeet/archive/2013/04/20/3033149.html 数据预处理是深度学习中非常重要的一步!如果说原始数据的获得,是深度学习中最重要的一步,那么获得原始数据之后对它的预处理更是重要的一部分. 1.数据预处理的方法: ①数据归一化: 简单缩放:对数据的每一个维度的值进行重新调节,使其在 [0,1]或[ − 1,1] 的区间内 逐样本均值消减:在每个样本上减去数据的统计平均值,用于平稳的数

[Python数据挖掘]第4章、数据预处理

数据预处理主要包括数据清洗.数据集成.数据变换和数据规约,处理过程如图所示. 一.数据清洗 1.缺失值处理:删除.插补.不处理 ## 拉格朗日插值代码(使用缺失值前后各5个未缺失的数据建模) import pandas as pd #导入数据分析库Pandas from scipy.interpolate import lagrange #导入拉格朗日插值函数 inputfile = '../data/catering_sale.xls' #销量数据路径 outputfile = '../tmp

大数据知识点分享:大数据平台应用 17 个知识点汇总

一.大数据中的数据仓库和Mpp数据库如何选型? 在Hadoop平台中,一般大家都把hive当做数据仓库的一种选择,而Mpp数据库的典型代表就是impala,presto.Mpp架构的数据库主要用于即席查询场景,暨对数据查询效率有较高要求的场景,而对数据仓库的查询效率要求无法做大MPP那样,所以更多地适用与离线分析场景. Hadoop已经是大数据平台的实时标准,其中Hadoop生态中有数据仓库Hive,可以作为大数据平台的标准数据仓库, 对于面向应用的MPP数据库,可以选择MYCAT(mySql的

机器学习之数据预处理,Pandas读取excel数据

Python读写excel的工具库很多,比如最耳熟能详的xlrd.xlwt,xlutils,openpyxl等.其中xlrd和xlwt库通常配合使用,一个用于读,一个用于写excel.xlutils结合xlrd可以达到修改excel文件目的.openpyxl可以对excel文件同时进行读写操作. 而说到数据预处理,pandas就体现除了它的强大之处,并且它还支持可读写多种文档格式,其中就包括对excel的读写.本文重点就是介绍pandas对excel数据集的预处理. 机器学习常用的模型对数据输入

特征提取(机器学习数据预处理)

特征提取(机器学习数据预处理) 特征提取与特征选择都是数据降维的技术,不过二者有着本质上的区别:特征选择能够保持数据的原始特征,最终得到的降维数据其实是原数据集的一个子集:而特征提取会通过数据转换或数据映射得到一个新的特征空间,尽管新的特征空间是在原特征基础上得来的,但是凭借人眼观察可能看不出新数据集与原始数据集之间的关联. 这里介绍2种常见的特征提取技术: 1)主成分分析(PCA) 2)线性判别分析(LDA) 1.主成分分析(PCA) 一种无监督的数据压缩,数据提取技术,通常用于提高计算效率,

机器学习数据预处理——标准化/归一化方法总结

通常,在Data Science中,预处理数据有一个很关键的步骤就是数据的标准化.这里主要引用sklearn文档中的一些东西来说明,主要把各个标准化方法的应用场景以及优缺点总结概括,以来充当笔记. 首先,我要引用我自己的文章Feature Preprocessing on Kaggle里面关于Scaling的描述 Tree-based models doesn't depend on scaling Non-tree-based models hugely depend on scaling 一