联邦学习基础概念(二)

数据预处理

1.数据采样:采样就是按照某种规则从数据集中挑选样本数据,大致分为3类:随机采样、系统采样和分层采样。

随机采样:就是从数据集中随机的抽取特定数量的数据,分为有放回和无放回两种。

系统采样:一般是无放回抽样,又称等距采样,先将总体数据集按顺序分成n小份,再从每小份抽取第k个数据。

分层采样:就是先将数据分成若干个类别,再从每一层内随机抽取一定数量的样本,然后将这些样本组合起来。

2.归一化:归一化是指一种简化计算的方式,将数据经过处理之后限定到一定范围之内,如数据较大,可通过归一化计算后,将数据限定在[0,1]内。数据归一化可加速算法的快速收敛,而且在后续数据处理上更加方便

3.One-Hot编码:主要是采用N位状态寄存器来对N个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候只有一位有效。One-Hot编码是分类变量作为二进制向量的表示。这首先要求将分类值映射到整数值。然后,每个整数值被表示为二进制向量,除了整数的索引之外,它都是零值,它被标记为1。

对于离散特征,例如,性别:{男,女},可以采用one-hot编码的方式将特征表示为一个m维向量,其中m为特征的取值个数。在one-hot向量中只有一个维度的值为1,其余为0。以“性别”这个特征为例,我们可以用向量 “1,0”表示“男”,向量 “0,1”表示“女”。使用one-hot编码可将离散特征的取值扩展到了欧式空间,便于进行相似度计算

为什么使用one-hot编码来处理离散型特征?
在回归,分类,聚类等机器学习算法中,特征之间距离的计算或相似度的计算是非常重要的,而我们常用的距离或相似度的计算都是在欧式空间的相似度计算,计算余弦相似性,基于的就是欧式空间。
而我们使用one-hot编码,将离散特征的取值扩展到了欧式空间,离散特征的某个取值就对应欧式空间的某个点。
将离散型特征使用one-hot编码,确实会让特征之间的距离计算更加合理。
比如,有一个离散型特征,代表工作类型,该离散型特征,共有三个取值,不使用one-hot编码,其表示分别是x_1 = (1), x_2 = (2), x_3 = (3)。两个工作之间的距离是,(x_1, x_2) = 1, d(x_2, x_3) = 1, d(x_1, x_3) = 2。那么x_1和x_3工作之间就越不相似吗?显然这样的表示,计算出来的特征的距离是不合理。那如果使用one-hot编码,则得到x_1 = (1, 0, 0), x_2 = (0, 1, 0), x_3 = (0, 0, 1),那么两个工作之间的距离就都是sqrt(2).即每两个工作之间的距离是一样的,显得更合理。

不需要使用one-hot编码来处理的情况
将离散型特征进行one-hot编码的作用,是为了让距离计算更合理,但如果特征是离散的,并且不用one-hot编码就可以很合理的计算出距离,那么就没必要进行one-hot编码。
比如,该离散特征共有1000个取值,我们分成两组,分别是400和600,两个小组之间的距离有合适的定义,组内的距离也有合适的定义,那就没必要用one-hot 编码。
离散特征进行one-hot编码后,编码后的特征,其实每一维度的特征都可以看做是连续的特征。就可以跟对连续型特征的归一化方法一样,对每一维特征进行归一化。比如归一化到[-1,1]或归一化到均值为0,方差为1。

4.数据分箱:作为数据预处理的一部分,也被称为离散分箱或数据分段。其实分箱的概念其实很好理解,它的本质上就是把数据进行分组,实现数据的离散化,增强数据稳定性,减少过拟合风险。逻辑回归中进行分箱是非常必要的,其他树模型可以不进行分箱。

分箱后的数据特点:

  • 数据可取值的范围变小了

  • 数据的可取值会更加确定与稳定

  • 数据中信息会变得模糊,不再那么精确

好处:

  • 提高模型的稳定性与鲁棒性

  • 防止过拟合问题

  • 加快模型训练速度

  • 很好的处理空值与缺失值

  • 增强逻辑回归的拟合力

例:

我们以年龄为例,看下面的表格,左边是原始年龄数据,右边是分箱后的数据

年龄(原始数据)

年龄(分箱后)

29

18至40岁

7

18岁以下

49

40至60岁

12

18岁以下

50

40至60岁

34

18至40岁

36

18至40岁

75

60岁以上

61

60岁以上

20

18至40岁

3

18岁以下

11

18岁以下

年龄字段中的数据被分到了以下4个组别中:

  • 18岁以下

  • 18至40岁

  • 40至60岁

  • 60岁以上

这样,原本取值是任何0-120整数的年龄数据就被分到了上面这4个固定的值中

连续型特征的分箱分为无监督分箱与有监督分箱两类,分别各有2种应用的比较广的方法:

    • 无监督分箱:不需要提供Y,仅凭借特征就能实现分箱

    • 等宽分箱

    • 等频分箱

    • 有监督分箱:需要结合Y的值,通过算法实现分箱

    • 决策树分箱

    • 卡方分箱

 

特征选择

特征选择的意义

在对数据进行异常值、缺失值、数据转换等处理后,我们需要从当前数据集中选出有意义的特征,然后输入到算法模型中进行训练。

对数据集进行特征选择主要基于以下几方面的考虑:

1.冗余的特征会影响阻碍模型找寻数据潜在的规律,若冗余的特征过多,还会造成维度容灾,占用大量的时间空间,使算法运行效率大打折扣。

2.去除不相关的特征会降低学习任务的难度,保留关键的特征更能直观的看出数据潜在的规律。

那么,该如何进行特征选择呢?通常,要从两方面考虑来选择特征:

1.特征是否具有发散性:
如果一个特征不发散,例如方差接近于0,也就是说样本在这个特征上基本上没有差异,这个特征对于样本的区分并没有什么用。

2.特征与目标的相关性:
如果一个特征不发散,例如方差接近于0,也就是说样本在这个特征上基本上没有差异,这个特征对于样本的区分并没有什么用。

根据特征选择的标准,又能分为filter、wrapper、embedded三种方法。

Filter方法

过滤法的主要思想是查看特征的发散性和特征与目标的相关性,通过设定阈值的方法,过滤发散性低、相关性不强的特征。

过滤法先对数据集进行特征选择,然后再训练学习器,特征选择过程与后续学习器无关,即先选好特征,再用过滤后的特征来训练模型。

具体来说,有:

1.方差法

使用方差法,要先计算各个特征的方差,然后根据阈值,选择方差大于阈值的特征。若特征的方差小于阈值,则代表该特征的发散性太弱。

2.Pearson系数

Pearson相关系数是用协方差除以两个变量的标准差得到的。皮尔逊系数只能衡量线性相关性,先要计算各个特征对目标值的相关系数以及相关系数的P值,P值区间在[-1,1],p值越大,则与目标值越正/负相关,当p值为0时,则代表与目标值不相关。

3.卡方检验

卡方检验只能用于二分类,经典的卡方检验是检验定性自变量对定性因变量的相关性。假设自变量有N种取值,因变量有M种取值,考虑自变量等于i且因变量等于j的样本频数的观察值与期望的差距,从而构建统计量。

4.互信息法

互信息(Mutual Information)是信息论里一种有用的信息度量,它可以看成是一个随机变量中包含的关于另一个随机变量的信息量,或者说是一个随机变量由于已知另一个随机变量而减少的不肯定性。

互信息系数能够很好地度量各种相关性。

wrapper法

过滤法在选择特征时不考虑特征对学习器的效果,包裹式选择就很灵性了。包裹式通常根据预测效果评分来为学习器“量身定制”特征子集,相较于过滤法,能使学习器的性能更佳,缺点即是计算开销往往也更大。

比如LVW(Las Vegas Wrapper)特征选择方法,其思想是使用随机策略来进行子集搜索,并以最终分类器的误差为特征子集的评价标准。

Embedded法

嵌入式特征选择方法也很灵性…嵌入式的特征选择方法将特征选择和学习器的训练过程融为一体,即学习器自动的进行了特征选择。

比如决策树的信息增益、信息增益比、基尼指数,求解最优解时的L1、L2正则化等思想,都能选取对学习器有价值的特征,过滤价值不大的特征。

原文地址:https://www.cnblogs.com/AmbitiousMice/p/14787079.html