You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Keras to_categorical()转换字符串标签报错的解决求助

解决方案

报错原因很明确:to_categorical()只接受整数类型的类别标签,但你的目标特征是字符串('DDoS'、'Benign'),无法直接转换为整数,因此触发错误。

下面是两种可行的修复方法:

方法一:通过因子转换为整数标签

先将字符串标签转为因子,再转换为整数(减1是为了让类别从0开始,适配keras的独热编码逻辑):

# 转换训练集目标标签
trainingtarget_int <- as.integer(as.factor(trainingtarget)) - 1
# 转换测试集目标标签
testingtarget_int <- as.integer(as.factor(testingtarget)) - 1

# 生成独热编码
trainLabels <- to_categorical(trainingtarget_int)
testLabels <- to_categorical(testingtarget_int)

方法二:手动映射字符串到整数

如果想更直观控制类别对应的编码值,可以直接用条件判断手动转换:

# 自定义映射:Benign对应0,DDoS对应1
trainingtarget_int <- ifelse(trainingtarget == 'Benign', 0, 1)
testingtarget_int <- ifelse(testingtarget == 'Benign', 0, 1)

# 生成独热编码
trainLabels <- to_categorical(trainingtarget_int)

额外注意点

  • 可以用class(Train2[,5])确认目标特征的类型,确保是字符或因子类型(如果是因子可以直接转整数再减1)。
  • 后续模型训练时,输入的特征矩阵training和testing要确保是数值类型,你当前用as.matrix()转换的操作是没问题的。

内容的提问来源于stack exchange,提问作者Frenzy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 18:06:39