用神经网络解决鸢尾花分类的问题的具体的Python代码如何编写
时间: 2023-06-04 14:07:45 浏览: 141
Python 基于BP神经网络实现鸢尾花的分类+源代码+文档说明
以下是使用神经网络(多层感知机模型)解决鸢尾花分类问题的Python代码示例:
```python
import numpy as np
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from keras.models import Sequential
from keras.layers import Dense
# 加载数据
iris = load_iris()
X = iris['data']
y = iris['target']
# 数据预处理
scaler = StandardScaler()
X = scaler.fit_transform(X)
y = pd.get_dummies(y).values
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# 构建模型
model = Sequential()
model.add(Dense(units=16, activation='relu', input_dim=4))
model.add(Dense(units=3, activation='softmax'))
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
# 训练模型
model.fit(X_train, y_train, epochs=100, batch_size=10, verbose=0)
# 评估模型
loss, acc = model.evaluate(X_test, y_test)
print(f'Test loss: {loss:.3}, Test accuracy: {acc:.3}')
```
以上代码使用Keras实现了一个包含一个隐藏层的多层感知机(MLP),其中输入层有4个神经元(对应鸢尾花的4个特征),隐藏层有16个神经元,输出层有3个神经元(对应3类鸢尾花)。使用softmax激活函数的输出层预测每个样本属于每一类的概率,然后通过交叉熵损失作为损失函数进行训练。使用Adam优化器对模型权重进行优化。最后使用测试集评估模型效果。
阅读全文