【发布时间】:2019-05-15 21:53:59
【问题描述】:
我有一个二元分类问题,我想用 RandomForestClassifier 解决这个问题。我的目标列是“成功”,即 0 或 1。我想调查数据,看看它的样子。为此,我尝试按类别计算图。但这并不是说“成功”占总数的百分比是多少(即成功 == 1)
如何更改以下图,以便这些子图显示(成功 == 1)占所有帖子的百分比? (假设在工作日类别中,在“星期六”日我有 10 个数据点,其中 7 个是成功的(“成功”== 1),所以我想在当天有一个点为 0.7 的条形图。
这是实际的情节(计数:-/):
这是我的数据框的一部分:
这是用于生成实际绘图的实际代码:
# Plot
sns.set(style="darkgrid")
x_vals = [['page_name', 'weekday'],['type', 'industry']]
subtitles = [['by Page', 'by Weekday'],['by Content Type', 'by Industry']]
fig, ax = plt.subplots(2,2, figsize=(15,10))
#jitter = [[False, 1], [0.5, 0.2]]
for j in range(len(ax)):
for i in range(len(ax[j])):
ax[j][i].tick_params(labelsize=15)
ax[j][i].set_xlabel('label', fontsize=17, position=(.5,20))
if (j == 0) :
ax[j][i].tick_params(axis="x", rotation=50)
ax[j][i].set_ylabel('label', fontsize=17)
ax[j][i] = sns.countplot(x=x_vals[j][i], hue="successful", data=mainDf, ax=ax[j][i])
for j in range(len(ax)):
for i in range(len(ax[j])):
ax[j][i].set_xlabel('', fontsize=17)
ax[j][i].set_ylabel('count', fontsize=17)
ax[j][i].set_title(subtitles[j][i], fontsize=18)
fig.suptitle('Success Count by Category', position=(.5,1.05), fontsize=20)
fig.tight_layout()
fig.show()
PS:请不要,我正在使用 Seaborn。如果可能的话,解决方案也应该使用 Seaborn。谢谢!
【问题讨论】:
标签: python pandas matplotlib plot seaborn