|
本帖最后由 guojiasheng 于 2016-6-3 14:27 编辑
上来先发个官方参照链接:http://www.ntu.edu.sg/home/egbhuang/index.html#
中文叫: 极限学习机。 理论性的东西就参照链接去看吧,我也就大概看了一下,我也解析不清楚。
那还是大致说一下吧,错了请指正:
(1)其实就是关于神经网络,目前DL这么流行,这个我个人理解其实也差不多。
Paper说:对于单隐层前馈神经网络(SLFNs),ELM比传统的学习算法速度更快。
神经网络里面训练模型需要调节参数,这个目前一般都是采用BP反馈调节(误差逆传播算法,调节的网络参数包括连接权,输出阈值),当隐层的结点很多的时候,这是一个很耗时间的过程。
ELM说,那我们不训练这些隐层结点参数。直接随机生成这些隐层结点,总可以了吧(据他们分析说,其实这样更好),之后他们就是
调节隐层和输出层的参数,然后一大堆公式,把这些要求的参数转化成矩阵公式,直接求逆了什么的,就给求出来了(单隐层)。速度就变快了。 所以我理解他们可以随机生成hidden,隐层结点个数,与输入的链接权重啊。那么后面只需呀要求解最后一层的权重参数即可。
(2)我们数学不好,还是直接上代码吧,这边基于scikit-learn 以及他们的参考自己写了一个调用方法。
路径:
/Bioinformatics_Machine_Learning/Machine_Learning/classifier/ELM/Python-ELM
运行:python runElm.py -f sigmoid -h 10 -c EL heart_scale
输出:- begin ELMClassifier init....
- elm init with hidden : 10 activation_func : sigmoid
- cross
- 10 cross validation result
- ACC:0.822222222222
- Auc:0.784603190927
- confusion_matrix
- [[132 18]
- [ 32 88]]
复制代码
包括:ACC 、AUC、混淆矩阵
参数说明:
-f : 激活函数,sine
tanh
tribas
inv_tribas
sigmoid
hardlim
softlim
gaussian
multiquadric
inv_multiquadric
-c elm的分类器,包括EL 、Gen
-h 隐层结点个数
|
|