极限学习机(ELM)python实现

本文介绍了一个使用最小二乘法求解权重的简单神经网络模型,通过实验验证了模型的有效性,最终实现了较高的预测精度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

公式

这里写图片描述

这里写图片描述

这里写图片描述

损失函数:
这里写图片描述
这里写图片描述
这里写图片描述

最小二程求解:
这里写图片描述

实验代码

网络结构:2-20-1

#加载数据
def loadData():
    train_x = []
    train_y = []
    fileIn = open('testSet.txt')
    for line in fileIn.readlines():
        lineArr = line.strip().split()
        train_x.append([float(lineArr[0]), float(lineArr[1])])
        train_y.append(float(lineArr[2]))

    return np.mat(train_x), np.mat(train_y)

train_x, train_y = loadData()

[N, n] = train_x.shape
L = 20

W = np.random.rand(n, L)

b = np.random.rand(1, L)
b = np.repeat(b, N, axis=0)

tempH = train_x * W + b
H = g(tempH)
T = train_y.T

# m = 2
# T = np.zeros((N, m))
# for i in xrange(N):
#     if train_y[0, i] == 0:
#         T[i, 0] = 1
#     else:
#         T[i, 1] = 1
# 最小二乘求解
outputWeight = H.I * T

output = H * outputWeight

# print np.sign(output)

print np.sum((output > 0.5) == train_y.T) * 1.0 / N

# print np.sum(np.argmax(output, axis=1) == train_y.T) * 1.0 / N

实现结果
精度:0.96

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值