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!!!!!!")
经验分享 程序员 微信小程序 职场和发展