极端学习机代码
时间: 2023-07-02 15:19:20 浏览: 47
极端学习机(Extreme Learning Machine)是一种基于单层前馈神经网络的机器学习算法,其特点是快速训练和高效预测。以下是一个简单的Python实现:
```python
import numpy as np
class ELM:
def __init__(self, input_size, hidden_size, output_size):
self.input_size = input_size
self.hidden_size = hidden_size
self.output_size = output_size
self.W = np.random.randn(input_size, hidden_size)
self.b = np.random.randn(hidden_size)
self.beta = None
def sigmoid(self, x):
return 1 / (1 + np.exp(-x))
def fit(self, X, Y):
H = self.sigmoid(np.dot(X, self.W) + self.b)
self.beta = np.dot(np.linalg.pinv(H), Y)
def predict(self, X):
H = self.sigmoid(np.dot(X, self.W) + self.b)
Y = np.dot(H, self.beta)
return Y
```
在上述代码中,构造函数 `__init__` 接受输入层、隐藏层和输出层的大小作为参数,并初始化权重矩阵 `W` 和偏置向量 `b`。`sigmoid` 函数是激活函数,用于计算隐藏层的输出。`fit` 方法用于训练模型,使用输入数据 `X` 和目标数据 `Y` 计算出隐藏层输出和输出层权重 `beta`。`predict` 方法用于预测给定输入数据 `X` 的输出。
使用示例:
```python
X = np.random.randn(100, 10)
Y = np.random.randn(100, 1)
elm = ELM(10, 20, 1)
elm.fit(X, Y)
Y_pred = elm.predict(X)
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)