• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Scala NNLS类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Scala中org.apache.spark.mllib.optimization.NNLS的典型用法代码示例。如果您正苦于以下问题:Scala NNLS类的具体用法?Scala NNLS怎么用?Scala NNLS使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了NNLS类的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Scala代码示例。

示例1: xray

//设置package包名称以及导入依赖的类
package org.apache.spark.mllib

import breeze.linalg.{DenseMatrix => BDM, DenseVector => BDV, diag, norm}
import org.apache.spark.mllib.optimization.NNLS
import math.sqrt

object xray {

  def findWeights(X : BDM[Double], XA : BDM[Double]) : BDM[Double] = {
    val H = BDM.zeros[Double](XA.cols, X.cols)
    val ws = NNLS.createWorkspace(XA.cols)
    val ata = (XA.t*XA).toArray

    for(colidx <- 0 until X.cols) {
      val atb = (XA.t*X(::,colidx)).toArray
      val h = NNLS.solve(ata, atb, ws) 
      H(::, colidx) := BDV(h)
    }
    H
  }

  def computeXray( X : BDM[Double], r : Int) : (Array[Int], BDM[Double]) = {

    val C = X.t*X
    val selColIndices = Array.fill[Int](r)(-1)

    def posPartNorm(x : BDV[Double]) : Double = {
      norm(x.map( x => if (x >= 0) x else 0 ))
    }

    // select the first column
    val objVals = (0 until X.cols).map( j =>  posPartNorm(C(::, j)) / sqrt(C(j, j)) ).toList
    selColIndices(0) = objVals.indexOf(objVals.max) 
    var curXA = X(::, selColIndices(0)).asDenseMatrix.t
    var curH = findWeights(X, curXA)

    // select remaining columns
    for (curiter <- 1 until r) {
      val potentialCols = (0 until X.cols).toArray.filter( ! (x => selColIndices contains x)(_) ) 
      val objVals = potentialCols.map( j => posPartNorm( C(::, j) - curH.t*(curXA.t*X(::, j)) ) / sqrt(C(j, j)) )
      selColIndices(curiter) = potentialCols(objVals.zipWithIndex.sortBy(_._1).last._2)

      curXA = BDM.zeros[Double](X.rows, curiter + 1)
      for(colidx <- 0 to curiter) {
        curXA(::, colidx) := X(::, selColIndices(colidx))
      }
      curH = findWeights(X, curXA)
    }

    return (selColIndices, curH)
  }

} 
开发者ID:alexgittens,项目名称:SparkAndMPIFactorizations,代码行数:54,代码来源:xray.scala



注:本文中的org.apache.spark.mllib.optimization.NNLS类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Scala Encoder类代码示例发布时间:2022-05-23
下一篇:
Scala NioClientSocketChannelFactory类代码示例发布时间:2022-05-23
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap