python矩阵类&极限学习机

极限学习机实验

一、实验要求

1. 掌握神经元网络中的几种常见的激活函数
2. 掌握矩阵的常见操作,并能用程序实现。
3. 掌握最小二乘法,并能用程序实现。
4. 通过激活函数、矩阵操作、最小二乘法实现极限学习机,能够对任意变量数量的数据集进行训练,确定网络结构中的参数,并能够利用获得的确定网络进行预测。

二、矩阵类

我跟着这个python的矩阵类实现写的自己的矩阵类。
链接中的矩阵类使用的是二维数组,然而无法直接赋值整个矩阵,只能进行单行赋值。
因此我使用的是一维数组,初始化时矩阵可以直接通过list、tuple等直接整体赋值

class MyMatrix(object):

    def __init__(self, row, column, value = 0):
        self.row = row
        self.column = column
        if value == 0:
            self._matrix = [0.0 for i in range(row * column)]
        else:
        	assert len(value) == row * column, '赋值数量不匹配'
            self._matrix = list(value)

通过python的特殊函数实现了加、乘、获取元素、赋值和输出功能。

    # return m[i],返回矩阵第i行元素(list)
    # return m[i, j],返回矩阵第i行第j行的元素
    def __getitem__(self, index):
        if isinstance(index, int):
            assert index <= self.row, str(index) + ' ' + str(self.row) + ' index超了'
            row = []
            for i in range(self.column):
                row.append(self._matrix[self.column * (index - 1) + i])
            return row
        elif isinstance(index, tuple):
            assert index[0] <= self.row and index[1] <= self.column, str(index[0]) + ' ' +  str(self.row) + ' ' + str(index[1]) + ' ' +  str(self.column) + ' index超了'
            return self._matrix[self.column * (index[0] - 1) + index[1] - 1]
    

    # m[i, 0] ~ m[i, j] = value,给矩阵第i行赋值,list或tuple
    # m[i, j] = value
    def __setitem__(self, index, value):
        if isinstance(index, int):
            assert index <= self.row, str(index) + ' ' + str(self.row) + ' index超了'
            for i in range(self.column):
                self._matrix[self.column * (index - 1) + i] = value[i]
        elif isinstance(index, tuple):
            assert index[0] <= self.row and index[1] <= self.column, str(index[0
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值