【机器学习】keras中to_categorical函数解析
1.to_categorical的功能
简单来说,to_categorical就是将类别向量转换为二进制(只有0和1)的矩阵类型表示。其表现为将原有的类别向量转换为独热编码的形式。先上代码看一下效果:
from keras.utils.np_utils import * #类别向量定义 b = [0,1,2,3,4,5,6,7,8] #调用to_categorical将b按照9个类别来进行转换 b = to_categorical(b, 9) print(b) 执行结果如下: [[1. 0. 0. 0. 0. 0. 0. 0. 0.] [0. 1. 0. 0. 0. 0. 0. 0. 0.] [0. 0. 1. 0. 0. 0. 0. 0. 0.] [0. 0. 0. 1. 0. 0. 0. 0. 0.] [0. 0. 0. 0. 1. 0. 0. 0. 0.] [0. 0. 0. 0. 0. 1. 0. 0. 0.] [0. 0. 0. 0. 0. 0. 1. 0. 0.] [0. 0. 0. 0. 0. 0. 0. 1. 0.] [0. 0. 0. 0. 0. 0. 0. 0. 1.]]
to_categorical最为keras中提供的一个工具方法,从以上代码运行可以看出,将原来类别向量中的每个值都转换为矩阵里的一个行向量,从左到右依次是0,1,2,...8个类别。2表示为[0. 0. 1. 0. 0. 0. 0. 0. 0.],只有第3个为1,作为有效位,其余全部为0。
2.one_hot encoding(独热编码)介绍
独热编码又称为一位有效位编码,上边代码例子中其实就是将类别向量转换为独热编码的类别矩阵。也就是如下转换
0 1 2 3 4 5 6 7 8 0=> [1. 0. 0. 0. 0. 0. 0. 0. 0.] 1=> [0. 1. 0. 0. 0. 0. 0. 0. 0.] 2=> [0. 0. 1. 0. 0. 0. 0. 0. 0.] 3=> [0. 0. 0. 1. 0. 0. 0. 0. 0.] 4=> [0. 0. 0. 0. 1. 0. 0. 0. 0.] 5=> [0. 0. 0. 0. 0. 1. 0. 0. 0.] 6=> [0. 0. 0. 0. 0. 0. 1. 0. 0.] 7=> [0. 0. 0. 0. 0. 0. 0. 1. 0.] 8=> [0. 0. 0. 0. 0. 0. 0. 0. 1.]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!