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)

你可能感兴趣的:(Day1:数据预处理)