介绍:超限学习机(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(