写一个利用GridSearchCV确定MLPClassifier最优参数的代码
时间: 2024-05-09 16:15:13 浏览: 12
好的,以下是一个利用GridSearchCV确定MLPClassifier最优参数的代码示例:
```python
from sklearn.neural_network import MLPClassifier
from sklearn.model_selection import GridSearchCV
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
# 生成一组模拟数据
X, y = make_classification(n_samples=1000, random_state=42)
# 将数据集分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 定义要搜索的参数空间
param_grid = {
'hidden_layer_sizes': [(50,), (100,), (50, 50), (100, 100)],
'activation': ['logistic', 'tanh', 'relu'],
'solver': ['sgd', 'adam'],
'alpha': [0.0001, 0.001, 0.01],
'learning_rate': ['constant', 'adaptive']
}
# 定义MLP分类器
mlp = MLPClassifier(random_state=42)
# 定义GridSearchCV对象
grid_search = GridSearchCV(mlp, param_grid, cv=5, n_jobs=-1, verbose=1)
# 在训练集上拟合GridSearchCV对象
grid_search.fit(X_train, y_train)
# 输出最优参数
print("Best parameters: ", grid_search.best_params_)
# 在测试集上评估模型
score = grid_search.score(X_test, y_test)
print("Test score: ", score)
```
在这个示例中,我们生成了一组模拟数据,并将其分成训练集和测试集。我们定义了一个参数网格,包含了MLP分类器的各种参数组合。然后,我们定义了一个MLP分类器和一个GridSearchCV对象,并在训练集上拟合GridSearchCV对象。最后,我们输出了最优参数,并在测试集上评估了模型的性能。