这里只讨论简单的多层感知机(MLP),也被称为普通的前馈神经网络。
神经网络调参
import mglearn
import matplotlib.pyplot as plt
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.neural_network import MLPClassifier
from sklearn.datasets import make_moons
X,y=make_moons(n_samples=100,noise=0.25,random_state=3)
X_train,X_test,y_train,y_test=train_test_split(X,y,stratify=y,random_state=42)
mlp=MLPClassifier(solver='lbfgs',random_state=0).fit(X_train,y_train)
'''solver参数决定了如何学习模型或用来学习参数的算法,有两个好用的选项:
a) adam:默认选项,对数据缩放敏感
b) lbfgs:鲁棒性很好。
c) sgd:更高级的选项,在深度学习中会用到。
'''
mglearn.plots.plot_2d_separator(mlp,X_train,fill=True,alpha=0.3)
mglearn.discrete_scatter(X_train[:,0],X_train[:,1],y_train)