首页 > 编程知识 正文

机器学习,机器学习特征

时间:2023-05-06 12:45:23 阅读:190699 作者:1714

文章目录 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 prepenc = 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 preplabelEnc = 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 prepordinalEnc = 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. 总结

一表总结各种特征变量区别。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。