美文网首页
使用Python计算数据集中不同维度下的方差和 JS 散度

使用Python计算数据集中不同维度下的方差和 JS 散度

作者: 价值INVEST | 来源:发表于2023-05-29 19:01 被阅读0次

在数据挖掘领域中,我们经常需要衡量不同维度之间的差异或相似度。为了实现这一目标,通常需要使用各种方法来计算两个样本之间的差异。例如,KS 检验和相对熵等方法可以用于连续变量的比较。

本文将介绍如何使用 Python 和 Pandas 库来计算数据集中不同维度下的方差和 JS 散度,以评估各维度变化的波动大小。

代码实现:

首先,定义一个函数 JS_divergence() 来计算两个分布之间的 JS 散度:

import scipy.stats as ss

def JS_divergence(p, q, base):
    M = (p+q)/2
    return 0.5 * ss.entropy(p, M, base=base) + 0.5 * ss.entropy(q, M, base=base)

接下来,定义一个函数 compute_metrics() 来计算指定维度下的方差和 JS 散度:

import pandas as pd
import numpy as np

def compute_metrics(df, dim):
    var = np.var(df.query(f"dimension == '{dim}'")['pred'] - df.query(f"dimension == '{dim}'")['actual'])
    js_div = JS_divergence(df.query(f"dimension == '{dim}'")['pred'], df.query(f"dimension == '{dim}'")['actual'], 2)
    
    return [var, js_div]

然后,我们将数据存储在一个 Pandas 数据框中,并使用上述函数 compute_metrics() 对每个维度计算方差和 JS 散度:

lists = [['分发模块','精选', 100000,85000]
        ,['分发模块','关注', 20000,10000]
        ,['分发模块','发现', 1000,1500]
        ,['用户分类','儿童', 2000,2000]
        ,['用户分类','青年', 30000,19500]
        ,['用户分类','中年', 69000,50000]
        ,['用户分类','老年', 20000,25000]
      ]

df = pd.DataFrame(lists, columns=['dimension', 'indicator', 'pred', 'actual'])

# 计算方差和 JS 散度
metrics = {}
for dim in df['dimension'].unique():
    metrics[dim] = compute_metrics(df, dim)

print(pd.DataFrame(metrics, index=['Var', 'JS_Div']))

最后,我们得到了各维度下的方差和 JS 散度指标。

总结:

本文介绍了如何使用 Python 和 Pandas 库计算数据集中不同维度下的方差和 JS 散度。这些指标可以用于评估各维度变化的波动大小,从而实现异常维度挖掘和数据分析等目的。希望对大家有启发!

本文由mdnice多平台发布

相关文章

  • 协方差和协方差矩阵

    均值与方差 均值:方差:均值、方差和标准差可用于描述数据的集中趋势和离散程度。 协方差 方差一般用来描述一维数据,...

  • NumPy库

    数据维度的Python表示 数据维度是数据的组织形式 NumPy是一个开源的Python科学计算基础库,包含: •...

  • 十七、投资组合收益和收益的方差

    投资组合收益和收益的方差 投资组合收益 公式: 。 实例:一个投资组合的收益计算image 使用python计算i...

  • 2020机器学习GAN(WGAN) (9)

    我们之前都用 JS 散度来衡量两笔数据之间差异,今天我们就来先讨论一下 JS 散度作为衡量工具是否合适的问题。我们...

  • 8.数据降维--LDA线性判别

    一、线性判别的原理 自己手动计算 第一步计算总的散度矩阵,协方差 St :scatter total 第二步 计算...

  • 方差-标准差-标准分(z分)

    引入方差和标准差,主要是为了更加精确地度量数据的变异性,也就是集中程度,由于它们使用了数据集中的每个数据,因此更加...

  • Python 单因素方差分析

    本文目的不是讲方差分析数学理论,而是如何使用Python对数据方差分析 单因素方差分析(one-way ANOVA...

  • 描述统计学相关概念笔记整理

    数据描述的数值方法: 集中趋势· 均值· 中位数· 众数 离散程度· 极差· 方差 分布的形状· 偏度· 峰度 集...

  • R语言实现统计推断,T检验方差分析相关分析卡方检验

    计算不同样本类型的T置信区间 配对样本T置信区间,使用自带的sleep数据: 使用函数的方法 同方差独立组的T置信...

  • 图片查重

    OpenCV—python 图像相似度算法(dHash,方差)

网友评论

      本文标题:使用Python计算数据集中不同维度下的方差和 JS 散度

      本文链接:https://www.haomeiwen.com/subject/cttsedtx.html