(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)

你可能感兴趣的:((10)神经网络)