绘制多标签直方图出现未指定异常颜色,是否存在隐藏数据?
问题:绘制数据集直方图出现未指定的颜色,是否存在隐藏数据?
我用以下Python代码绘制训练集(train_df)、验证集(val_df)、测试集(test_df)的直方图,用于检查数据分布:
def plot_train_test_hist(train_df, val_df,test_df,bins=1000, colname='exp_mean'): ''' Check distribution of train/test scores, sanity check that its not skewed''' plt.hist(train_df[colname].values,bins=bins,label='train',alpha=0.7) plt.hist(val_df[colname].values,bins=bins,label='val',alpha=0.5) plt.hist(test_df[colname].values,bins=bins,label='test',alpha=0.4) plt.legend() plt.xlabel(colname,fontsize=14) plt.ylabel("Count",fontsize=14) plt.suptitle("Histogram of dataset") plt.title('w/o masking in Log',size= 'small') plt.show()
绘图后出现了我未指定的颜色,怀疑是否存在隐藏数据导致该现象?附生成的直方图:
解答
这不是隐藏数据导致的,是Matplotlib的默认行为:
plt.hist在未指定color参数时,会自动使用Matplotlib内置的颜色循环序列,依次给每个直方图分配不同颜色,目的是区分不同数据集,属于正常现象。你图中的三个颜色分别对应train、val、test的图例,逻辑匹配,并非异常。如果想自定义颜色,只需在每个
plt.hist调用中添加color参数即可,示例:plt.hist(train_df[colname].values,bins=bins,label='train',alpha=0.7, color='#1f77b4') plt.hist(val_df[colname].values,bins=bins,label='val',alpha=0.5, color='#ff7f0e') plt.hist(test_df[colname].values,bins=bins,label='test',alpha=0.4, color='#2ca02c')若要验证是否存在隐藏数据,可以通过以下代码检查数据集的基本信息:
# 查看数据集样本数量 print(f"训练集样本数:{len(train_df)}, 验证集样本数:{len(val_df)}, 测试集样本数:{len(test_df)}") # 查看目标列的统计信息 print("训练集exp_mean列统计:\n", train_df['exp_mean'].describe()) print("验证集exp_mean列统计:\n", val_df['exp_mean'].describe()) print("测试集exp_mean列统计:\n", test_df['exp_mean'].describe())对比输出的样本数和统计值是否符合预期,即可确认数据是否存在异常。
内容的提问来源于stack exchange,提问作者Jin_soo
相关产品推荐
相关产品推荐

