数据预处理| Day 1——机器学习100天

Data PreProcessing


链接:
https://github.com/Avik-Jain/100-Days-Of-ML-Code
代码均可正常运行,如有问题评论留言,可以一起学习进步。

数据预处理| Day 1——机器学习100天_第1张图片

如信息图所示,我们将数据预处理分解为 6 个基本步骤。
数据集如下所示

//data.csv
Country,Age,Salary,Purchased
France,44,72000,No
Spain,27,48000,Yes
Germany,30,54000,No
Spain,38,61000,No
Germany,40,,Yes
France,35,58000,Yes
Spain,,52000,No
France,48,79000,Yes
Germany,50,83000,No
France,37,67000,Yes

Step 1:导入依赖

import numpy as np
import pandas as pd

numpy 数据运算 pandas导入和管理数据集

Step 2: 导入数据集

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

数据集通常是 .csv 格式 。csv文件在空白文本中存储着表格数据。文件的每一行是一个数据记录。使用 pandas中的 read_csv 方法读取本地的一个csv文件作为一个数据框,然后我们将数据框分成独立和非独立变量的矩阵和向量。

Step 3: 处理缺失的数据

我们得到的数据相当的大,由于各种原因数据可能会丢失,我们需要处理他以至他不会降低机器学校模型的表现。我们使用数据整个列的平均数或者中位数来代替丢失的数据。我们使用 sklearn.preprocessing 的 SimpleImputer 类来完成这个任务。

from sklearn.impute import SimpleImputer as Imputer

imputer = Imputer(missing_values = np.nan, strategy = "mean")
imputer = imputer.fit(X[ : , 1:3])
X[ : , 1:3] = imputer.transform(X[ : , 1:3])

Step 4: 编码分类数据

分类的数据是包含标签值而不是数值的变量,标签值可能性的数量经常被限制在一个固定的数据集中,在本数据集示例值是 “yes” and “no”, 这个标签值不能在模型的数学等式中使用,所以我们需要将那些变量编码成数字。我们导入 来自 sklearn.preprocessing库的 LabelEncoder 类来实现这一点。

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

创建一个虚拟数据

# onehotencoder = OneHotEncoder(categorical_features = [0])
# X = onehotencoder.fit_transform(X).toarray()
ct = ColumnTransformer([("Country", OneHotEncoder(), [0])], remainder = 'passthrough')
X = ct.fit_transform(X)
labelencoder_Y = LabelEncoder()
Y =  labelencoder_Y.fit_transform(Y)

Step 5: 将数据集拆分为训练集和测试集

我们将数据集拆分两部分,一个用于训练模型被称为训练集,另一个用于测试训练模型的表现,称为测试集。分割通常是8/2.我们导入 sklearn.crossvalidation 包中的 train_test_split()

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)

Step 6: 特征缩放

按特征完成标准化或者 z - 分数标准化。 sklearn.preprocessing 的 standardScalar 被导入。

from sklearn.preprocessing import StandardScaler
sc_X = StandardScaler()
X_train = sc_X.fit_transform(X_train)
X_test = sc_X.fit_transform(X_test)

Done

你可能感兴趣的:(machineLearning,机器学习,python)