习题2.34

这个题目,我真的费了好多时间,总结起来,就是对公式理解不到,好不容易理解了公式,又出现计算结果有偏差的情况,反复思考折腾代码,都毫无结果。于是先写了一版自己理解的公式,按照自己的思路写,结果无误,但是无法按照题目要求改造好。先看看这版代码。

(defn horner [x coefficient-sequence]
(defn ttt[x y]
  (cond (empty? y) 0
    :else (* x (+ (ttt x (rest y)) (first y) ))
    ))
(+ (ttt x (rest coefficient-sequence)) (first coefficient-sequence))
)

很典型的实现逻辑 没有什么复杂的技巧,之所以要定义内部函数,是因为我理解的公式,a0需要特殊处理。再看看另外一个版本,跟题目要求很接近。

;;(+ 1 (horner 2 (list  3 0 5 0 1))) 计算结果正确版本
(defn horner [x coefficient-sequence
### 周志华《机器学习》第二章课后习题答案 #### 2.10 Friedman检验中使用式(2.34) 和 (2.35) 的区别 Friedman检验是一种非参数统计方法,适用于多组相关样本之间的差异分析。当处理多个模型在同一测试集上的性能评估时尤为有用。 - **式(2.34)** 主要用于计算各算法排名的平均值及其方差,从而构建出一个衡量不同算法之间相对表现的标准。具体来说,该公式帮助量化每种算法在整个实验中的总体表现位置[^3]。 - **式(2.35)** 则进一步利用上述得到的信息来决定是否存在显著性的差别。通过引入临界值的概念,可以据此判断所观察到的表现差距是否超出了随机波动所能解释的程度之外。如果实际计算所得的结果超过了设定好的阈值,则说明至少有两个被比较的对象间确实存在明显不同的效果。 为了更直观理解这两个公式的应用过程以及它们各自的作用: ```python import numpy as np from scipy.stats import friedmanchisquare # 示例数据:假设有三个分类器A、B、C分别在五个数据集上进行了测试 data = [ [87, 92, 85], # 数据集1上的准确率 [89, 90, 88], [91, 93, 86], [88, 91, 87], [90, 94, 89] ] chi_statistic, p_value = friedmanchisquare(*np.array(data).T) print(f"Chi-square statistic: {chi_statistic}") print(f"P-value: {p_value}") if p_value < 0.05: print("At least two classifiers have significantly different performances.") else: print("No significant difference among classifier performances.") ``` 这段Python代码展示了如何运用SciPy库执行Friedman检验,并依据返回的卡方统计量和P值做出结论。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值