使用sklearn中神经网络模型对数据集进行训练和验证。
数据见本人博客“随机森林模型预测和交叉验证“
Neural Network trainning
>>> from sklearn.model_selection import train_test_split
>>> from sklearn.model_selection import cross_val_score
>>> Xtrain,Xtest,Ytrain,Ytest = train_test_split(allmatrix,target,test_size=0.3,random_state=420)
>>> from sklearn.neural_network import MLPClassifier
>>> dnn = MLPClassifier(hidden_layer_sizes=(50,50),random_state = 420) # 使用两层,每层50个节点
>>> dnn = dnn.fit(Xtrain,Ytrain)
>>> pred_dnn = dnn.predict(Xtest)
>>> score_dnn = ACCS(Ytest, pred_dnn)
>>> print("dnn training with laryer (50, 50) test score: {}".format(score_dnn))
dnn training with laryer (50, 50) test score: 0.8470485709712415
准确率同随机森林类似
dnn cv=5 cross_val交叉验证
>>> dnn_val=cross_val_score(dnn,allmatrix,target,cv=5)
>>> dnn_val
array([0.83468495, 0.83486287, 0.87552022, 0.81869598, 0.83283534])
>>> dnn_val.mean()
0.8393198731730974
归一化后的数据训练
>>> from sklearn.preprocessing import MinMaxScaler
>>> scaler = MinMaxScaler()
>>> X_mm=scaler.fit_transform(allmatrix)
>>> dnn_val_mm=cross_val_score(dnn,X_mm, target, cv