数据科学与机器学习:数学与统计方法
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2 类型结构特征

我们一般将特征分为定量特征和定性特征。定量特征具有“数值量”,如身高、年龄、出生人数等,它可以是连续的,也可以是离散的。连续的定量特征在可能的连续范围内取值,如身高、电压或农作物产量,这种特征体现了总是可以进行更精确测量的思想。离散的定量特征具有可数的可能性,如计数。

与此相反,定性特征没有数值含义,但它们可能的取值可以划分成固定数量的类别,如{M,F}表示性别,{蓝色, 黑色, 棕色, 绿色}表示眼睛的颜色。因此,这样的特征也称为分类特征。一个简单的经验法则是,如果对数据进行平均没有意义,那么它就是分类特征。例如,对眼睛颜色进行平均是没有意义的。当然,我们仍然可以用数字来表示分类数据,比如,1表示蓝色,2表示黑色,3表示棕色,但是这样的数字没有量化意义。分类特征通常称为因子(factor)。

在操作、汇总和显示数据时,正确指定变量(特征)的类型十分重要。我们使用文献[73]提供的nutrition_elderly数据集来说明这一点,该数据集是有关老人营养的研究结果,它包含226名老人(行)的13个特征(列)的营养测量数据。该数据集可以通过网址http://www.biostatisticien.eu/springeR/nutrition_elderly.xls获得。

Excel文件可以通过read_excel方法直接读入pandas

这将创建一个DataFrame对象nutrinutri的前三行数据如下:

我们可以通过nutriinfo方法来查看变量的类型或结构:

nutri中的13个特征全部都被Python解释为定量变量,实际上是整数,因为它们是作为整数输入的。表1.1显示了应如何对变量类型进行分类。当我们考虑表1.2给出的特征描述时,这些数字的含义就变得很清楚了。

表1.1 DataFrame对象nutri的特征类型

请注意,表1.1中定性特征第二行的类别变量meatchocol有一个自然顺序。这样的定性特征有时称为序数特征,相反,没有序数属性的定性特征称为标称特征。我们在本书中不做这样的区分。

表1.2 营养研究中的变量说明[73]

我们可以使用Python中的replaceastype方法修改每个分类特征的值和类型。对于分类特征,比如gender,我们可以将1替换为'Male',将2替换为'Female',并将变量的类型修改为'category',方法如下:

其他分类特征的结构也可以用类似的方式改变。像height这样的连续特征,其类型应为float

我们可以对其他变量重复这样的操作(见习题2),并使用pandasto_csv方法将修改后的数据帧保存为CSV文件。