python实现多层感知机(MLP)
MLP(多层神经网络)
MLP是感知器的推广,克服了感知器不能对线性不可分数据进行识别的弱点。神经网络流程分为前向过程和反向过程,反向过程一般用于训练。
每个神经元上面都有对于一个输入的权值,以及一个偏置,还有一个激活函数。所以一个前向过程的流程就是input输入,然后经过一层神经元运算,得到输出,然后第一层的输出作为第二层的输入,运算,得到第二层的输出…直到到输出层运算,然后得到结果。神经网络就是依靠这样的一套机制来进行计算和预测的。我们的任务就是找到权值和偏置这些参数的值,使得输出的东西让我们满意,达到我们的要求。
num_hidden:隐藏层节点数目
activation:隐藏层/输出层节点的激发函数
weights/biases:连接权重/偏置
python实现代码
# -*- coding: utf-8 -*- import IOUtil as iou import pandas as pd import numpy as np from sklearn import svm from sklearn import metrics from decimal import Decimal num=[] #### 训练 print ("MLP start") X = iou.readArray(X_train.csv) y = iou.readArray(y_train.csv) y = y.ravel() print ("MLP Data OK") from sklearn.neural_network import MLPRegressor model = MLPRegressor(hidden_layer_sizes=130,learning_rate="adaptive") model.fit(X, y) ######预测 X_test = iou.readArray(X_test.csv) y_test = iou.readArray(y_test.csv) print ("MLP predict...") y_predict = model.predict(X_test) test_auc = metrics.roc_auc_score(y_test,y_predict)#验证集上的auc值 score_avg=score_avg+float(test_auc) print (test_auc) print ("MLP Done!!!!!!")
上一篇:
通过多线程提高代码的执行效率例子
下一篇:
计算机基础知识(快捷键,DOS命令)