多分类数据分类深度学习代码
时间: 2023-09-22 16:05:58 浏览: 39
以下是一个基于Python和Keras的多分类数据分类深度学习代码示例:
```python
import numpy as np
import keras
from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation
from keras.optimizers import SGD
# 生成训练数据
x_train = np.random.random((1000, 20))
y_train = keras.utils.to_categorical(np.random.randint(10, size=(1000, 1)), num_classes=10)
# 生成测试数据
x_test = np.random.random((100, 20))
y_test = keras.utils.to_categorical(np.random.randint(10, size=(100, 1)), num_classes=10)
# 构建模型
model = Sequential()
model.add(Dense(64, activation='relu', input_dim=20))
model.add(Dropout(0.5))
model.add(Dense(64, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(10, activation='softmax'))
# 定义优化器
sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
# 编译模型
model.compile(loss='categorical_crossentropy',
optimizer=sgd,
metrics=['accuracy'])
# 训练模型
model.fit(x_train, y_train,
epochs=20,
batch_size=128,
validation_data=(x_test, y_test))
# 评估模型
score = model.evaluate(x_test, y_test, batch_size=128)
print('Test loss:', score[0])
print('Test accuracy:', score[1])
```
在这个例子中,我们生成了1000个20维的随机训练样本和100个20维的随机测试样本。每个样本都有一个0到9之间的随机整数标签。我们使用`to_categorical`函数将标签转换为one-hot编码的形式,以便用于多分类模型。模型由两个64个神经元的全连接层和一个10个神经元的softmax层组成。我们使用了dropout正则化,以避免过拟合。最后,我们使用随机梯度下降(SGD)优化器来训练模型,随着时间的推移逐步降低学习率。在训练过程中,我们还使用了验证集来监视模型的性能,并在训练结束后评估模型的测试准确率。