gpt4 book ai didi

python - 这是否为我的分类分类提供了良好的基线?

转载 作者:太空宇宙 更新时间:2023-11-03 20:41:31 24 4
gpt4 key购买 nike

我正在阅读,对于分类分类,您基本上可以使用最受欢迎的类别的输出百分比作为基准。这是有道理的,因为您的模型可能每次都会默认猜测最流行的类别。鉴于这是真的,下面的代码是否完成了它应该做的事情?

# get the index of the most popular category in your training outputs
pop_train_cat_ind = np.argmax(np.sum(train_Y, axis=0))

# get the count of that same category in your validation ouputs
pop_val_cat_ct = np.sum(validation_Y, axis=0)[pop_train_cat_ind]

# get the percentage compared to your total validation samples
baseline = pop_val_cat_ct / len(validation_Y)

最佳答案

要从列表或数组中获取最频繁的值,您可以使用 scipy.stats 中的 mode 函数

import numpy as np
from scipy.stats import mode
train_Y=[1,7,3,4,6,4]
pop_train_cat_ind=mode(train_Y).mode[0]
print(pop_train_cat_ind)

您使用的 argmax 函数不是您想要做的,因为它没有获得最频繁的值,而是获得了 train_Y 具有最大值的索引(使用 train_Y=[1 ,7,3,4,6,4] 它将返回 1)

当您计算 pop_val_cat_ct 时,您首先对 validation_Y 中的所有元素求和,这会返回一个数字,然后您尝试获取 pop_val_cat_ct >第一个元素,通常不存在。

要正确计算 pop_val_cat_ct,您应该计算 validation_Y 等于 pop_train_cat_ind 和 sum 的次数:

validation_Y=[1,8,4]
# get the count of that same category in your validation ouputs
pop_val_cat_ct = np.sum(validation_Y==pop_train_cat_ind)

validation_Y==pop_train_cat_ind 给出一个与 validation_Y 长度相同的数组,填充 True 或 False。当您求和时,它会返回 True 值的数量(对于 Python True=1 和 False=0),即您需要的计数。

然后你就可以按照你写的做

# get the percentage compared to your total validation samples
baseline = pop_val_cat_ct / len(validation_Y)

关于python - 这是否为我的分类分类提供了良好的基线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56836897/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com