数据预处理(Python&R)学习笔记

栏目: Python · 发布时间: 8年前

内容简介:数据预处理(Python&R)学习笔记

数据预处理(Python&R)学习笔记

首先,让我们先来看一下我们要处理的数据实例:

数据预处理(Python&R)学习笔记

我们的目的是让这样的原始数据处理成机器学习算法可以直接计算的额数据形式。对于该数据实例,有以下几个操作关键:

1.进行缺失数据处理

对缺失值进行处理的一般思路是使用这一列数据的“平均数”,“中位数”或“众数”来填充,这里我们利用“中位数”来填充。

2.处理分类特征的数据(Country&Purchased)

像Country和Purchased这两列数据,其实质是分类,而不是数值大小,在这里使用虚拟编码对其进行处理。比如,对于Country这一列数据,使 用OnehotEncoder进行 处理。

3.将数据集分成训练集和测试集

将数据集分成训练集和测试集是十分必要的,我们一般会随机地将数据集的25%或20%(一般不超过40%)数据设置为测试集,剩下的为训练集。 这里我们设置20%为测 试集。

4.特征缩放

特征缩放在一些机器学习算法中必要的,比如在涉及到欧氏距离计算的算法、决策树算法中。是为了防止数值较大的自变量对数值较小的自变量的 影响(比如例子中 Salary这一列与Age这一列)或是为了在算法中使得收敛速度更快。关于特征缩放有以下两种方法(标准化和正常化):

数据预处理(Python&R)学习笔记

很显然,对于Salary&Age这两列的数据进行特征缩放毋庸置疑,但对于像Country&Purchased这两列进行虚拟编码的数据是否需要特征缩放就需要 视情况而定。在这里 是对所有自变量的数据进行特征缩放。

好了,现在可以开始使用Python&R进行操作了。

一、数据预处理(Python)

①导入标准库

# Data Preprocessing Template

# Importing the libraries
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

②导入数据集,并划分自变量矩阵和因变量向量

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

③利用每列平均数填充缺失值

# Taking care of missing data
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])

④对分类特征的数据(Country&Purchased)进行处理

# Encoding categorical data
# Encoding the Independent Variable
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()
# Encoding the Dependent Variable
labelencoder_y = LabelEncoder()
y = labelencoder_y.fit_transform(y)

⑤将数据分成训练集和测试集

# Splitting the dataset into the Training set and Test set
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0)

⑥特征缩放

# Feature Scaling
from sklearn.preprocessing import StandardScaler
sc_X = StandardScaler()
X_train = sc_X.fit_transform(X_train)
X_test = sc_X.transform(X_test)

以上步骤并不是每一步都是必需的,要视具体情况而定。

二、数据预处理(R)

①导入数据集

# Data Preprocessing

# Importing the dataset
dataset = read.csv('Data.csv')

②对缺失数据进行处理

# Taking care of missing data
dataset$Age[is.na(dataset$Age)] = mean(dataset$Age, na.rm = T)
dataset$Age[is.na(dataset$Salary)] = mean(dataset$Salary, na.rm = T)

③对分类特征的数据(Country&Purchased)进行处理

# Encoding categorical data
dataset$Country = factor(dataset$Country,
                         levels = c('France', 'Spain', 'Germany'),
                         labels = c(1, 2, 3))
dataset$Purchased = factor(dataset$Purchased,
                           levels = c('No', 'Yes'),
                           labels = c(0, 1))

④将数据分成训练集和测试集

# Splitting the dataset into the Training set and Test set
# install.packages('caTools')
library(caTools)
set.seed(123)
split = sample.split(dataset$Purchased, SplitRatio = 0.8)
training_set = subset(dataset, split == TRUE)
test_set = subset(dataset, split == FALSE)

⑤特征缩放

# Feature Scaling
training_set[, 2:3] = scale(training_set[, 2:3])
test_set[, 2:3] = scale(test_set[, 2:3])

以上所述就是小编给大家介绍的《数据预处理(Python&R)学习笔记》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Unity 3D游戏开发(第2版)

Unity 3D游戏开发(第2版)

宣雨松 / 人民邮电出版社 / 2018-9 / 89.00元

Unity 是一款市场占有率非常高的商业游戏引擎,横跨25 个主流游戏平台。本书基于Unity 2018,结合2D 游戏开发和3D 游戏开发的案例,详细介绍了它的方方面面,内容涉及编辑器、游戏脚本、UGUI 游戏界面、动画系统、持久化数据、静态对象、多媒体、资源加载与优化、自动化与打包等。 本书适合初学者或者有一定基础的开发者阅读。一起来看看 《Unity 3D游戏开发(第2版)》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具