机器学习中的特征变量及处理总结 | 您所在的位置:网站首页 › 模型法的特点是什么意思 › 机器学习中的特征变量及处理总结 |
文章目录
1. 定性特征变量1.1 定类变量处理1.2 定序变量处理
2. 定量特征变量3. 总结
牢记一句话:“数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已”。 机器学习的根本目标,就是用数据的特征变量去对目标变量进行预测。那么我们所遇到的特征变量有哪些种类呢?各个种类又该如何处理呢? 总体而言,所有的特征变量可以归为两大类:定性特征和定量特征,我们依次看一下。 1. 定性特征变量定性特征变量,泛指 分类变量/属性变量(qualitative, categorical or attribute variable),比如种族(满汉蒙回…),性别(男和女),年级(小学、初中、高中)。 对定性特征变量细分,又可以分两种:定类变量(Norminal Data)和定序变量(Ordinal Data),区别在于定类变量间没有大小、先后等关系(比如性别),而定序变量有对应关系(比如年级)。 1.1 定类变量处理变量的不同取值仅仅代表了不同类的事物,这样的变量叫定类变量。问卷的人口特征中最常使用的问题,而调查被访对象的“性别”,就是 定类变量。对于定类变量,加减乘除等运算是没有实际意义的。 在机器学习的数据预处理中,对于定类变量通常可以使用one-hot编码进行处理,本质上就是将定类变量的类别转换为两两正交的向量,保证类别之间的独立性。由于编码成的向量长度为类别的数目,所以one-hot编码可能导致特征空间变得非常大,导致维度灾难,这个时候可以考虑降维处理,即one-hot encoding + PCA的方式。 如下示例代码: from sklearn import preprocessing as prep enc = prep.OneHotEncoder() X = [['male', 'from US', 'uses Safari'], ['female', 'from Europe', 'uses Firefox']] enc.fit(X) enc.transform([['female', 'from US', 'uses Firefox'], ['male', 'from Europe', 'uses Safari']]).toarray() array([[1., 0., 0., 1., 1., 0.], [0., 1., 1., 0., 0., 1.]])其中,可以看到特征空间维度从3变成了6。 1.2 定序变量处理变量的值不仅能够代表事物的分类,还能代表事物按某种特性的排序,这样的变量叫定序变量。问卷的人口特征中最常使用的问题“教育程度“,定序变量的值之间可以比较大小,或者有强弱顺序,但两个值的差一般没有什么实际意义。 定序变量一般使用OrdinalEncoder或者LabelEncoder来进行处理,这两者本质上作用是一样的,区别在于接受的参数不同。参见 Difference between OrdinalEncoder and LabelEncoder。 示例代码如下: from sklearn import preprocessing as prep labelEnc = prep.LabelEncoder() labelEnc.fit(["S1", "S2", "S1", "S3"]) print(labelEnc.classes_) labelEnc.transform(["S1", "S3", "S1", "S2", "S3"]) ['S1' 'S2' 'S3'] array([0, 2, 0, 1, 2], dtype=int64) from sklearn import preprocessing as prep ordinalEnc = prep.OrdinalEncoder() ordinalEnc.fit([["S1", "d1"],["S2", "d3"], ["S2", "d2"]]) ordinalEnc.categories_ ordinalEnc.transform([["S2", "d1"],["S1", "d3"], ["S2", "d2"]]) array([[1., 0.], [0., 2.], [1., 1.]]) 2. 定量特征变量定量特征变量泛指数值变量(quantitative or numeric variable),比如温度,年龄,收入,这些都可以用数值表示的。 对定量特征变量细分,可以分为两种:定距变量(Interval Data)和 定比变量(Ratio Data),两者一般不做特别区分,仅有的区别在于“定距变量取值为“0”时,不表示“没有”,仅仅是取值为0;定比变量取值为“0”时,则表示“没有””。 在定量特征变量中,有的变量只能取到特定的数值,叫做离散变量,比如火车数量只能是整数;有的变量可以取到任意连续值,叫做连续变量,比如质量。 对于离散的变量,我们往往可以直接灌入到模型当中;但是对于连续变量由于取值无限多,对很多机器学习算法不友好,因此需要进行离散化处理。 下面将单独总结一篇文章,讲《连续特征的离散化》。 3. 总结一表总结各种特征变量区别。 |
CopyRight 2018-2019 实验室设备网 版权所有 |