MLPClassifier构建单层神经网络
时间: 2023-07-08 18:52:03 浏览: 79
使用飞桨(Paddle)构建单层神经网络.ipynb
在 Scikit-learn 中,可以使用 `MLPClassifier` 类来构建多层感知器(Multi-Layer Perceptron, MLP)模型,其中单层神经网络就是指只有一个隐藏层的 MLP 模型。下面是一个使用 `MLPClassifier` 构建单层神经网络的例子:
```python
from sklearn.neural_network import MLPClassifier
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
# 生成分类数据
X, y = make_classification(n_samples=1000, n_features=10, n_informative=5, n_classes=2, random_state=1)
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1)
# 定义 MLP 模型
mlp = MLPClassifier(hidden_layer_sizes=(10,), activation='relu', solver='adam', max_iter=1000, random_state=1)
# 训练模型
mlp.fit(X_train, y_train)
# 在测试集上评估模型
score = mlp.score(X_test, y_test)
print('Accuracy: {:.2f}%'.format(score * 100))
```
在这个例子中,我们首先使用 `make_classification` 函数生成一个包含 1000 个样本和 10 个特征的分类数据集,然后将数据集划分为训练集和测试集。接着,我们定义了一个包含 1 个隐藏层、每个隐藏层包含 10 个神经元的 MLP 模型,并使用训练集对模型进行训练。最后,我们在测试集上评估了模型的准确率。
需要注意的是,在 `MLPClassifier` 中,`hidden_layer_sizes` 参数指定隐藏层的大小,它可以是一个整数(表示只有一个隐藏层,且该隐藏层的大小为指定的整数),也可以是一个元组(表示有多个隐藏层,元组中的每个元素表示每个隐藏层的大小)。`activation` 参数指定激活函数,`solver` 参数指定优化器,`max_iter` 参数指定最大迭代次数,`random_state` 参数指定随机数种子。
阅读全文