你是一家电子商务公司的数据分析师、负责构建产品推荐系统。为了提高推荐的准确性,你决定使用度量学习(Metric Learning)来学习一个能够反映产品之间相似度的距离函数。你的目标是实现一个度量学习算法,根据产品的特征数据计算样本之间的距离矩阵,用于推荐系统中。
请你编写一个程序,使用 Python 和 NumPy 库,对给定的产品特征数据集,基于有监督的度量学习算法实现马哈拉诺比斯距离(Mahalanobis Distance)。具体要求如下:
1.读取输入数据集,包含 (N) 个样本,每个样本有 (M) 个特征,以及对应的类别标签。
2.计算类内和类间散度矩阵:
已知一个包含 N 个样本、每个样本有 M 个特征以及对应的类别标签的数据集。要求基于有监督的度量学习算法(即线性判别分析 LDA 的思想),计算样本之间的距离矩阵,并按照如下步骤进行:
读取数据
输入包含第一行两个整数 N 和 M,接下来 N 行每行包含 M+1 个数,其中前 M 个为特征值,最后一个为类别标签。
计算类内和类间散度矩阵