神经网络算法实战:MLPClassifier分类
在 Scikit 中神经网络被称为多层感知器(Multi-layer Perceptron),它可以用于分类或回归的非线性函数。用于分类的模块是 MLPClassifier,而用于回归的模块则是 MLPRegressor。
MLPClassifier 主要用来做分类,我们用 MLPClassifier 在鸢尾花数据上做测试。
声明:《Python系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
MLPClassifier 主要用来做分类,我们用 MLPClassifier 在鸢尾花数据上做测试。
1) 导入必要的模块
这里我们用到 sklearn 中 neural_network 模块的 MLPClassifier 分类器。此外,使用 load_iris 来获取 iris 数据集。我们使用 model_selection 模块中的方法来分割训练集和测试集。In [1]: from sklearn.neural_network import MLPClassifier ...: from sklearn.datasets import load_iris ...: from sklearn.model_selection import train_test_split
2) 导入数据集
In [2]: iris = load_iris() # 导入数据集
3) 获得自变量数据集
In [3]: X = iris['data'] # 获取自变量数据
4) 获取因变量数据集
In [4]: y = iris['target'] # 获取因变量数据
5) 分割训练集和测试集
In [5]: X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) #分割训练集和测试集
6) 初始化神经网络
这里,通过 hidden_laye r参数设置隐藏层为 3 层,每个隐藏层有 3 个神经元。另外通过 max_iter 参数设置最大的迭代次数为 100000 次。solver 参数用于指定最优化方法,adam 则是另一种优化的算法。In [6]: clf = MLPClassifier(solver='adam', alpha=1e-5,hidden_layer_sizes=(3,3), random_state=1,max_iter=100000,) # 创建神经网络分类器对象
7) 训练模型
可以看到其他参数,比如 alpha 代表了学习速率。In [7]: clf.fit(X, y)# 训练模型 Out[7]: MLPClassifier(activation='relu', alpha=1e-05, batch_size='auto', beta_1=0.9, beta_2=0.999, early_stopping=False, epsilon=1e-08, hidden_layer_sizes=(3, 3), learning_rate='constant', learning_rate_init=0.001, max_iter=100000, momentum=0.9, nesterovs_momentum=True, power_t=0.5, random_state=1, shuffle=True, solver='adam', tol=0.0001, validation_fraction=0.1, verbose=False, warm_start=False)
8) 查看模型评分
In [8]: clf.score(X_test,y_test)#模型评分 Out[8]: 0.9666666666666667
声明:《Python系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。