卷积神经网络实现鸢尾花数据分类python代码实现
时间: 2024-11-06 19:14:08 浏览: 0
神经网络实现鸢尾花分类
卷积神经网络(Convolutional Neural Network, CNN)常用于图像识别任务,包括像鸢尾花这样的花卉分类。这里是一个简单的Python代码示例,使用Keras库来实现鸢尾花数据集的分类,该数据集通常来自于sklearn模块:
```python
from sklearn.datasets import load_iris
import numpy as np
from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
# 加载鸢尾花数据
iris = load_iris()
X = iris.data[:, :4].reshape(-1, 4, 1) # 将数据转换成1维数组并增加维度,假设每个样本是4维(花瓣长度、宽度等)
y = iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建CNN模型
model = Sequential([
Conv2D(32, (3, 3), activation='relu', input_shape=(4, 1, 1)), # 第一层卷积层
MaxPooling2D(pool_size=(2, 2)),
Conv2D(64, (3, 3), activation='relu'),
MaxPooling2D(pool_size=(2, 2)),
Flatten(), # 展平操作,将二维矩阵展平为一维向量
Dense(128, activation='relu'), # 全连接层
Dense(3, activation='softmax') # 输出层,3个节点对应3种鸢尾花类别
])
# 编译模型
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
# 训练模型
model.fit(X_train, y_train, epochs=50, validation_data=(X_test, y_test))
# 评估模型性能
score = model.evaluate(X_test, y_test)
print("Test accuracy:", score[1])
```
注意,这个例子假设了数据已经被预处理,并且对输入进行了必要的形状调整。实际应用中,你可能需要对数据做更多的预处理步骤,如归一化等。
阅读全文