Day1:数据预处理

Day 1.jpg

案例1

数据下载

一、导入所需的库

import numpy as np
import pandas as pd

二、导入数据

dataset = pd.read_csv('D:\\data\\Data.csv')
X = dataset.iloc[:,:-1].values
Y = dataset.iloc[:,-1].values

三、处理缺失值

from sklearn.preprocessing import Imputer
imputer = Imputer(missing_values = 'NaN', strategy = 'mean', axis = 0)
imputer = imputer.fit(X[:,1:3])
X[:,1:3] = imputer.transform(X[:,1:3])

Imputer的参数strategy为缺失值的填充方式,支持三种,mean(均值),median(中位数),most_frequent(众数),默认mean,axis=0

四、分类数据编码

LabelEncoder将类别与数字对应,例如{‘A’,‘B’,‘C’}与[0,1,2]对应,但不能认为A与B,B与C距离为1,而A与C距离为2。OneHotEncoder正是为了处理这种距离的度量,该方法认为每个类别之间的距离是一样的。该方法将类别与向量对应,例如{‘A’,‘B’,‘C’}分别与[1,0,0],[0,1,0],[0,0,1]对应。

from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelencoder = LabelEncoder()
X[:,0] = labelencoder.fit_transform(X[:,0])
Y = labelencoder.fit_transform(Y)

onehotencoder = OneHotEncoder(categorical_features = [0])
X = onehotencoder.fit_transform(X).toarray()

OneHotEncoder参数解释:
categorical_features是需要OneHotEncoder的列索引
n_values是对应categorical_features中各列下类别的数目

五、分割训练集、测试集

from sklearn.cross_validation import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split(X,Y,test_size=0.2, random_state=0)

train_test_split参数解释:
train_data:所要划分的样本特征集
train_target:所要划分的样本结果
test_size:样本占比,如果是整数的话就是样本的数量
random_state:是随机数的种子。
随机数种子:其实就是该组随机数的编号,在需要重复试验的时候,保证得到一组一样的随机数。比如你每次都填1,其他参数一样的情况下你得到的随机数组是一样的。但填0或不填,每次都会不一样。
随机数的产生取决于种子,随机数和种子之间的关系遵从以下两个规则:
种子不同,产生不同的随机数;种子相同,即使实例不同也产生相同的随机数。

六、数据标准化

from sklearn.preprocessing import StandardScaler
sc_X = StandardScaler()
X_train = sc_X.fit_transform(X_train)
X_test = sc_X.fit_transform(X_test)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • 开始学习之前发现Sketch的序列号已经过期了,查资料有两种解决方案: 1,直接开Mac的Terminal,输入r...
    董碧池阅读 1,447评论 1 6