Iris数据集使用方法:
https://blog.csdn.net/qq_17336559/article/details/81480629
Sklearn神经网络使用方法以及参数说明:
https://www.jianshu.com/p/71fde5d90136
import numpy as np
from sklearn import datasets
from sklearn.neural_network import MLPClassifier
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
iris = datasets.load_iris()
train_data, test_data, train_label, test_label = train_test_split(iris.data, iris.target, test_size=0.2, random_state=0) #训练集占百分之八十,测试集占百分之二十
mlp = MLPClassifier(hidden_layer_sizes=(20,3))
mlp.fit(train_data,train_label)
pre = mlp.predict(test_data)
print("Training set score: %f" % mlp.score(train_data, train_label))
print("Test set score: %f" % mlp.score(test_data, test_label))
print("真实:")
print(test_label)
print("预测:")
print(pre)
输出:
再试了一下结果为:
发现变化很大,这是因为随机权值导致的,改为:
mlp = MLPClassifier(hidden_layer_sizes=(20,3),random_state=1)
加上一个固定的随机值,这样就能保证每次一样了,可以调整random_state,找到最优的。
将层数和每层的神经元数增多:
mlp = MLPClassifier(hidden_layer_sizes=(20,20,20),random_state=1)
准确度基本到1了。