您的位置:首页 > 大数据

感知器的scala实现

2016-07-04 20:41 169 查看
其实感知器学习算法,就是利用第一节介绍的单层感知器。首先利用给的正确数据,计算得到输出值,将输出值和正确的值相比,由此来调整每一个输出端上的权值。



公式便是用来调整权值,首先 是一个“学习参数”,一般我将它设置成小于1的正数。T便是训练数据中的正确结果, 便是第i个输入端的输入值,便是第i个输入端上面的权值。

关于感知器的scala代码实现如下:

object Perceptron{
val sourceX = Array(Array(3,3),Array(4,3),Array(1,1))
val resulty = Array(1,1,-1)
def perceptronSGD(X:Array[Array[Int]],y:Array[Int],learnRate:Double = 0.001,iterNum:Int = 1000):(Array[Double],Double)={
var theta:Array[Double] = new Array(X(0).length)
var b = 0.0
for(i<- 0 to iterNum){
val row = i % X.length
var rowSum = 0.0
for(col <- 0 until X(0).length){
rowSum += X(row)(col) * theta(col)
}
rowSum = (rowSum + b) * y(row)
if(!(rowSum > 0)){
for(col <- 0 until X(0).length){
theta(col) = theta(col) + learnRate * y(row) * X(row)(col)
}
b = b + learnRate * y(row)
}
}
(theta,b)
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息