博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据预处理代码分享——机器学习与数据挖掘
阅读量:6568 次
发布时间:2019-06-24

本文共 1941 字,大约阅读时间需要 6 分钟。

数据预处理分为6步:

第1步:导入NumPy和Pandas库。NumPy和Pandas是每次都要导入的库,其中Numpy包含了数学计算函数,Pnadas是一个用于导入和管理数据集(Data Sets)的类库。

第2步:导入数据集。数据集一般都是.csv格式,csv文件以文本形式存储数据。每一行数据是一条记录。我们使用pandas类库的read_csv方法读取本地的csv文件作为一个dataframe。然后从datafram中分别创建自变量和因变量的矩阵和向量。

第3步:处理缺失的数据。我们得到的数据很少是完整的。数据可能因为各种原因丢失,为了不降低机器学习模型的性能,需要处理数据。我们可以用整列的平均值或者中间值替换丢失的数据。我们用sklearn.preprocessing库中的Inputer类完成这项任务。

第4步:对分类数据进行编码。分类数据指的是含有标签值而不是数字值得变量。取值范围通常是固定的。例如“YES”和“NO”不能用于模型的数学计算,所以需要编码成数字。为数显这一功能,我们从sklearn.preprocessing库中导入LabelEncoder类。

第5步:拆分数据集为测试集合和训练集合。把数据集拆分成两个,一个是用来训练模型的训练集合,另一个是用来验证模型的测试集合。两种比例一般是80:20。我们导入sklearn.crossvalidation库中的train_test_split()方法。

第6步:特征缩放。大部分模型算法使用两点间的欧式近距离表示,但此特征在幅度、单位和范围姿态问题上变化很大。在距离计算中,高幅度的特征比低幅度特征权重大。可用特征标准化或Z值归一化解决。导入sklearn.preprocessing库的StandardScalar类。

代码如下: 视频教学QQ群 519970686

1 Step 1: 导入类库

2
3 import numpy as np
4 import pandas as pd
5
6 Step 2: 导入数据集
7 dataset = pd.read_csv('Data.csv')
8 X = dataset.iloc[ : , :-1].values
9 Y = dataset.iloc[ : , 3].values
10
11 Step 3: 处理缺失的数据
12 from sklearn.preprocessing import Imputer
13 imputer = Imputer(missing_values = "NaN", strategy = "mean", axis = 0)
14 imputer = imputer.fit(X[ : , 1:3])
15 X[ : , 1:3] = imputer.transform(X[ : , 1:3])
16
17 Step 4:编码分类数据
18 from sklearn.preprocessing import LabelEncoder, OneHotEncoder
19 labelencoder_X = LabelEncoder()
20 X[ : , 0] = labelencoder_X.fit_transform(X[ : , 0])
21 Creating a dummy variable
22
23 onehotencoder = OneHotEncoder(categorical_features = [0])
24 X = onehotencoder.fit_transform(X).toarray()
25 labelencoder_Y = LabelEncoder()
26 Y = labelencoder_Y.fit_transform(Y)
27
28 Step 5: 切分数据集成训练数据和测试数据
29 from sklearn.cross_validation import train_test_split
30 X_train, X_test, Y_train, Y_test = train_test_split( X , Y , test_size = 0.2, random_state = 0)
31
32 Step 6: 特征缩放
33 from sklearn.preprocessing import StandardScaler
34 sc_X = StandardScaler()
35 X_train = sc_X.fit_transform(X_train)
36 X_test = sc_X.fit_transform(X_test)
图片描述

转载地址:http://ifvjo.baihongyu.com/

你可能感兴趣的文章
puppet cron 模块
查看>>
mysql 协议的ResultsetRow包及解析
查看>>
Ymal格式转Properties格式
查看>>
一个生成全局唯一Sequence ID的高并发工厂类 (Java)
查看>>
调优之系统篇--cpu,内存
查看>>
解决jQuery和其它库的冲突
查看>>
写在除夕夜
查看>>
JAVA中的list去重复
查看>>
JAVA 代码里中文乱码问题
查看>>
Grub的安装方法
查看>>
SpringMVC通过注解方式读取properties文件中的值
查看>>
Spring+Dubbo+Zookeeper简单框架与使用
查看>>
Open Cascade DataExchange DXF
查看>>
Greenplum Hadoop分布式平台大数据解决方案实战教程
查看>>
编译安装LAMP之配置httpd以FastCGI方式与php整合
查看>>
Haproxy
查看>>
性能调优之Java系统级性能监控及优化
查看>>
SylixOS内核打印调试方法
查看>>
轻量级的jQuery表单验证插件 - HAPPY.js
查看>>
Spring MVC 框架搭建及详解
查看>>