某大型化工厂在厂区及邻近地区挑选了15个有代表性的大气取样点,每日4次同时抽取大气样品,测定其中含有的6种气体的浓度。取样共4天,每个取样点的每种气体实测16次。然后计算每个取样点中每种气体的平均浓度,数据如表6-1所示。气体数据对应的污染分类如表中最后一列所示。现有两个取自该地区的4个气体样本,气体指标如表中后4行所示,试判别这4个样品的污染分类。[大谦MATLAB,dqmatlab点com]
表6-1 大气样品数据表
| 气 体 | 氯 | 硫 化 氢 | 二 氧 化 硫 | 碳 4 | 环氧氯丙烷 | 环 己 烷 | 污 染 分 类 |
|---|---|---|---|---|---|---|---|
| 1 | 0.056 | 0.084 | 0.031 | 0.038 | 0.0081 | 0.022 | 1 |
| 2 | 0.040 | 0.055 | 0.100 | 0.110 | 0.0220 | 0.0073 | 1 |
| 3 | 0.050 | 0.074 | 0.041 | 0.048 | 0.0071 | 0.020 | 1 |
| 4 | 0.045 | 0.050 | 0.110 | 0.100 | 0.0250 | 0.0063 | 1 |
| 5 | 0.038 | 0.130 | 0.079 | 0.170 | 0.0580 | 0.043 | 2 |
| 6 | 0.030 | 0.110 | 0.070 | 0.160 | 0.0500 | 0.046 | 2 |
| 7 | 0.034 | 0.095 | 0.058 | 0.160 | 0.200 | 0.029 | 1 |
| 8 | 0.030 | 0.090 | 0.068 | 0.180 | 0.220 | 0.039 | 1 |
| 9 | 0.084 | 0.066 | 0.029 | 0.320 | 0.012 | 0.041 | 2 |
| 10 | 0.085 | 0.076 | 0.019 | 0.300 | 0.010 | 0.040 | 2 |
| 11 | 0.064 | 0.072 | 0.020 | 0.250 | 0.028 | 0.038 | 2 |
| 12 | 0.054 | 0.065 | 0.022 | 0.280 | 0.021 | 0.040 | 2 |
| 13 | 0.048 | 0.089 | 0.062 | 0.260 | 0.038 | 0.036 | 2 |
| 14 | 0.045 | 0.092 | 0.072 | 0.200 | 0.035 | 0.032 | 2 |
| 15 | 0.069 | 0.087 | 0.027 | 0.050 | 0.089 | 0.021 | 1 |
| 样品1 | 0.052 | 0.084 | 0.021 | 0.037 | 0.0071 | 0.022 | |
| 样品2 | 0.041 | 0.055 | 0.110 | 0.110 | 0.0210 | 0.0073 | |
| 样品3 | 0.030 | 0.112 | 0.072 | 0.160 | 0.056 | 0.021 | |
| 样品4 | 0.074 | 0.083 | 0.105 | 0.190 | 0.020 | 1.000 |
在命令窗口中输入下面的命令行:
code.matlab
>> training=[0.056 0.084 0.031 0.038 0.0081 0.022
0.040 0.055 0.100 0.110 0.0220 0.0073
0.050 0.074 0.041 0.048 0.0071 0.020
0.045 0.050 0.110 0.100 0.0250 0.0063
0.038 0.130 0.079 0.170 0.0580 0.043
0.030 0.110 0.070 0.160 0.0500 0.046
0.034 0.095 0.058 0.160 0.200 0.029
0.030 0.090 0.068 0.180 0.220 0.039
0.084 0.066 0.029 0.320 0.012 0.041
0.085 0.076 0.019 0.300 0.010 0.040
0.064 0.072 0.020 0.250 0.028 0.038
0.054 0.065 0.022 0.280 0.021 0.040
0.048 0.089 0.062 0.260 0.038 0.036
0.045 0.092 0.072 0.200 0.035 0.032
0.069 0.087 0.027 0.050 0.089 0.021];
>> group=[1 1 1 1 2 2 1 1 2 2 2 2 2 2 1]';
>> sample=[0.052 0.084 0.021 0.037 0.0071 0.022
0.041 0.055 0.110 0.110 0.0210 0.0073
0.030 0.112 0.072 0.160 0.056 0.021
0.074 0.083 0.105 0.190 0.020 1.000];
>> class = classify(sample,training,group)
class =
1
1
2
2
所以这4个气体样品的污染分类分别为第1类、第1类、第2类和第2类。
注意:对于样本数据的每一种分类,要求其对应的观测案例数(即training的行数)必须大于观测的变量个数(即training的列数)。例如在本例中,变量个数为6,则对应于第1类和第2类的观测案例数必须大于6,否则将出错。