机器学习之数据预处理

连续数值预处理

一、数据标准化(Standardization)

1、数据标准化的定义

又称均值移除(Mean Removal),对不同样本的同一特征值进行处理,最终均值为0,标准差为1。公式如下:

Xscaled = \frac{X - Mean}{Sd}

2、python实现

我们可以利用Sklearn里面的预处理模块达到数据标准化的目的。(Sklearn.preprocessing.scale())

机器学习之数据预处理_第1张图片

 

二、数据缩放化(Scaling)

1、数据缩放化的定义

对不同样本的同一特征值,减去其Min,再除以(Max - Min),最终原Max为1,原Min为0,这样在数据分析时可以有效的消除不同单位大小对最终结构的权重影响。公式如下:

Xscaled = \frac{X - Xmin}{Xmax - Xmin}

2、python实现

我们可以利用Sklearn里面的预处理模块达到数据缩放化的目的。(Sklearn.preprocessing.MinMaxScaler().fit_transform())

机器学习之数据预处理_第2张图片

 

三、数据归一化(Normalization)

1、数据归一化定义

当需要调整特征向量中的值时,可以使用数据归一化,以便可以使用通用比例尺对其进行测量。机器学习中最常用的规范化形式之一是调整特征向量的值,使其总和为1。常见的处理方式有两种:

L1模式:使用L1模式可以度量两个向量间的差异,例如曼哈顿距离、最小绝对误差等;

L2模式:通常被用来做优化目标函数的正则化项,防止模型为了拟合训练集而过于复杂造成过拟合的情况,从而提高模型的泛化能力,例如欧式距离。

2、python实现

我们可以利用Sklearn里面的预处理模块达到数据归一化的目的。(Sklearn.preprocessing.normalize())以下仅给出L1模式的情况,L2模式可自行修改norm中的参数。

机器学习之数据预处理_第3张图片

axis = 0代表按列进行转换。

四、数据二值化(Binarization)

1、数据二值化的定义

当我们要将数字特征向量转换为布尔向量时,可以使用二值化。在数字图像处理领域,图像二值化是将彩色或灰度图像转换为二进制图像的过程。

2、python实现

我们可以利用Sklearn里面的预处理模块达到数据二值化的目的。(Sklearn.preprocessing.Binarizer())

这里threshold的意思是,如大于7则转换为1,否则转换为0。

机器学习之数据预处理_第4张图片

 

离散数值预处理

一、独热编码(One-hot-encoder)

1、独热编码的定义

相对于传统的将每个独立的对象进行一对一编码,独热编码可以将“一键编码”视为一种可以强化特征向量的工具。它查看每个功能并标识不同值的总数。它使用N分之一的方案来编码值。基于该方案对特征向量中的每个特征进行编码,这有助于我们提高空间效率。

例如下表(说人话),独热编码就是识别“学生类别”这个特征里面有4个属性,再将这4个属性进行特征展开,具体到每一个展开属性中出现的则标1,否则标0.

机器学习之数据预处理_第5张图片

2、python实现

我们可以利用Sklearn里面的预处理模块达到独热编码的目的。(Sklearn.preprocessing.OneHotEncoder())

机器学习之数据预处理_第6张图片

 

二、标签编码(Label_Encoder)

1、标签编码的定义

对于离散的数字或文本进行编号,即将离散数据转换成连续的数值型变量。

例如上面的例子,将小学生、初中生、高中生和大学生,按0123进行代表,则有如下转换:

机器学习之数据预处理_第7张图片

2、python实现

我们可以利用Sklearn里面的预处理模块达到标签编码的目的。(Sklearn.preprocessing.LabelEncoder())

第一步,构建一个LabelEncoder编码器

机器学习之数据预处理_第8张图片

第二步,将所需编码的数据丢进第一步构建完成的编码器中进行编码。可以看到新丢进去的类别以上面构建好的labelencoder进行编码,一一对应。

 

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