如何解决如何在python中以两种不同颜色显示来自两个标签0,1的数值?
我目前正在研究二元 SVM 分类器。为了可视化分类器的工作原理,我想创建一个概率密度函数直方图(使用 scikit 计算),显示单个数据点的标量(无论它属于 0 类还是 1 类)。
请注意,在 SVM 中,分类器的“切割边缘”是 -1 和 1。该图很好地描绘了在 [-1,1] 处存在一些决策边界。
回到我的问题: 我想分别为标签 0 和 1 的数据点着色 以分析软边距(-1 和 1 之间的区域)
概率密度函数存储为np.array 相应的标签存储在 Pandas 数据帧中。
如何将类别 0 的数值绘制在即“绿色”和类别 1 中绘制为“蓝色”的数组和数据框联系起来?
代码:
plt.hist(decisions_function_cv,bins=500,color='navy')
我试图将两者保存在同一个数据帧中,但我无法解密我如何以上述预期方式将其编程到决策函数中:(
编辑:示例代码:
probab 的标量。事实。
np.array([.5,0.6,1,-1,-.5,-0.6])
带有相应标签的风格化数据框:
df['labels']
0 1.0
1 1.0
2 1.0
3 1.0
4 1.0
5 1.0
6 0.0
7 0.0
8 1.0
9 1.0
*类别 1 的数值应绘制为蓝色
类别 0 的数值应以绿色绘制
解决方法
使用 seaborn
,您可以轻松构建复杂的 pyplot
图表。
首先,我们重建您的数据框:
import pandas as pd
import numpy as np
df = pd.DataFrame()
df['values'] = np.array([.5,0.6,1,-1,-.5,-0.6])
df['category'] = [1.0,1.0,0.0,1.0]
print(df)
values category
0 0.5 1.0
1 0.6 1.0
2 1.0 1.0
3 1.0 1.0
4 1.0 1.0
5 -1.0 1.0
6 -1.0 0.0
7 -1.0 0.0
8 -0.5 1.0
9 -0.6 1.0
然后我们使用您的数据集并使用“类别”列配置颜色(hue
参数)(请注意,您定义的调色板独立于实际值):
import seaborn as sns
import matplotlib.pyplot as plt
sns.set_style('whitegrid')
sns.histplot(
data=df,x="values",hue="category",palette=['green','blue']
)
这将打印以下结果:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。