1、标称数据
标称数据是没有自然顺序的离散、非数值型值。
2、序数数据
序数数据是离散、非数值型值,但不同于标称数据,序数数据有自然顺序。MATLAB提供ordinal数组对象来存储和操纵序数数据。
3、分类数据
categorical数据类型用于创建有限离散分类数据,该类型与nominal和ordinal的用法类似。
4、示例数据集
为了便于和其他算法的性能进行比对,本书绝大部分示例都使用一些公开的数据集。下面对经常使用的数据集进行说明。
(1)天气问题
天气问题的数据集很小,其数据纯属虚构,只是为了用来说明机器学习的方法。
天气问题有四个属性:天气趋势(outlook)、温度(temperature)、湿度(humidity)和刮风(windy)。还有一个目标属性(play)表示样本的类别,即在四个属性值确定的前提下得到是否可运动的结论。
天气问题仅有14个样本,表1所示为天气问题的简单形式,四个属性都采用离散的标称型来表示,而不采用连续型数值。其中,天气趋势的属性值有sunny(晴)、overcast(多云)和rainy(雨);温度属性值有hot(热)、mild(温暖)和cool(凉爽);湿度属性值有high(高)和normal(正常);刮风属性值有TRUE(真)和FALSE(假);是否可运动属性值有yes(是)和no(否)。
表1 标称属性的天气问题

机器学习的一个目标就是要找出数据的内在模式,本例中,就是要得到在什么天气情况下可运动的规则。然后,根据这个规则,对给定新的天气情况,如:
outlook = sunny and humidity = high then play = ?
给出是否可玩的判断。
表2所示为天气问题的稍微复杂一点的形式。温度和湿度两个属性的数据类型由离散的标称型变为连续的数值型。如果全部属性都是数值型,就称为数值属性问题。但这里不是所有属性都是数值型,因此称为混合属性问题。
显然,如果包含了数值类型的属性,学习方案可能需要对此类属性建立不等式,因此,得到包含数值测试的规则有些复杂。例如,决策规则可能是这样的:
if outlook = sunny and humidity <= 75 then play = yes
表2 混合属性的天气问题

(2)鸢尾花
鸢尾花(iris)是非常著名的用于模式识别的数据集,该数据集于1936年由R. A. Fisher创建,Fisher的论文也成为经典,直到今天还经常被引用。鸢尾花原始数据集位于网站http://archive.ics.uci.edu/ml/datasets/Iris。
加载后,鸢尾花的类别属性放在species中,这是一个150×1的cell数组;4个属性放在meas中,这是一个150×4的double型矩阵。其中,species有三种取值,也就是鸢尾花的三个类别:setosa(山鸢尾)、versicolor(变色鸢尾)和virginica(维吉尼亚鸢尾),每个类别各有50个实例。meas定义了如下4个属性:sepal length(花萼长)、sepal width(花萼宽)、petal length(花瓣长)、petal width(花瓣宽)。这些长宽属性都是数值类型,单位为cm(厘米)。
表3摘录自鸢尾花数据集。该数据集就是要根据鸢尾花的花萼长宽和花瓣长宽数据,找出不同类别花的特点分布情况,揭示其中隐藏的规律性。
表3 鸢尾花数据集

所需代码:

