Python 这是否为分类提供了一个良好的基线?
我读到的是,对于分类分类,你基本上可以使用你最受欢迎的分类的输出百分比作为基线。这是有意义的,因为您的模型可能只是默认为每次只猜测最流行的类别。假设这是真的,下面的代码是否完成了它应该完成的任务Python 这是否为分类提供了一个良好的基线?,python,keras,categorical-data,Python,Keras,Categorical Data,我读到的是,对于分类分类,你基本上可以使用你最受欢迎的分类的输出百分比作为基线。这是有意义的,因为您的模型可能只是默认为每次只猜测最流行的类别。假设这是真的,下面的代码是否完成了它应该完成的任务 # 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 sa
# 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
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\u val\u cat\u ct
时,首先对validation\u Y
中的所有元素求和,返回一个数字,然后尝试获取通常不存在的pop\u val\u cat\u ct
第个元素
要正确计算pop\u val\u cat\u ct
,应计算validation\u Y
等于pop\u train\u cat\u ind
的次数,并求和:
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\u Y==pop\u train\u cat\u ind
给出了一个与validation\u Y
长度相同的数组,其中填充了True或False。当求和时,它返回真值的数量(对于Python真=1和假=0),因此需要的计数
然后你就可以照你写的做了
# get the percentage compared to your total validation samples
baseline = pop_val_cat_ct / len(validation_Y)
要从列表或数组中获取最频繁的值,可以使用
scipy.stats
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\u val\u cat\u ct
时,首先对validation\u Y
中的所有元素求和,返回一个数字,然后尝试获取通常不存在的pop\u val\u cat\u ct
第个元素
要正确计算pop\u val\u cat\u ct
,应计算validation\u Y
等于pop\u train\u cat\u ind
的次数,并求和:
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\u Y==pop\u train\u cat\u ind
给出了一个与validation\u Y
长度相同的数组,其中填充了True或False。当求和时,它返回真值的数量(对于Python真=1和假=0),因此需要的计数
然后你就可以照你写的做了
# get the percentage compared to your total validation samples
baseline = pop_val_cat_ct / len(validation_Y)
我更新了我的答案以更好地解释它,我还注意到argmax部分也不起作用,所以我添加了第一部分我更新了我的答案以更好地解释它,我还注意到argmax部分也不起作用,所以我添加了第一部分