python - 如何规范化特征和样本?
问题描述
我正在实现基于直方图、HOG 和局部二进制模式的特征提取的基于内容的图像检索 (CBIR)。这些(标准化)特征提取中的每一个都单独存储在csv
文件中,以在进一步的步骤中计算距离。该文件如下所示:
img_ID0, 0.0, 0.0, 0.0, 0.4, 0.1, ...
img_ID1, 0.0, 0.1, 0.0, 0.2, 0.1, ...
img_ID2, 0.2, 0.0, 0.0, 0.4, 0.0, ...
我ndarray
沿着整个展平的阵列展平和归一化。哪个应该是样本标准化(我不确定,所以请纠正我)
现在,基于特征的标准化会是什么样子?特别是如果我真的没有“命名”列?我应该沿着(未展平的)图像标准化还是稍后在所有图像的展平阵列上按列标准化?
文献只是说,特征明智是常用的,但它仍然取决于应用程序。CBIR 似乎对此非常模糊。
解决方案
假设您的数据在任何规范化之前看起来像这样:
img_ID0, feat1_val, feat2_val, feat3_val,...
img_ID1, feat1_val, feat2_val, feat3_val,...
img_ID2, feat1_val, feat2_val, feat3_val,...
每行是一个新图像(=样本),每一列是一个特征。在这种情况下,按样本归一化将沿每一行归一化(“与样本 N 的特征 Y 相比,特征 X 的相对值是多少?”),而按特征归一化将沿每一列进行归一化(“特征 X 的相对值是多少?与样本 M 相比,样本 N 的特征 X?”)。
像您一样在标准化之前展平数组将是另一种标准化。另请参阅https://stats.stackexchange.com/questions/354774/should-i-normalize-featurewise-or-samplewise
推荐阅读
- twilio - 如何以编程方式在自定义聊天频道上停止 Twilio Autopilot 对话?
- python - 如何用最小的modbus读取数字计数器的寄存器
- c# - 使用字符串从子类列表中选择默认构造函数
- arrays - 指向字符数组的指针并传递给二维字符数组函数参数
- struct - 初始化 Rust 结构的问题
- ios - 布局指南与自动布局约束有冲突
- vue.js - 使用 vuejs 从模型中绑定超链接路径的正确方法是什么
- react-native - 如何在 react native expo 应用程序中禁用 firebase reCAPTCHA?
- discord.js - 嵌入的角色声明消息
- css - 这是什么境界?