作者:欧新宇(Xinyu OU)
当前版本:Release v1.0
开发平台:Python3.11
运行环境:Intel Core i7-7700K CPU 4.2GHz, nVidia GeForce GTX 1080 Ti
本教案所涉及的数据集仅用于教学和交流使用,请勿用作商用。
最后更新:2024年3月5日
判别模型、多层感知机、LDA、马氏距离、欧氏距离、朴素贝叶斯
使用word文档或Markdown文档进行作答,使用Python编写程序,最终结果合并为一个word文档或Markdown文档,并另存为PDF格式进行提交。
注意:可以使用手机拍照文档进行提交,但请不要使用word文档直接进行提交。
[习题11.5-P354] 求下列方程组的符号解和数值解:
已知19个鸢尾花的分类数据如表11.5所示,试使用至少两种算法构建判别模型,并对3个未知样本进行分类判别。此外,要求使用回代误判率和交叉验证误判率对模型进行评估。
表11.5 鸢尾花样本数据
序号 | 花长(cm) | 花宽(cm) | 花瓣长(cm) | 花瓣宽(cm) | 类别 |
---|---|---|---|---|---|
1 | 5 | 3.3 | 1.4 | 2 | 1 |
2 | 6.7 | 3.1 | 5.6 | 2.4 | 3 |
3 | 8.9 | 3.1 | 5.1 | 2.3 | 3 |
4 | 4.6 | 3.6 | 1 | 2 | 1 |
5 | 6.5 | 3 | 5.2 | 2 | 3 |
6 | 5.8 | 2.7 | 5.1 | 1.9 | 3 |
7 | 5.7 | 2.8 | 4.5 | 1.3 | 2 |
8 | 6.6 | 3.3 | 4.7 | 1.6 | 2 |
9 | 4.9 | 2.5 | 4.5 | 1.7 | 3 |
10 | 7 | 3.2 | 4.7 | 1.4 | 2 |
11 | 4.8 | 3.1 | 1.6 | 2 | 1 |
12 | 6.3 | 2.5 | 5 | 19 | 3 |
13 | 4.9 | 3.6 | 1.4 | 1 | 1 |
14 | 4.4 | 3.2 | 1.3 | 2 | 1 |
15 | 5.8 | 2.6 | 4 | 1.2 | 2 |
16 | 6.3 | 2.7 | 4.9 | 1.8 | 3 |
17 | 5 | 2.3 | 3.3 | 1 | 2 |
18 | 5.1 | 3.8 | 1.6 | 2 | 1 |
19 | 5 | 3 | 1.6 | 2 | 1 |
20 | 5 | 3 | 1.6 | 2 | 1 |
21 | 6.4 | 2.8 | 5.6 | 2.1 | 待判定 |
22 | 5.1 | 3.8 | 1.9 | 4 | 待判定 |
23 | 4.9 | 3.0 | 1.4 | 3 | 待判定 |
建议使用Python编程实现,可以考虑直接使用sklearn库实现相关功能。
备注:
(1)为便于数据处理,建议先将数据存入xlsx文件中,再使用Python读取数据。注意数据读取时,可以使用numpy数组进行切片,并将数据载入为x_train, y_train, x_test三个数据子集。
(2)本例给出基于欧氏距离的KNN,基于马氏距离的KNN,三层神经网络,基于LDA的判别模型,基于朴素贝叶斯的多分类模型。
(3)此外给出回代误判率和交叉验证误判率进行模型对比。