加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 建站资源 > 经验 > 正文

60行代码徒手实现深度神经网络

发布时间:2019-07-28 08:50:52 所属栏目:经验 来源:佚名
导读:副标题#e# 01 准备数据集 采用的数据集是sklearn中的breast cancer数据集,30维特征,569个样本。训练前进行MinMax标准化缩放至[0,1]区间。按照75/25比例划分成训练集和验证集。 #获取数据集 importnumpyasnp importpandasaspd fromsklearnimportdatasets f

设置2个隐藏层,隐藏层节点数都为5,隐藏层都使用ReLu激活函数。

  1. # 设置两个隐藏层,采用ReLu激活函数 
  2. NN = NNClassifier(n = [np.nan,5,5,1],alpha = 0.02, 
  3.  ITERNUM = 200000, gfunc = 'ReLu') 
  4. NN.fit(X_train,y_train) 
  5. # 绘制目标函数迭代曲线 
  6. %matplotlib inline 
  7. NN.dfJ.plot(figsize = (12,8)) 
  8. # 测试在验证集的auc得分 
  9. from sklearn.metrics import roc_auc_score 
  10. Y_prob = NN.predict_prob(X_test) 
  11. roc_auc_score(list(y_test),list(Y_prob)) 
60行代码徒手实现深度神经网络

AUC得分0.99874比采用单隐藏层的最优得分0.99958有所降低,可能是模型复杂度过高,我们尝试减少隐藏层节点的个数至3以降低模型复杂度。

  1. # 双隐藏层,隐藏层节点数为3 
  2. NN = NNClassifier(n = [np.nan,3,3,1],alpha = 0.02, 
  3.  ITERNUM = 200000, gfunc = 'ReLu') 
  4. NN.fit(X_train,y_train) 
  5. # 绘制目标函数迭代曲线 
  6. %matplotlib inline 
  7. NN.dfJ.plot(figsize = (12,8)) 
  8. # 测试在验证集的auc得分 
  9. from sklearn.metrics import roc_auc_score 
  10. Y_prob = NN.predict_prob(X_test) 
  11. roc_auc_score(list(y_test),list(Y_prob)) 
60行代码徒手实现深度神经网络

AUC得分0.99979,又有所提高。

和sklearn中自带的神经网络分类器进行对比。

  1. # 和sklearn中的模型对比 
  2. from sklearn.neural_network import MLPClassifier 
  3. # 第一隐藏层神经元个数为3,第二隐藏层神经元个数为3 
  4. MLPClf = MLPClassifier(hidden_layer_sizes=(3,3),max_iter=200000,activation='relu') 
  5. MLPClf.fit(X_train,y_train) 
  6. # 绘制目标函数迭代曲线 
  7. dfJ = pd.DataFrame(data = np.array(MLPClf.loss_curve_),columns = ['J']) 
  8. dfJ.plot(figsize = (12,8)) 
  9. # 测试在验证集的auc得分 
  10. from sklearn.metrics import roc_auc_score 
  11. Y_prob = MLPClf.predict_proba(X_test)[:,1] 
  12. roc_auc_score(list(y_test),list(Y_prob)) 
60行代码徒手实现深度神经网络

以上试验表明,针对当前数据数据集,选择ReLu激活函数,采用双隐藏层,每个隐藏层节点数设置为3是一个不错的选择,AUC得分为0.99979。该得分高于采用CV交叉验证优化超参数后的逻辑回归模型的0.99897的AUC得分。

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读