scala实现超限学习机(ELM)手写数字分类

介绍:超限学习机(Extreme Learning Machine)又叫极限学习机是黄广斌等于2006年提出,属于单隐层前馈神经网络SLFN。其输入权值和隐层阈值随机初始化,通过最小二乘法计算得出输出权值,具有很好的分类和回归性能,与其它机器学习算法相比最大的优势是计算速度快,因为ELM不需要进行迭代。

现将实现ELM的scala代码贴出,亲测运行成功,由于内存限制,在本地最高只能运行到900个隐层结点。若有疑问,欢迎交流。

import org.apache.log4j.{Level, Logger}
import org.apache.spark.{SparkConf, SparkContext}
import breeze.linalg.{DenseMatrix=>BDM,_}//为避免与mllib自带的DenseMatrix混淆,将其赋一个别名
import breeze.numerics._
import org.apache.spark.rdd.RDD

object ELM {
   
  def manOf[T: Manifest](t: T): Manifest[T] = manifest[T]//返回类型

  def main(args: Array[String]) {
    // 屏蔽不必要的日志显示终端上
    Logger.getLogger("org.apache.spark").setLevel(Level.ERROR)
    Logger.getLogger("org.eclipse.jetty.server").setLevel(Level.OFF)
    // 设置运行环境
    val conf = new SparkConf().setAppName("ELM").setMaster(
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值