使用神经网络模型对蘑菇的可食用性分类的python代码
时间: 2024-05-10 11:18:21 浏览: 109
基于 Python 实现利用神经网络对 mushroom 进行分类【100011054】
以下是使用神经网络模型对蘑菇可食用性进行分类的 Python 代码示例:
```python
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from keras.models import Sequential
from keras.layers import Dense, Dropout
from keras.utils import to_categorical
# 读取数据
data = pd.read_csv('mushrooms.csv')
# 将类别标签转换为数字
label_mapping = {'e': 0, 'p': 1}
data['class'] = data['class'].map(label_mapping)
# 将所有特征转换为数字
for col in data.columns[1:]:
data[col] = pd.factorize(data[col])[0]
# 将数据集分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(data.drop('class', axis=1),
data['class'],
test_size=0.2,
random_state=42)
# 将标签转换为 one-hot 编码
y_train = to_categorical(y_train)
y_test = to_categorical(y_test)
# 创建神经网络模型
model = Sequential()
model.add(Dense(64, input_dim=X_train.shape[1], activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(32, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(2, activation='softmax'))
# 编译模型
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
# 训练模型
model.fit(X_train, y_train, epochs=20, batch_size=32, validation_data=(X_test, y_test))
# 在测试集上评估模型
loss, accuracy = model.evaluate(X_test, y_test)
print(f'Test loss: {loss:.4f}, accuracy: {accuracy:.4f}')
```
这段代码使用了 Pandas 库读取数据,并将类别标签和所有特征转换为数字。然后,使用 Scikit-learn 库将数据集分为训练集和测试集,并使用 Keras 库创建一个简单的神经网络模型进行分类。最后,用测试集评估模型的性能。
阅读全文