gpt4 book ai didi

python - LinearSVC 无法使用均值差进行分类

转载 作者:行者123 更新时间:2023-11-30 09:56:19 27 4
gpt4 key购买 nike

我有两组模式,其中有一个补丁,两个模式之间的平均值显着不同(由 t 检验给出 [值为 t-vals])。此处,第一组的平均值为 1±0.1,第二组的平均值为 2±0.1平均差异约为 1。 b>

enter image description here

我正在尝试在网格上运行“探照灯”分类器,以使用模式分类来识别此补丁,而不是对每个像素进行 t 测试。探照灯在网格周围移动,根据每个 3x3 像素正方形的值训练和测试唯一的分类器 (LinearSVC)。因此,存在一些“渗漏”,这是正常的,也是可以预料的。

enter image description here

但是,当我将均值增加到 5±0.16±0.1 时,探照灯分类器会严重失败,尽管均值差异仍然是大约1

enter image description here

1)为什么这个分类器无法使用均值差来进行区分?

2) 为什么当均值较小时,此方法对于均值差为 1 有效,但当均值稍高时则不起作用?

最佳答案

看来此问题可能是由于 LibLinear 的实现细节造成的:sklearn 估计器 LogisticRegression , LinearSVCLinearSVR都基于这个库,并且似乎都共享相同的“功能”:

处罚1 / C不仅适用于估计的权重向量,还适用于截距。这意味着即使点云完全可分离,远离原点的数据也可能变得难以分类:截距根本没有设置在正确的位置,并且往往会被拉向零。在您的特定情况下,如果截距拉至低于较低激活值,则分类将停止工作。

有几种方法可以解决这个问题,各有优点和缺点:

1) 为LinearSVC选择一个非常低的惩罚。 ,例如LinearSVC(C=1000) (或C更高)

2) 使用SVC(kernel="linear")并陷入高样本复杂性的典型核方法问题(即样本数量至少是二次方,可能是三次方)

3) 在使用估计器之前将数据居中,例如与 sklearn.preprocessing.StandardScaler

关于python - LinearSVC 无法使用均值差进行分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27414702/

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