table {
border-collapse: collapse;
width: 100%;
margin-bottom: 1rem;
}
th, td {
border: 1px solid #ddd;
padding: 8px;
text-align: left;
}
th {
background-color: #f2f2f2;
}
tr:nth-child(even) {
background-color: #f9f9f9;
}
pre {
background-color: #f8f8f8;
padding: 15px;
border-radius: 4px;
overflow-x: auto;
}
35、写出线性分类器的方程来实现以下功能:1. 布尔属性x1, …, x5中至少有两个为真;2. 布尔属性x1, …, x6中至少有三个为真,且其中至少有一个为假。
对于“布尔属性x1, …, x5中至少有两个为真”,方程为
x1+x2+x3+x4+x5≥2×1+x2+x3+x4+x5≥2
对于“布尔属性x1, …, x6中至少有三个为真,且其中至少有一个为假”,可拆分为两个条件:
至少三个为真,方程为
x1+x2+x3+x4+x5+x6≥3×1+x2+x3+x4+x5+x6≥3
至少有一个为假,方程为
x1+x2+x3+x4+x5+x6≤5×1+x2+x3+x4+x5+x6≤5
综合起来就是
3≤x1+x2+x3+x4+x5+x6≤53≤x1+x2+x3+x4+x5+x6≤5
36、手动模拟感知机学习算法的过程,从一个初始权重集开始,也尝试使用不同的学习率。
下面是给定的【文本内容】:
假设新的初始权重,如 $ w_0 = 0.2 $、$ w_1 = 0.4 $、$ w_2 = 0.5 $,新的学习率 $ alpha = 0.3 $。对于每个训练示例 $ mathbf{x} = (x_1, x_2) $ 及其类别 $ c(mathbf{x}) $:
若 $ sum_{i=0}^{n} w_i x_i > 0 $,令 $ h(mathbf{x}) = 1 $;否则 $ h(mathbf{x}) = 0 $。
使用公式 $ w_i = w_i + alpha [c(mathbf{x}) – h(mathbf{x})] cdot x_i $ 更新每个权重。
若所有训练示例都满足 $ c(mathbf{x}) = h(mathbf{x}) $,则停止;否则返回步骤 2。
37、再次进行相同的练习,这次使用 WINNOW 算法。不要忘记为感知机中负权重对应的部分引入额外的“属性”。
结合之前练习的具体要求和数据,按照
WINNOW 算法
的权重更新机制进行操作,对于感知机中负权重问题,用一对“新”属性表示原属性来处理。
38、在独立测试示例中,线性分类器何时可能比多项式分类器具有更好的分类性能?
一般来说,当数据的类边界是线性可分,或者数据维度较低、样本数量较少且噪声较小时,线性分类器可能表现更好;而多项式分类器在处理非线性可分数据时更有优势,但容易出现过拟合问题,当数据存在过拟合风险时,线性分类器可能更合适。
39、创建一个由20个示例组成的训练集,每个示例由五个二元属性x1, …, x5描述。若一个示例中至少有三个属性的值xi = 1,则将其标记为正例,其他示例标记为负例。以这个训练集作为输入,使用感知机学习算法诱导一个线性分类器。对不同的学习率α进行实验。绘制一个函数图,横轴表示α,纵轴表示分类器正确分类所有训练示例所需的示例呈现次数。讨论实验结果。
实验要求
按照题目要求进行实验操作
创建训练集
使用感知机学习算法诱导线性分类器
改变学习率 α 进行实验
绘制函数图
对结果进行讨论
40、像手动模拟误差反向传播那样,针对以下两种情况重复计算:高输出层权重:w(1)11 = 3.0;w(1)12 = -3.0;w(1)21 = 3.0;w(1)22 = 3.0;低输出层权重:w(1)11 = 0.3;w(1)12 = -0.3;w(1)21 = 0.3;w(1)22 = 0.3。观察每种情况下权重的相对变化。
需根据误差反向传播的原理和方法,结合给定的高、低输出层权重值进行手动模拟计算,并观察权重的相对变化。
41、与多层感知器相比,比较径向基函数网络的优缺点。
多层感知器与径向基函数网络的比较
多层感知器的局限性
多层感知器使用误差反向传播算法存在以下问题:
计算成本高
存在局部极小值
过拟合风险
难以确定隐藏层大小
径向基函数网络的特点
径向基函数网络具有以下特性:
使用高斯函数作为隐藏层神经元的传递函数
输出层神经元可使用阶跃函数或线性函数
每个高斯中心对应一个训练示例
可随机选择示例
仅需训练一层权重
可应用支持向量机思想,形成基于径向基函数的支持向量机
优点
计算相对简单
训练权重层少
缺点
对训练示例的选择依赖较大
42、编写一个程序,为预定义数量的输出神经元和隐藏神经元实现误差反向传播。使用固定的学习率α。
程序编写步骤
可按以下步骤编写程序:
定义神经网络结构
,包含输入层、预定义数量的隐藏层和输出层。
初始化网络权重
。
前向传播
:将输入数据传入网络,计算各层输出。
计算误差
:将网络输出与目标输出对比计算误差。
反向传播
:根据误差计算各神经元责任,并更新权重。
重复步骤3 – 5,直到满足终止条件。
在实现中使用固定学习率α更新权重。
43、对于给定的数据集,在多层感知机中试验不同数量的隐藏神经元,并观察它们如何影响网络的学习能力。
一般而言,隐藏神经元数量过少,网络缺乏足够灵活性,易陷入局部最小值,导致学习能力受限,测试集误差率高;隐藏神经元数量过多,网络易过拟合,虽然在训练集表现好,但在测试集误差率会升高。合适的隐藏神经元数量取决于训练数据的复杂度,有时仅 3 – 5 个神经元就能使误差率最小,而在其他情况下可能需要数百个。
44、再次对不同数量的隐藏神经元进行实验。这次,关注计算成本。网络收敛需要多少个训练周期?同时观察错误率的变化情况。
需进行实验,对不同数量隐藏神经元的网络进行训练,记录网络收敛所需的训练周期,并观察错误率的变化情况。
45、用于评估决策树的基线性能标准是错误率和树的大小(节点数量)。然而,这些标准在某些领域可能并不适用。请举例说明在哪些应用中,决策树的大小或错误率可能不那么重要。提示:考虑错误决策的成本和获取属性值的成本。
在一些对实时性要求极高的场景,如
高频交易
、
自动驾驶的实时决策
等,决策树的大小可能不那么重要,因为需要在极短时间内做出决策,即便树大一些只要能满足速度需求就行;
在一些对结果容错性较高、且获取属性值成本极高的领域,如
深海勘探
、
深空探测
等,错误率可能相对不那么重要,为了节省获取属性值的巨大成本,可以接受一定的错误率。
46、在哪些领域特征下,决策树明显优于基线1 – NN分类器?提示:考虑噪声、无关属性或训练集大小等特征,然后判断它们对分类器行为可能产生的影响。
一般来说,当数据存在噪声时,决策树有一定的抗干扰能力,而1 – NN分类器易受噪声影响;存在无关属性时,决策树能较好地筛选出重要属性,1 – NN分类器受无关属性影响较大;训练集规模较大时,决策树的训练和分类效率可能更高,而1 – NN分类器在大规模数据下计算量会显著增加。
47、在哪类数据上线性分类器可能比决策树表现更好?请给出至少两个此类数据的特征。
一般来说,线性可分的数据、特征之间具有较强线性关系的数据,线性分类器可能比决策树表现更好。
48、再次考虑所有属性都是布尔型,且分类器为属性值的合取形式的情况。如果合取式只允许恰好包含三个属性,那么假设空间的大小是多少?例如,以下是该类中的一个合取式:att1 = true AND attr2 = false AND att3 = false
若有 $ n $ 个布尔属性,从 $ n $ 中选 3 个属性的组合数为:
C3n=n!3!(n−3)!Cn3=n!3!(n−3)!
每个属性有 2 种取值(真或假),则假设空间大小为:
C3n×23=n!3!(n−3)!×8Cn3×23=n!3!(n−3)!×8
49、过去,一些机器学习科学家考虑通过一种叫做离散化的过程将连续属性转换为离散属性。他们的意思是将属性值的范围划分为区间,每个区间被视为一个布尔属性(给定的数值要么在给定区间内,要么不在)。假设你正在考虑两种划分区间 [0, 100] 的方法。第一种是划分为两个子区间,[0, 50] 和 [51, 100];第二种是划分为十个等大小的子区间,即 [0, 10];… [91, 100]。从概率近似正确(PAC)可学习性的角度讨论这两种选择的优缺点。
两个子区间的划分优点是简单、计算成本低,缺点是信息损失可能较大,模型复杂度低,可能欠拟合;十个等大小子区间的划分优点是能保留更多信息,模型复杂度高,拟合能力强,缺点是计算成本高,可能过拟合。
50、讨论应用领域用户可能不愿意接受机器学习工具的原因。提出消除或至少减少他们疑虑和担忧的方法。
用户可能因以下原因不愿接受:
对技术不了解
担心数据安全隐私
习惯传统方法
可通过以下方式消除或减少其疑虑:
提供培训
展示成功案例
保障数据安全
51、在某些领域中,有必要减少无关和/或冗余属性的数量。在一些项目中使用了决策树。请提出另一种可用于减少无关和/或冗余属性数量的技术,并讨论其优缺点。
可考虑使用主成分分析(PCA)。
优点
:
可降低数据维度
减少计算量
去除数据中的噪声
找到数据的主要特征方向
缺点
:
会丢失部分原始信息
解释性相对较差
难以明确每个主成分对应的实际意义
52、假设Adaboost算法中已知训练示例的概率,据此创建了训练子集Ti,并从Ti中诱导出分类器Ci。假设Ci随后将示例x2和x9误分类。展示如何重新计算所有训练示例的概率,然后对这些概率进行归一化。
计算步骤
计算第i个分类器的整体误差 $ varepsilon_i $,即误分类示例概率的加权和。
计算 $ eta_i = frac{varepsilon_i}{1 – varepsilon_i} $。
对于被 $ C_i $ 正确分类的示例,其概率更新为
pi+1(xj)=pi(xj)⋅βipi+1(xj)=pi(xj)⋅βi
对更新后的概率进行归一化,即每个概率除以所有概率之和,确保概率总和为1。
53、实现Adaboost的基本算法。投票分类器的数量由用户设定的常量确定。另一个用户设定的常量指定每个训练集Ti中的示例数量。各个分类器的权重借助感知器学习来获取。
以下是实现该算法的大致步骤:
初始化训练数据的权重,每个样本的初始权重相等。
循环生成指定数量的分类器:
– 根据当前样本权重,从训练数据中随机抽取指定数量的样本组成训练集
Ti
。
– 使用感知器学习算法训练分类器
Ci
,并得到其权重。
– 计算分类器
Ci
的误差率。
– 根据误差率更新样本的权重,增加被错误分类样本的权重,减少被正确分类样本的权重。
– 对样本权重进行归一化处理。
对新样本进行分类时,使用加权多数投票法,根据各个分类器的权重进行投票,得到最终分类结果。
在Python中,可以使用
scikit-learn
库中的
AdaBoostClassifier
类来实现Adaboost算法,不过要结合感知器学习获取分类器权重,需要自定义部分代码。
54、为不同的基础学习算法和不同类型的主分类器实现堆叠算法。将实现的程序应用于一些基准领域,并观察其行为。
若要完成此任务,可按以下通用步骤进行:
实现堆叠算法,根据不同基础学习算法训练基础分类器,使用基础分类器的输出训练主分类器;
从UCI等资源库选取基准领域数据集;
将实现的程序应用于数据集,观察不同数据集上程序的性能表现,如准确率、误差率等随基础分类器数量或其他参数的变化情况。
55、已知提升算法对基于方差的误差具有相对较强的鲁棒性。请解释原因。此外,有一种非同质提升算法能减少基于偏差的误差。请给出解释。
非同质提升算法减少基于偏差的误差的原因在于:
不同的机器学习技术具有不同的偏差。
通过使用不同的机器学习技术来诱导每个分类器,非同质提升算法可以综合利用这些不同的偏差,从而减少整体的偏差相关误差。
56、假设要在一个不平衡的两类领域中使用贝叶斯分类器,其中一个类的示例数量远远超过另一个类。这个分类器会像最近邻方法一样对这种情况敏感吗?请用具体论据支持你的答案。并提出一个实验验证方法。
贝叶斯分类器与最近邻方法对不平衡数据集的敏感度对比
贝叶斯分类器和最近邻方法对不平衡数据集的敏感度不同。
贝叶斯分类器
贝叶斯分类器基于概率模型,在学习类先验概率时会受到样本不平衡的影响,可能导致对少数类的预测性能较差。
最近邻方法
最近邻方法基于距离度量,更关注局部信息。在不平衡数据集中,多数类样本可能主导最近邻,也会影响对少数类的分类。
实验验证方法
将数据集按照不同比例划分多数类和少数类样本
分别用贝叶斯分类器和最近邻方法进行训练和测试
记录不同比例下两类分类器对少数类的准确率、召回率等指标
对比分析敏感度
57、假设对一种机器学习技术使用五折交叉验证进行评估,在测试集上得到以下错误率:E11 = 0.14;E12 = 0.16;E13 = 0.10;E14 = 0.15;E15 = 0.18;E21 = 0.17;E22 = 0.15;E23 = 0.12;E24 = 0.13;E25 = 0.20。计算错误率的平均值和标准差σ(标准差是方差σ²的平方根)。
计算步骤如下:
先将所有错误率相加。
再除以错误率的数量得到平均值。
根据方差公式计算方差。
最后取方差的平方根得到标准差。
58、假设某个机器学习实验得到一个表格,其中每行代表一个测试示例。第一列包含示例的真实类别标签(正例用“1”表示,负例用“0”表示),第二列包含分类器给出的预测标签。编写一个程序,计算精确率、召回率以及用户指定的β值对应的Fβ值。再编写一个程序,计算其他性能指标的值。
性能指标计算方案
可以按照以下思路编写程序:
首先读取表格数据
根据以下公式编写计算程序:
– 精确率计算
– 召回率计算
– Fβ值计算
公式说明
精确率(Precision)
:
$ ext{Precision} = frac{TP}{TP + FP} $
召回率(Recall)
:
$ ext{Recall} = frac{TP}{TP + FN} $
Fβ值(Fβ Score)
:
$ F_eta = (1 + eta^2) cdot frac{ ext{Precision} cdot ext{Recall}}{eta^2 cdot ext{Precision} + ext{Recall}} $
其中:
– TP(True Positive):真正例
– FP(False Positive):假正例
– FN(False Negative):假反例
其他性能指标
对于其他需要计算的性能指标,应首先明确其数学计算公式,然后根据公式编写对应的程序代码。
59、假设训练集是一个矩阵形式,每行代表一个示例,每列代表一个属性,最右边一列包含类别标签。编写一个程序,按照 5×2 交叉验证技术的要求,将该训练集随机划分为五对大小相等的子集。再编写另一个程序,以分层的方式创建子集,使得每个子集各类别的表示大致相同。
可使用 Python 结合相关库(如 scikit-learn)实现。随机划分可使用
train_test_split
函数,分层划分可设置
stratify
参数为类别标签。
示例代码:
随机划分:
from sklearn.model_selection import train_test_split
subsets = []
for _ in range(5):
train, test = train_test_split(X, y, test_size = 0.5)
subsets.append((train, test))
分层划分:
from sklearn.model_selection import StratifiedShuffleSplit
sss = StratifiedShuffleSplit(n_splits = 5, test_size = 0.5)
for train_index, test_index in sss.split(X, y):
train = X[train_index]
test = X[test_index]
subsets.append((train, test))
其中
X
是特征矩阵,
y
是类别标签。
60、编写一个程序,该程序接受两个输入:(1)多标签测试示例的一组类别标签,(2)多标签分类器为这些示例分配的标签。输出包括精度和召回率的微平均和宏平均的值。
对于输入的多标签测试示例的类别标签和分类器分配的标签,先分别计算每个类别的真阳性(NTP)、真阴性(NTN)、假阳性(NFP)和假阴性(NFN)。
根据宏平均的公式计算宏平均精度(PrM)、宏平均召回率(ReM):
–
PrM = 1/L * ∑(i = 1 to L) pri
,其中 pri 是第 i 个类别的精度。
–
ReM = 1/L * ∑(i = 1 to L) rei
,其中 rei 是第 i 个类别的召回率。
根据微平均的公式计算微平均精度(Pr*)、微平均召回率(Re*):
–
Pr* = ∑(i = 1 to L) NTPi / ∑(i = 1 to L) (NTPi + NFPi)
–
Re* = ∑(i = 1 to L) NTPi / ∑(i = 1 to L) (NTPi + NFNi)
最后将宏平均和微平均的精度、召回率作为输出。可使用 Python 等编程语言,利用循环和数组等数据结构实现上述计算过程。
61、编写一个计算机程序,它接受一个训练集作为输入,并输出用于N折交叉验证的N个子集。确保采用分层方法。如果之后决定使用5×2交叉验证而不是普通的N折交叉验证,程序需要如何修改?
N折交叉验证是将训练集分成N个大小相等的子集,每次用N - 1个子集训练,1个子集测试;分层方法是确保每个子集各类别样本的比例大致相同。5×2交叉验证是将预分类示例集随机分成两个大小相等的部分,进行两次训练和测试,此过程重复5次。若要编写程序,需根据这些原理实现代码;若从N折交叉验证改为5×2交叉验证,程序需修改子集划分和训练测试逻辑。
62、为包含以下四个类别(决策树、机器学习、分类、剪枝)的领域提出分类器链模式。
分类器链模式
分类器链模式是将多个二分类器按顺序连接起来,一个分类器的输出作为下一个分类器的输入。
对于这四个类别,可以按照一定逻辑顺序构建分类器链,例如:
先判断是否属于机器学习;
若属于机器学习,再判断是否属于分类;
接着判断是否属于决策树;
最后判断是否涉及剪枝。
但具体的顺序需要根据实际的领域和数据特点来确定。
63、请给出一个适合采用分类器链原则的多标签领域示例。这类数据的主要要求是什么?
适合分类器链原则的多标签领域如电影分类,一部电影可同时属于动作、科幻、冒险等类别。数据主要要求是类标签间存在一定顺序或依赖关系,以便构建分类器链。
64、尝试发明一种机器学习算法,该算法首先使用某种聚类分析技术对训练示例进行预处理,然后将其用于分类目的。
以下是一种可能的算法设计思路:
数据收集
:收集相关的训练数据集,确保数据集中包含特征和对应的类别标签。
聚类分析预处理
:选择合适的聚类算法(如K-Means、DBSCAN等)对训练数据进行聚类。计算每个数据点与聚类中心的距离,将数据点分配到最近的聚类中。
特征提取与转换
:为每个聚类提取特征,例如计算聚类的均值、方差等统计特征。可以对特征进行归一化或标准化处理,以提高后续分类的效果。
分类器训练
:选择合适的分类算法(如决策树、支持向量机、神经网络等)。使用经过聚类预处理后的训练数据来训练分类器。
模型评估
:使用测试数据集评估分类器的性能,计算准确率、召回率、F1值等指标。
优化与调整
:根据评估结果,调整聚类算法的参数(如聚类的数量)和分类器的参数,以提高模型的性能。
65、手动模拟顺序覆盖算法,忽略信息增益,若从“crust – shade = gray”开始,说明第一条规则是如何创建的。
从“crust – shade = gray”开始创建规则时,先形成初始规则:
初始规则
:
if (crust - shade = gray) then pos
检查该规则若覆盖了负例,就向规则前件添加条件,不断重复此步骤,直到规则不覆盖任何负例为止。
66、思考一些适合用递归定义的类的例子
例子有:
阶乘函数,n 的阶乘(n!)定义为
$ n! = n imes (n – 1)! $,
当 $ n = 0 $ 时,$ 0! = 1 $;
斐波那契数列,
$ F(n) = F(n – 1) + F(n – 2) $,
其中 $ F(0) = 0 $,$ F(1) = 1 $。
67、编写一个程序,将顺序覆盖算法应用于用谓词演算描述的示例。
实现顺序覆盖算法与谓词演算的原理及应用
顺序覆盖算法和谓词演算的实现需结合具体的编程语言(如 C++、Java 等)进行。以下是其核心步骤与要点:
顺序覆盖算法步骤
创建空规则集
算法开始时,规则集为空。
检查训练集
当训练集中至少包含一个正例时,继续执行以下步骤。
创建规则
根据当前训练集中的示例生成一个新的规则。
移除满足规则前件的示例
从训练集中移除所有满足当前生成规则前件的示例。
将规则添加到规则集
将生成的规则加入规则集中。
重复执行
重复上述步骤,直到训练集中不再包含正例为止。
单个规则的生成过程
从初始规则开始
规则初始状态为空或默认条件。
判断是否覆盖负例
如果当前规则不覆盖任何负例,则规则生成过程停止。
添加条件
如果当前规则仍覆盖负例,则继续向规则前件中添加新的条件,以提高其准确性。
谓词演算的表示与处理
在处理由谓词演算描述的示例时,还需考虑以下问题:
谓词的表示方式
需要设计合适的数据结构来表示谓词,例如使用类、结构体或特定的谓词字符串格式。
谓词的匹配与处理
实现谓词匹配机制,以便在规则生成过程中判断示例是否满足规则前件。
结合算法流程
将谓词演算的处理逻辑嵌入到顺序覆盖算法中,确保规则能够正确地覆盖正例并排除负例。
68、手动模拟遗传算法。自行选择适应度函数、不同的初始种群,并确定单点交叉的随机点。先以类似于表的方式用铅笔和纸进行单点交叉的模拟,然后使用两点交叉重复该练习。
需自行选择适应度函数、初始种群
确定随机交叉点进行手动模拟
先进行单点交叉模拟
再进行两点交叉模拟
69、确定适合遗传算法的具体工程问题。说明哪些问题中染色体最好用二进制或数字字符串表示,哪些问题中树结构更合适。
用二进制或数字字符串表示染色体适合的工程问题有:
电路设计
:如优化电路中元件的连接状态可用二进制表示
参数优化问题
:如优化机械系统的多个参数可用数字字符串
树结构更合适的问题有:
程序自动生成
:如生成代码的语法树
决策树优化
:如优化决策树的结构
70、列举自然进化与其计算机模型之间的一些差异。推测是否可以从自然界获得更多灵感。你认为与生物进化相比,计算机程序的优势在哪里?
自然进化与计算机模型的差异与启示
自然进化和其计算机模型差异在于:
自然进化
基于生物实体
受多种复杂自然因素影响
进程缓慢且随机
计算机模型
基于代码和算法
可快速模拟
过程可控
可以从自然界获得更多灵感,自然界生物进化的
多样性和适应性机制
可为计算机模型优化提供思路。
计算机程序的优势
在于:
可快速迭代
精确控制变量
模拟极端情况等
71、本章围绕使用 ε -贪心策略的理念展开。你认为该策略有哪些局限性?你能提出如何克服这些局限性吗?
贪心策略的局限性与克服方法
贪心策略的局限性可能包括:
探索与利用的平衡难以把握:
固定的 ε 值可能导致前期探索不足或后期过度探索;
在复杂环境中收敛速度慢。
克服方法可以包括:
采用自适应的 ε 值:
如随着时间或迭代次数的增加逐渐减小 ε;
结合其他探索策略:
如玻尔兹曼探索等。
72、强化学习的原理通常可通过一些简单的玩具领域来解释。请举例说明一个有趣的现实世界中强化学习的应用,并阐述将该具体问题转化为强化学习形式的主要困难。
强化学习在自动驾驶、游戏、机器人控制、资源管理等领域有应用。将具体问题转化为强化学习形式的困难在于定义状态、动作、奖励函数等要素。
例如在自动驾驶中:
状态
:可能是车辆的位置、速度等
动作
:可能是加速、减速、转弯等
奖励函数
:需要根据安全、效率等因素来设计
73、编写一个计算机程序,实现N臂老虎机问题。
以下是一个简单的Python示例代码用于实现N臂老虎机问题:
import numpy as np
class NArmedBandit:
def __init__(self, n):
self.n = n
self.true_rewards = np.random.normal(0, 1, n)
self.estimated_rewards = np.zeros(n)
self.action_counts = np.zeros(n)
def pull_arm(self, action):
reward = np.random.normal(self.true_rewards[action], 1)
self.action_counts[action] += 1
self.estimated_rewards[action] += (reward - self.estimated_rewards[action]) / self.action_counts[action]
return reward
def choose_action(self, epsilon):
if np.random.uniform(0, 1) < epsilon:
return np.random.choice(self.n)
else:
return np.argmax(self.estimated_rewards)
# 示例使用
n = 5 # N臂老虎机的臂数
bandit = NArmedBandit(n)
epsilon = 0.1
num_steps = 1000
for step in range(num_steps):
action = bandit.choose_action(epsilon)
reward = bandit.pull_arm(action)
print(f'Step {step + 1}: Action {action}, Reward {reward}')
这段代码实现了一个简单的N臂老虎机问题,使用ε-贪心策略来选择动作。
74、思考与N折交叉验证相比,随机子抽样的潜在优点和缺点。
随机子抽样
优点
– 操作简单
– 速度快
缺点
– 测试集有重叠,不利于某些统计评估
– 在处理类别不平衡数据时,可能导致各子集类别分布差异大