设置1个隐藏层,隐藏层节点数为5,隐藏层使用Sigmoid激活函数。
- # 采用Sigmoid激活函数
- NN = NNClassifier(n = [np.nan,5,1],alpha = 0.02,
- ITERNUM = 200000, gfunc = 'Sigmoid')
- NN.fit(X_train,y_train)
- # 绘制目标函数迭代曲线
- %matplotlib inline
- NN.dfJ.plot(figsize = (12,8))
- # 测试在验证集的auc得分
- from sklearn.metrics import roc_auc_score
- Y_prob = NN.predict_prob(X_test)
- roc_auc_score(list(y_test),list(Y_prob))
隐藏层使用Tanh激活函数。
- # 采用 Tanh激活函数
- NN = NNClassifier(n = [np.nan,5,1],alpha = 0.02,
- ITERNUM = 200000, gfunc = 'Tanh')
- NN.fit(X_train,y_train)
- # 绘制目标函数迭代曲线
- %matplotlib inline
- NN.dfJ.plot(figsize = (12,8))
- # 测试在验证集的auc得分
- from sklearn.metrics import roc_auc_score
- Y_prob = NN.predict_prob(X_test)
- roc_auc_score(list(y_test),list(Y_prob))
隐藏层使用ReLu激活函数。
- # 采用 ReLu激活函数
- NN = NNClassifier(n = [np.nan,5,1],alpha = 0.02,
- ITERNUM = 200000, gfunc = 'ReLu')
- NN.fit(X_train,y_train)
- # 绘制目标函数迭代曲线
- %matplotlib inline
- NN.dfJ.plot(figsize = (12,8))
- # 测试在验证集的auc得分
- from sklearn.metrics import roc_auc_score
- Y_prob = NN.predict_prob(X_test)
- roc_auc_score(list(y_test),list(Y_prob))
隐藏层使用LeakyReLu激活函数。
- # 采用 LeakyReLu激活函数
- NN = NNClassifier(n = [np.nan,5,1],alpha = 0.02,
- ITERNUM = 200000, gfunc = 'LeakyReLu')
- NN.fit(X_train,y_train)
- # 绘制目标函数迭代曲线
- %matplotlib inline
- NN.dfJ.plot(figsize = (12,8))
- # 测试在验证集的auc得分
- from sklearn.metrics import roc_auc_score
- Y_prob = NN.predict_prob(X_test)
- roc_auc_score(list(y_test),list(Y_prob))
以上试验似乎表明,在当前的数据集上,隐藏层采用ReLu激活函数是一个最好的选择,AUC最高得分为0.99958。
06
双隐层神经网络
(编辑:ASP站长网)
|