用神经网络分类数据

分类向量数据
根据三个正态分布的聚类创建一个人工数据集:
绘制数据集:
培训数据包括规则映射点至所在的聚类:
创建一个网络计算点在每个聚类中的概率,使用 "Class" 解码器分类数据为 RedGreenBlue
在数据上培训网络:
计算每个聚类上的中心的网络:
显示每个类达到 0.75 后验概率时在特征空间的轮廓:
绘制由位置函数熵测量的分类器的不确定度:
在 Fisher Iris 数据集上执行逻辑回归. 首先,获取培训数据:
构建分配给每个范例的唯一标签列表:
创建一个 NetChain 执行分类,使用 "Class" 解码器诠释网络的输出为每类的概率:
NetTrain 会自动使用带有 NetEncoderCrossEntropyLossLayer 来诠释培训数据中的类标签:
分类输入:
获取与分类相关联的概率:
使用 NetMeasurements 检验在测试集上被培训的网络的分类性能:
分类类别数据
在包含类别和数字值的数据集上执行逻辑回归.
首先,获取培训数据,然后去掉包含丢失数据的行:
把数据分成培训和测试数据集:
分类变量不能直接用在神经网络上,必须编码为数值张量.
创建 "Class" 编码器编码分类变量为单热编码向量:
把编码器应用于类标签产生单位向量:
创建一个带有输入的网络对应每个特征,使用 "Boolean" 解码器诠释网络的输出作为生存的概率.
在进一步处理前,输入特征首先级联在一起:
在培训数据上培训网络. NetTrain 会自动在网络输出上附着一层 CrossEntropyLossLayer["Binary"]
预测乘客是否会生存:
获取与输入相关联的生存概率:
绘制 "class""sex" 相组合的年龄函数的生存概率:
使用 NetMeasurements 在测试集上测试培训网络的精确度:
精确度可以与指定方法为 "LogisticRegression",使用 Classify 获得的相比较:
多任务分类
通过创建产生两个独立分类的网络执行多任务学习.
首先获取培训数据:
培训数据包含图像以及对应的高级和低级标签:
从 "Label" 和 "SubLabel" 列中提取唯一标签:
创建会产生 500 个特征的向量的卷积网络:
为高级和低级标签创建一个会产生独立分类的 NetGraph
培训网络. NetTrain 会自动把 CrossEntropyLossLayer 对象粘贴在输出,使用对应的名称 "Label" 和 "SubLabel" 从培训数据获取目标值:
在单幅图像上计算培训网络:
在多幅图像上计算培训网络,只接受 "SubLabel" 输出:
获取输入图像上 "SubLabel" 输出类解码器的属性:
从随机采样中,选取网络为 "Label" 产生最高和最低熵预测的图像:
使用 NetMeasurements 检测网络两个输出的精度:
产生一个只计算 "SubLabel" 预测的子网络:
对单幅图像预测: