【scipy】rankdata()函数详解

该文展示了如何使用PyTorch库的torch.tensor和NumPy的np.array来实现数据排名。具体操作是调用scipy.stats的rankdata函数,采用dense方法对等值数据进行排名,结果分别是torchtensor和numpy数组。
部署运行你感兴趣的模型镜像
import torch
import numpy as np
from scipy.stats import rankdata

a=torch.tensor([0, 2, 3, 2])
b=np.array([0, 2, 3, 2])

rankdata(a, method='dense')#tensor
rankdata(b, method='dense')#numpy都行
array([1, 2, 3, 2], dtype=int32)

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

5、Friedman检验和Nemenyi后续检验 交叉验证t检验和McNemar检验只适用于两两比对,当要比对多个算法的学习器的时候,显然将算法两两比对太麻烦了,所以引入一种可以在同一组数据集上对多个算法进行比对的检验方法。 F检验法的基本思想是在同一组数据集上,根据测试结果对学习器的性能进行排序,赋予序值1,2,3…,相同则平分序值,如下图所示: 性能越好,赋予的值就越小,然后计算出每个算法在各个数据集上的平均序值 r i r_i r i ​ ; 这里需要注意,表中的数据只是一个特例,有了这个平均序值并不能完全说明序值小的算法一定更好,因为针对不同的数据集,也许A算法会不如B算法,而且两种学习器在同一个数据集上也可能会有相似的结果,所以我们需要用一个估计阈值,来判定哪个算法更加好。 假设在N个数据集上比较k个算法, r i r_i r i ​ 的均值和方差分别是 ( k + 1 ) / 2 (k+1)/2 (k+1)/2和 ( k 2 − 1 ) / 12 N (k^2-1)/12N (k 2 −1)/12N,得到分布函数(推导过程略): T X 2 = 12 N k ( k + 1 ) ( ∑ i = 1 k r i 2 − k ( k + 1 ) 2 4 ) T F = ( N − 1 ) T X 2 N ( k − 1 ) − T X 2 T_{X^2}=\frac{12N}{k(k+1)}(\sum_{i=1}^{k}r_i^2-\frac{k(k+1)^2}{4}) \\ \\ T_F=\frac{(N-1)T_{X^2}}{N(k-1)-T_{X^2}} T X 2 ​ = k(k+1) 12N ​ ( i=1 ∑ k ​ r i 2 ​ − 4 k(k+1) 2 ​ ) T F ​ = N(k−1)−T X 2 ​ (N−1)T X 2 ​ ​ T X 2 T_{X^2} T X 2 ​ 为原始Friedman检验分布函数, T F T_F T F ​ 为F检验分布函数;这个算法中,西瓜书明确的给了一个临界值表: 是否可接受的检验仍然同上。 如果所有算法的性能相同这个假设被拒绝了,则需要进行后续检验,来对算法做一个
05-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值