为什么做数据处理
课上老师讲的数据例如鸢尾花数据,红酒数据,波士顿数据等等,都是处理好的数据,数据很干净,不会出现缺失等情况。
利用对于机器学习模型想要获得更好的结果需要更为合适的数据,因此数据分析以及数据处理就变得很有必要
数据挖掘的五大流程
1,获取数据 2,数据预测处理3,特征工程4,建模5,上线
sklearn 的数据预处理和特征工程
数据预处理
数据无量纲化
不同规格数据转化为统一规格,不同分布数据转化为特定分布。无量纲化就是将数据转化为需要的数据。
对于数据无纲化以后能够加快模型的求解速度,以及求解的速率。
线性数据的无量纲化包括中心化处理和缩放处理,
中心化:本质是所有的记录减去一个固定值,让数据平移到某个位置。
缩放处理:除以一个固定值,将数据固定在某个范围当中。
MinMaxScaler
数据归一化:数据(x)按照最小值中心化以后再按极差缩放,数据移动了最小值单位,被收敛在【0,1】即为 Normalization 归一化。
归一化和正则化不能搞混,正则化为regulation。归一化数据服从正态分布。
Standard
当数据(x)按均值(μ)中心化后,再按标准差(σ)缩放,数据就会服从为均值为0,方差为1的正态分布(即标准正态分
布),而这个过程,就叫做数据标准化(Standardization,又称Z-score normalization),公式如下:
对于StandardScaler和MinMaxScaler来说,空值NaN会被当做是缺失值,在fit的时候忽略,在transform的时候保持缺失NaN的状态显示。并且,尽管去量纲化过程不是具体的算法,但在fit接口中,依然只允许导入至少二维数组,一维数组导入会报错。通常来说,我们输入的X会是我们的特征矩阵,现实案例中特征矩阵不太可能是一维所
以不会存在这个问题。
现实生活中的问题:
对于现实生活的数据问题由于都是二维数据,大多数情况下不会出现一位数数组会选择Standard的方式进行特征缩放,由于MinMaxScaler对异常数数据非常敏感。在PCA,聚类,逻辑回归,支持向量机,神经网络这些算法中,StandardScaler大部分是最好的情况。
对于MinMaxScaler在不设计距离的度量的情况下距离度量,梯度,协方差的情况相下该方法将数据压缩到【0,1】的区间内部。先试试StandardScaler,效果不好换MinMaxScaler。
缺失值
机器学习和数据挖掘中使用的数据,对于数据收集和建模意义非凡,数据处理中还有一项数据的缺失值处理很重要。
impute.SimpleImputer
class sklearn.impute.SimpleImputer (missing_values=nan, strategy=’mean’, fill_value=None, verbose=0, copy=True)
对于imput的类是专门填补缺失值的类。
处理分类的特征:编码和哑变量
在机器学习中大部分算法不可以直接处理文字,因此需要将文字的方式转化为数据的类型,在数据的操作中有数据可以比大小有些数据则不能通过比较数值进行计算,对于比大小可以进行数值进行计算 的方式可以将文字转化为数值的类型。例如支付方式为【微信,现金,支付宝】等方式。主要将文字的类型装华为数据的类型。