(10)神经网络
MLlib中神经网络类是NeuralNet
在分布式系统中,通常反向传播是计算每一层的权重的导数,最后汇总计算所有样本的平均偏导数。
模型使用方法为
val opts = Array(100.0,50.0,0.0)# 迭代步长、迭代次数、交叉验证比例
#模型训练
val NNmodel = new NeuralNet().
setSize(Array(5,7,1)).#每一层的网络节点数 包括输入输出
setlayer(3).#神经网络层数
setActivation_function("tanh_opt").#隐含层激活函数
setLearningRate(2.0).#学习率
setScaling_learningRate(1.0).#学习缩放因子
setWeightPenaltyL2(0.0).#L2正则化
setNonSparsityTarget(0.05).#权重稀疏度惩罚
setInputZeroMaskedFraction(0.0). #训练数据加入噪声
setDropoutFraction(0.0).#隐含层随机失活
setOutput_function("sigm").#输出层函数
NNtrain(data,opts)
#模型测试
val NNforecast = NNModel.predict(data)
val NNerror = NNModel.Loss(NNforecast )
val prentf1 = NNforecast .map(f=>(f.label.data(0),f.predict_label.data(0))).take(20)