首先,载入西瓜数据集,将其分为训练集和测试集。训练集包含10条信息,测试集包含7条信息。 对训练集进行处理,计算出每个属性的先验概率和条件概率。先验概率指的是某一个类别下,该类别出现的概率。条件概率指的是在已知某个属性条件下,该类别出现的概率。 对测试集进行分类。对于每一个测试样本,根据计算出的先验概率和条件概率,计算出该样本属于每个类别的概率,选择概率最大的类别作为预测结果。 计算分类准确率。将预测结果与真实结果比较,统计出分类准确率。 重复步骤2-4,选择不同的属性组合进行实验。例如,可以选择只使用色泽和根蒂两个属性,或者选择全部6个属性。 对实验结果进行分析。比较不同属性组合的分类准确率,找出对分类结果影响较大的属性。根据这个实验步骤生成代码

时间: 2024-03-05 07:48:43 浏览: 16
以下是Python代码实现: ```python import numpy as np # 载入西瓜数据集 data = np.array([ [1, 1, 1, 1, 1, 1, 0.697, 0.46, 1], [2, 1, 2, 1, 1, 1, 0.774, 0.376, 1], [2, 1, 1, 1, 1, 1, 0.634, 0.264, 1], [1, 1, 2, 1, 1, 1, 0.608, 0.318, 1], [3, 1, 1, 1, 1, 1, 0.556, 0.215, 1], [1, 2, 1, 2, 1, 2, 0.403, 0.237, 1], [2, 2, 1, 2, 1, 2, 0.481, 0.149, 1], [2, 2, 1, 1, 1, 1, 0.437, 0.211, 1], [2, 2, 2, 2, 2, 1, 0.666, 0.091, 0], [1, 3, 3, 1, 3, 2, 0.243, 0.267, 0], [3, 3, 3, 3, 3, 1, 0.245, 0.057, 0], [3, 1, 1, 3, 3, 2, 0.343, 0.099, 0], [1, 2, 1, 1, 2, 1, 0.639, 0.161, 0], [3, 2, 2, 2, 2, 1, 0.657, 0.198, 0], [2, 2, 1, 2, 2, 2, 0.36, 0.37, 0], [3, 1, 1, 3, 3, 1, 0.593, 0.042, 0], [1, 1, 2, 2, 2, 1, 0.719, 0.103, 0] ]) # 将数据集分为训练集和测试集 train_data = np.vstack((data[:10], data[11:15])) test_data = np.vstack((data[10], data[15:])) # 计算先验概率和条件概率 prior_prob = {} # 先验概率 cond_prob = {} # 条件概率 for i in range(train_data.shape[1] - 1): attr_values = np.unique(train_data[:, i]) for attr in attr_values: # 计算先验概率 prior_prob[attr] = np.sum(train_data[:, -1] == attr) / train_data.shape[0] # 计算条件概率 for j in range(train_data.shape[1] - 1): key = '{}|{}'.format(j, attr) cond_prob[key] = np.sum((train_data[:, j] == attr) & (train_data[:, -1] == attr)) / np.sum(train_data[:, -1] == attr) # 对测试集进行分类 pred_labels = [] for i in range(test_data.shape[0]): probs = {} for attr in np.unique(train_data[:, -1]): prob = prior_prob[attr] for j in range(test_data.shape[1] - 1): key = '{}|{}'.format(j, test_data[i, j]) prob *= cond_prob.get(key, 0) probs[attr] = prob pred_label = max(probs, key=probs.get) pred_labels.append(pred_label) # 计算分类准确率 accuracy = np.sum(pred_labels == test_data[:, -1]) / test_data.shape[0] print('分类准确率:', accuracy) # 重复步骤2-4,选择不同的属性组合进行实验 # 可以定义一个属性列表,然后使用列表推导式从原始数据集中选取对应的列 attrs = [6, 7] # 只使用色泽和根蒂两个属性 train_data = data[:10, attrs + [-1]] test_data = data[10:, attrs + [-1]] # 计算先验概率和条件概率,进行分类,计算分类准确率 # ... attrs = [0, 1, 2, 3, 4, 5, 6, 7] # 使用全部6个属性 train_data = data[:10, attrs + [-1]] test_data = data[10:, attrs + [-1]] # 计算先验概率和条件概率,进行分类,计算分类准确率 # ... # 对实验结果进行分析,比较不同属性组合的分类准确率,找出对分类结果影响较大的属性 # ...(分析结果需要手动完成,此处代码省略)

相关推荐

最新推荐

recommend-type

pytorch 语义分割-医学图像-脑肿瘤数据集的载入模块

所以需要用到自定义的数据载入,本文参考了一下博客:https://blog.csdn.net/tuiqdymy/article/details/84779716?utm_source=app,一开始是做的眼底图像分割,由于使用的是DRIVE数据集,所以数据量很少,之前也是...
recommend-type

1亿条记录的MongoDB数据库随机查询性能测试

从测试结果看,当mongodb将数据全部载入到内存后,查询速度根据文档的大小,性能瓶颈通常会是在网络流量和CPU的处理性能(该次测试中当数据全部在内存后,纯粹的查询速度可以稳定在10W/S左右,系统load可以维持在1...
recommend-type

Android开发资料合集-World版!

4.6.10、BaseExpandableListAdapter例 88 4.6.11、列表视图(List View) 96 4.6.12、NoteList 99 4.7、TAB与TABHOST 106 4.8、RATINGBAR 110 4.8.1、例一 110 4.8.2、例二 112 4.9、DATE/TIME SET 115 4.9.1、...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

解释minorization-maximization (MM) algorithm,并给出matlab代码编写的例子

Minorization-maximization (MM) algorithm是一种常用的优化算法,用于求解非凸问题或含有约束的优化问题。该算法的基本思想是通过构造一个凸下界函数来逼近原问题,然后通过求解凸下界函数的最优解来逼近原问题的最优解。具体步骤如下: 1. 初始化参数 $\theta_0$,设 $k=0$; 2. 构造一个凸下界函数 $Q(\theta|\theta_k)$,使其满足 $Q(\theta_k|\theta_k)=f(\theta_k)$; 3. 求解 $Q(\theta|\theta_k)$ 的最优值 $\theta_{k+1}=\arg\min_\theta Q(
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。
recommend-type

"互动学习:行动中的多样性与论文攻读经历"

多样性她- 事实上SCI NCES你的时间表ECOLEDO C Tora SC和NCESPOUR l’Ingén学习互动,互动学习以行动为中心的强化学习学会互动,互动学习,以行动为中心的强化学习计算机科学博士论文于2021年9月28日在Villeneuve d'Asq公开支持马修·瑟林评审团主席法布里斯·勒菲弗尔阿维尼翁大学教授论文指导奥利维尔·皮耶昆谷歌研究教授:智囊团论文联合主任菲利普·普雷教授,大学。里尔/CRISTAL/因里亚报告员奥利维耶·西格德索邦大学报告员卢多维奇·德诺耶教授,Facebook /索邦大学审查员越南圣迈IMT Atlantic高级讲师邀请弗洛里安·斯特鲁布博士,Deepmind对于那些及时看到自己错误的人...3谢谢你首先,我要感谢我的两位博士生导师Olivier和Philippe。奥利维尔,"站在巨人的肩膀上"这句话对你来说完全有意义了。从科学上讲,你知道在这篇论文的(许多)错误中,你是我可以依
recommend-type

实现实时监控告警系统:Kafka与Grafana整合

![实现实时监控告警系统:Kafka与Grafana整合](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X2pwZy9BVldpY3ladXVDbEZpY1pLWmw2bUVaWXFUcEdLT1VDdkxRSmQxZXB5R1lxaWNlUjA2c0hFek5Qc3FyRktudFF1VDMxQVl3QTRXV2lhSWFRMEFRc0I1cW1ZOGcvNjQw?x-oss-process=image/format,png) # 1.1 Kafka集群架构 Kafka集群由多个称为代理的服务器组成,这