用数据框的unique函数就能得到所有的工作情况。
adult["Work-Class"]。unique()
输出结果如下:
array(['State-gov', 'Self-emp-not-inc', ' Private','Federal-gov', 'Local-gov', '?', 'Self-emp-inc',' Without-pay',
' Never-worked', nan], dtype=object)
数据集部分数据缺失,但不会影响这里的计算。
对于Adult数据集,我们可以创建LongHours(时长)特征,用它来表示一个人每周工作时间是否多于40小时。这样就把连续值(Hours-per-week,每周工作时长)转换为类别型特征。
adult["LongHours"] = adult["Hours-per-week"] > 40
选择好的分类算法也可以提升数据挖掘应用的效果,但是通过选用好的特征来达到同样的目的。
3。2 特征选择
通常特征数量很多,但是我们只想选用其中一部分。有如下几个原因:
降低复杂度:随着特征数量的增加,很多数据挖掘算法需要更多的时间和资源。减少特征数量,是提高算法运行速度,减少资源使用的好办法。
降低噪音:增加额外特征并不总会提升算法的表现。额外特征可能扰乱算法的正常工作,这些额外特征间的相关性和模式没有实际应用价值(这种情况在小数据集上很常见)。只选择合适的特征有助于减少出现没有实际意义的相关性的几率。
增加模型可读性:根据成千上万个特征创建的模型来解答一个问题,对计算机来说很容易,但模型对我们自己来说就晦涩无比。因此,使用更少的特征,创建我们自己可以理解的模型,就很有必要。
有些分类算法确实很强壮,能够处理噪音问题,特征再多也不在话下,但是选用干净的数据,选取更具描述性的特征,对算法效果提升很有帮助。文献综述
在开展数据挖掘工作前,有些基础测试我们要做,比如确保特征值是不同的。如果特征值都相同,就跟没提供什么信息一样,挖掘就失去了意义。
Scikit-learn中的VarianceThreshold转换器可用来删除特征值的方差达不到最低标准的特征。下面通过代码来讲下它的用法,首先用numpy创建一个简单的矩阵。
import numpy as np
X = np。arange(30)。reshape((10, 3))
上述矩阵包含0到29,共30个数字,分为3列10行。可以把它看成一个有10个个体、3个特征的数据集。
Python广告投放分类问题中的特征提取方法(5):http://www.youerw.com/jisuanji/lunwen_191827.html