如何将多分辨率多码率PSNR数据转换为K-means聚类支持的输入格式
K-means特征输入问题解答
1. K-means是否支持对三维特征数据聚类?
常规K-means实现(比如scikit-learn提供的KMeans类)默认仅接受二维数组格式的输入,输入要求为[样本数量, 特征维度]的结构,本身不直接识别三维数组的输入格式。
但本质上K-means只要求每个样本对应一个一维的特征向量,并不限制特征的原始组织形式。你所说的“三维特征”只要可以展开为一维向量,就可以正常输入K-means计算,不存在原理层面的不支持。
2. 如何调整数据格式满足K-means的输入要求?
你当前的两个分辨率数组结构均为[样本数, 6](每行1个样本,每列对应1档码率的PSNR值),无需生成三维结构,直接水平拼接两个数组即可得到符合要求的二维输入:
# 水平拼接两个二维数组,输出结构为 (样本数, 12),每个样本包含1080P+720P共12个PSNR特征 combined_features = np.hstack((psnr_bitrate_1080, psnr_bitrate_720))
如果你的业务场景不需要用到单码率的PSNR细节,也可以先对每个样本的6档码率PSNR做统计特征提取(比如计算均值、方差、码率-PSNR拟合斜率等),再将两个分辨率的统计特征拼接后输入K-means,能降低特征维度减少冗余。
内容的提问来源于stack exchange,提问作者david
相关产品推荐
相关产品推荐

