机器学习-周志华-课后习题答案5.5

本文通过编程实现标准BP和累计BP算法,对比在西瓜数据集3.0上的训练效果。结果表明,尽管标准BP算法在达到0.01误差时需要291轮,而累计BP需要1884轮,但标准BP的收敛速度更快。在分类精度上,两者均为2/17的错误率。
摘要由CSDN通过智能技术生成

5.5 试编程实现标准BP算法和累计BP算法,在西瓜数据集3.0上分别用这两个算法训练一个单隐层网络,并进行比较。

通过编程实践发现,在本例下要达到某一限定的均方误差时,标准BP算法比累积BP算法明显收敛更快,特别在本例中,将ABP算法误差设定到0.01时,其更新权重次数十分庞大。

本人采用标准BP算法(隐层10个神经元)获取数据集在误差小于0.01时的各项权重算得其错误率为2/17,训练291轮,更新权重2910次;相应地,用ABP算法(隐层10个神经元)误差小于0.2时的权重系数算得其错误率为2/17,训练1884轮,更新权重1884次。由此可见,虽然ABP可能收敛更慢,但是其分类精度比同等条件下的BP算法要高。

下面附上代码:

# -*- coding: utf-8 -*-
# STANDARD BP-NN & ACCUMULATED BP-NN
import numpy as np

class Data(object):
    def __init__(self, data):
        self.data = np.array(data)
        self.rows = len(self.data[:,0])
        self.cols = len(self.data[0,:])  # it include the column of labels
        self.__eta = 0.1  # initial eta=0.1
        self.__in = self.cols - 1  # number of input neurons
        self.__out = len(np.unique(self.data[:,-1]))  # number of output neurons
    def set_eta(self, n):
        self.__eta = n
    def get_eta(self):
        return self.__eta
    def get_in(self):
        return self.__in
    def get_out(self):
        return self.__out
    def BP_NN(self,q=10,err=0.1):
  
机器学习》是一本由周志华编写的经典教材,而王衡军可能是指这本书的具体某个版本或作者对书中习题的讲解。机器学习是一门研究如何使计算机系统自动改进其性能的学科,通常通过模式识别、数据挖掘和统计分析等方法来实现。 对于《机器学习》练习题答案,一般包括理论题目(如算法原理的理解)、编程实践题(涉及使用Python、R等语言实现模型)以及实战项目。这类资源可能会覆盖书中的各个章节内容,比如线性回归、逻辑回归、决策树、支持向量机、神经网络、深度学习等内容。解答可能涵盖理论解析、代码示例、错误调以及结果解释。 由于具体的练习题库和答案因版本和来源不同会有所差异,你可以尝以下途径找到它们: 1. 在书籍官方网站或作者的个人网站上查找官方提供的习题集和答案。 2. 在在线教育平台上,如Coursera、网易云课堂或者GitHub上有相关的课程资料和论坛讨论,学生或讲师可能会分享解题思路和答案。 3. 访问知名的技术问答社区,如Stack Overflow、CSDN等,有时能找到他人整理的学习笔记或解答。 4. 购买专门针对该教材编写的辅导书籍或视频教程,它们通常会提供详细的问题解答。 如果你想获取具体的问题和答案,请告诉我你需要哪一章的内容,或者列举一些典型问题类型,这样我可以帮助你更好地理解相关概念。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值