【Deep-ML系列】Calculate Covariance Matrix (协方差)

题目链接:Deep-ML

不使用numpy数组来完成计算:

def calculate_covariance_matrix(vectors: list[list[float]]) -> list[list[float]]:
    # 转置矩阵
    # vectors = [[vectors[j][i] for j in range(len(vectors))] for i in range(len(vectors[0]))]
    n = len(vectors[0])
    p = len(vectors)

    # 计算每个特征的平均值
    M = [sum(feature) / n for feature in vectors]

    # 计算中心化后的矩阵 B
    B = [[vectors[i][j] - M[i] for j in range(n)] for i in range(p)]

    # 计算 B 的转置
    B_T = [[B[j][i] for j in range(p)] for i in range(n)]

    # 计算协方差矩阵
    covariance_matrix = [[sum(B[i][k] * B_T[k][j] for k in range(n)) / (n - 1) for j in range(p)] for i in range(p)]

    return covariance_matrix


if __name__ == '__main__':
    print(calculate_covariance_matrix([[1, 2, 3], [4, 5, 6]]))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值