机器学习(周志华)第一章作业

本文探讨了在特定属性和取值条件下,如何计算版本空间中假设的数量。通过实例分析,详细解释了当数据集拥有多种属性及相应取值时,版本空间中可能存在的假设数目。同时,讨论了在不同属性组合下,假设数量的变化规律。

1.1

数据集1,4共有三种属性,每个属性共有2种取值,则可知共有3*3*3+1=28种假设。

设A=色泽,B=根蒂,C=敲声;X=青绿,Y=蜷缩,Z=浊响

则版本空间为:

A=X, B=Y, C=*;

A=X, B=*, C=Z;

A=*, B=Y, C=Z;

A=X, B=*, C=*;

A=*, B=Y, C=*;

A=*, B=*, C=Z;

A=*, B=*, C=*;

一般情况下版本空间是正例的泛化。

1.2

共有3*4*4+1=49种假设,所以k的最大取值为49。首先不考虑冗余的情况下,若使用最多包含k个合取式的析合范式,共有2^49种假设。消除冗余暂时不会。

### 周志华机器学习》第四章内容概述 周志华编著的《机器学习》第四章主要聚焦于决策树这一重要的监督学习方法[^3]。该章节深入探讨了决策树的学习过程及其应用,具体涵盖了以下几个方面: #### 1. 决策树简介 介绍了决策树作为一种基本分类工具的概念和发展历史。 #### 2. 划分选择标准 讨论了几种不同的划分选择标准,包括但不限于: - **ID3算法** 使用信息增益作为衡量指标来决定如何分割数据集;然而这种方法倾向于选择具有更多取值可能性的特征。 - **C4.5算法** 改进了这一点,采用信息增益率代替简单的信息增益,从而更公平地对待不同数量级别的离散变量。 - **CART (Classification And Regression Trees)** 方法,则基于基尼系数来进行节点分裂的选择。 ```python def calculate_information_gain(data, feature): # 计算给定数据集的信息熵 entropy_before_split = compute_entropy(data) weighted_entropies_after_split = [] for value in set([row[feature] for row in data]): subset = [row for row in data if row[feature] == value] probability_of_value = len(subset)/len(data) entropy_for_subset = compute_entropy(subset) weighted_entropies_after_split.append(probability_of_value * entropy_for_subset) information_gain = entropy_before_split - sum(weighted_entropies_after_split) return information_gain def choose_best_feature_to_split(data): best_info_gain = -1 best_feature_index = None num_features = len(data[0]) - 1 # 减去标签列 for i in range(num_features): info_gain = calculate_information_gain(data, i) if(info_gain > best_info_gain): best_info_gain = info_gain best_feature_index = i return best_feature_index ``` #### 3. 过拟合处理 解释了过拟合现象以及通过剪枝等方式减少这种风险的方法和技术细节。 #### 4. 实践案例分析 提供了多个实际应用场景中的例子,并指导读者理解如何构建有效的决策树模型。 对于希望进一步了解或获取更多关于此主题资料的朋友来说,《机器学习》这本书本身就是一个非常好的起点。此外,在线平台上也有许多开源项目和教程可以帮助加深理解和实践操作技能[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值