加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

Python数据科学:神经网络

发布时间:2019-05-11 03:12:52 所属栏目:建站 来源:小F
导读:(Artificial Neural Network,ANN)人工神经收集模子,以数学和物理的要领对人脑神经收集举办简化、抽象和模仿。 本次只是一个简朴的神经收集入门,涉及神经元模子和BP神经收集。 这里简朴相识一下呆板进修的三要素,别离是模子、计策与算法。 模子包罗非随

成立多层感知器模子。

  1. # 配置多层感知器对应的模子 
  2. mlp = MLPClassifier(hidden_layer_sizes=(10,), activation='logistic', alpha=0.1, max_iter=1000) 
  3. # 对实习集举办模子实习 
  4. mlp.fit(scaled_train_data, train_target) 
  5. # 输入迷经收集模子信息 
  6. print(mlp) 

输出模子信息如下。

接下来行使颠末实习集实习的模子,对实习集及测试集举办猜测。

  1. # 行使模子举办猜测 
  2. train_predict = mlp.predict(scaled_train_data) 
  3. test_predict = mlp.predict(scaler_test_data) 

输出猜测概率,用户流失的概率。

  1. # 输出模子猜测概率(为1的环境) 
  2. train_proba = mlp.predict_proba(scaled_train_data)[:, 1] 
  3. test_proba = mlp.predict_proba(scaler_test_data)[:, 1] 

对模子举办评估,输出评估数据。

  1. # 按照猜测信息输出模子评估功效 
  2. print(metrics.confusion_matrix(test_target, test_predict, labels=[0, 1])) 
  3. print(metrics.classification_report(test_target, test_predict)) 

输出如下。

模子对流失用户的f1-score(准确率和召回率的调僻静均数)值为0.81,结果不错。

另外对流失用户的迅速度recall为0.83,模子能辨认出83%的流失用户,声名模子辨认流失用户的手段还可以。

输出模子猜测的均匀精确度。

  1. # 行使指定命据集输出模子猜测的均匀精确度 
  2. print(mlp.score(scaler_test_data, test_target)) 
  3. # 输出值为0.8282828282828283 

均匀精确度值为0.8282。

计较模子的ROC下面积。

  1. # 绘制ROC曲线 
  2. fpr_test, tpr_test, th_test = metrics.roc_curve(test_target, test_proba) 
  3. fpr_train, tpr_train, th_train = metrics.roc_curve(train_target, train_proba) 
  4. plt.figure(figsize=[3, 3]) 
  5. plt.plot(fpr_test, tpr_test, 'b--') 
  6. plt.plot(fpr_train, tpr_train, 'r-') 
  7. plt.title('ROC curve') 
  8. plt.show() 
  9.  
  10. # 计较AUC值 
  11. print(metrics.roc_auc_score(test_target, test_proba)) 
  12. # 输出值为0.9149632415075206 

ROC曲线图如下。

实习集和测试集的曲线很靠近,没有过拟合征象。

AUC值为0.9149,声名模子结果很是好。

对模子举办最优参数搜刮,而且对最优参数下的模子举办实习。

  1. # 行使GridSearchCV举办最优参数搜刮 
  2. param_grid = { 
  3.     # 模子隐层数目 
  4.     'hidden_layer_sizes': [(10, ), (15, ), (20, ), (5, 5)], 
  5.     # 激活函数 
  6.     'activation': ['logistic', 'tanh', 'relu'], 
  7.     # 正则化系数 
  8.     'alpha': [0.001, 0.01, 0.1, 0.2, 0.4, 1, 10] 
  9.  
  10. mlp = MLPClassifier(max_iter=1000) 
  11. # 选择roc_auc作为评判尺度,4折交错验证,n_jobs=-1行使多核CPU的所有线程 
  12. gcv = GridSearchCV(estimator=mlp, param_grid=param_grid, 
  13.                    scoring='roc_auc', cv=4, n_jobs=-1) 
  14. gcv.fit(scaled_train_data, train_target) 

输出最优参数的模子的环境。

  1. # 输出最优参数下模子的得分 
  2. print(gcv.best_score_) 
  3. # 输出值为0.9258018987136855 
  4.  
  5. # 输出最优参数下模子的参数 
  6. print(gcv.best_params_) 
  7. # 输出参数值为{'alpha': 0.01, 'activation': 'tanh', 'hidden_layer_sizes': (5, 5)} 
  8.  
  9. # 行使指定命据集输出最优模子猜测的均匀精确度 
  10. print(gcv.score(scaler_test_data, test_target)) 
  11. # 输出值为0.9169384823390232 

模子的roc_auc最高得分为0.92,即该模子下的ROC曲线下面积为0.92。

较之前的0.9149,进步了一点点。

模子的最优参数,激活函数为relu范例,alpha为0.01,潜匿层节点数为15个。

模子的猜测均匀精确率为0.9169,较之前的0.8282,进步了不少。

(编辑:湖南网)

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

热点阅读