【Breeze】【Scala】基于梯度下降的简单逻辑回归编程实现 Logistic Regression - GD
来源:互联网 发布:ems打印软件 编辑:程序博客网 时间:2024/05/19 22:04
基于Breeze编程实现,(www.scalanlp.org)。
旨在理解Logistic Regression - Gradient Descent,矢量化(vectorization)编程的基本原理。
package org.lily.optimization.testimport breeze.linalg._import breeze.math._import breeze.numerics._object LRSGDbreezeDemo { def main(args: Array[String]): Unit = { val numRows = 3//m val numCols = 4//n// val SourceArr = new Array[Double](12) val arr = Array(1.0,4.0,3.0,2.0,2.0,8.0,9.0,6.0,3.0,4.0,2.0,9.0)// for(i <- 0 to SourceArr.length - 1) {SourceArr(i) = i.toDouble} val dm = new DenseMatrix(numRows, numCols, arr) val label = new DenseVector(Array(1.0, 0.0, 0.0)) val alpha = 0.01 var loss = 10.0 val numIterations = 1000//迭代次数 println(dm) println("") println(dm.t) var theta = new DenseVector(new Array[Double](numCols)) var Curtheta = new DenseVector(new Array[Double](numCols)) val I = DenseVector.ones[Double](numRows) for (i <- 1 to numIterations if (loss > 0.01) ) { var A = dm * theta var E = sigmoid(A) - label Curtheta = theta - alpha * dm.t * E var H = dm * Curtheta loss = -(1/numRows.toDouble)*sum((log(sigmoid(H)):*label) + (log(I-sigmoid(H)):*(I-label))) theta = Curtheta println("the Current loss: " + loss) println("the Current theta: " + theta) println("the " + i + "th Iteration") } }}参考文章:http://blog.csdn.net/pakko/article/details/37878837
1 0
- 【Breeze】【Scala】基于梯度下降的简单逻辑回归编程实现 Logistic Regression - GD
- 【scala】【spark】基于随机梯度下降的简单线性回归编程实现:Linear Regression - SGD
- 【scala】简单线性回归的随机梯度下降算法实现:Linear Regression - SGD
- 线性回归、梯度下降、逻辑回归(Linear Regression、Gradient Descent、Logistic Regression)
- Logistic Regression逻辑回归的简单解释
- 逻辑回归(代价函数,梯度下降) logistic regression--cost function and gradient descent
- 简单线性回归的随机梯度下降算法实现:Linear Regression - SGD
- 【scala】基于【breeze】编程实现【autoencoder】简单数据降维
- 关于逻辑回归(Logistic regression)模型的简单思考
- spark实现下的逻辑回归(logistic regression)
- logistic regression 逻辑回归
- 逻辑回归(Logistic Regression)
- 逻辑回归(logistic regression)
- 逻辑回归logistic regression
- 逻辑回归(logistic regression)
- 逻辑回归(logistic regression)
- 逻辑回归(Logistic Regression)
- 逻辑回归(logistic regression)
- AnyEvent::HTTP 介绍
- Apache Karaf离线打包
- mac中的sed用法的区别
- js正则表达式学习和总结
- 进程的概念和特征
- 【Breeze】【Scala】基于梯度下降的简单逻辑回归编程实现 Logistic Regression - GD
- es的几个重要接口的应用
- 自定义shape的使用(矩形弧角Button)
- Git 使用方法
- c++.dll打印日志到c#界面,使用回调函数
- 【面试笔试】Java常见面试笔试总结
- 浅析jQuery EasyUI响应式布局的实现方案
- OpenCV之feature2d 模块. 2D特征框架(2)特征描述 使用FLANN进行特征点匹配 使用二维特征点(Features2D)和单映射(Homography)寻找已知物体 平面物体检测
- 2016西电校赛网络赛 Problem G 合并模板