虽然我或多或少熟悉 SVM 的概念,但我不理解dual参数的含义,文档中将其描述为:
dual : bool, (default=True)
Select the algorithm to either solve the dual or primal optimization problem.
Prefer dual=False when n_samples > n_features.
有人可以解释一下吗,最好是 ELI5 风格?
虽然我或多或少熟悉 SVM 的概念,但我不理解dual参数的含义,文档中将其描述为:
dual : bool, (default=True)
Select the algorithm to either solve the dual or primal optimization problem.
Prefer dual=False when n_samples > n_features.
有人可以解释一下吗,最好是 ELI5 风格?
ELI5 风格,我们开始吧。
Kidwarts 是一所世界著名的魔法幼儿园,专为 5 岁的天才巫师而设。孩子们一天中的大部分时间都在一个大厅里玩耍,大厅里到处都是毛茸茸的小狗、神奇的跷跷板、跳椅、小飞毯(使用儿童认可的魔杖远程控制),以及所有其他人可以玩的很酷的玩具甚至想象。每个孩子在大厅里都有他们最喜欢的地方,他们通常会在那里度过大部分时间,抚摸他们最喜欢的小狗或在他们最喜欢的跳椅上跳跃。
一个阳光明媚的星期二早晨,蓬松小姐(幼儿园的主管)将一面巨大的魔镜带到了游戏厅的中心。镜子有两张脸。如果从一侧照镜子,他们会看到满是美丽的彩虹小马在草地上跳跃。从另一面看,镜子展示了勇敢的年轻巫师骑龙与邪恶女巫战斗的英雄寓言。显然,如果镜子在房间里的方向最好是这样,“小马”的脸会转向大多数女孩玩耍的地方,而“龙”的脸则可以被男孩们主要观察到。 . 大家都知道,5岁女孩喜欢小马,男孩喜欢龙!
然而,这不是一件容易的事。虽然很多男孩确实大多在大厅的角落里挂着飞毯,而很多女孩更喜欢带着小狗的角落,但一群孩子四处散布,如果镜子被放置,可能会变得不开心并开始用神奇的眼泪哭泣对他们不利。蓬松小姐一整天都在努力寻找镜子的最佳位置。
她是这样做的。首先,她将镜子悬停在房间的正中央,转向一个有点随意的方向。然后,她等待并观察有哪些孩子开始哭泣,因为他们不喜欢镜子展示给他们的东西。根据这些信息,她将镜子轻轻推向最不快乐的孩子,这样他们就能看到更多自己喜欢的一面(或更少的“坏”一面)。经过一整天的轻推后,镜子似乎已经收敛到或多或少的最佳方向,只有几个孩子不开心。毛绒绒小姐姐给他们送了几块美味的魔法糖,所以他们还是很开心的!
晚上,蓬松小姐很兴奋地把镜子里的故事告诉她的朋友小狗爪先生。“啊,我会做不同的事情的,”小狗爪先生说,用手指转动着他华丽的小胡子。我的方法如下:我会先在房间里挑选两个孩子,让他们决定他们最喜欢的镜子方向。然后我会看看其他孩子中谁抱怨镜子,将他们添加到团队中,让新团队再次共同决定。如果此时还有不开心的孩子,我会继续将他们加入“理事会”,让他们找到适合每个人的折衷方案。因此,我们最终会遇到这样的情况,即决定镜子的配置恰好满足关心它的孩子群体,而那些没有意见的人则不必被打扰。这将是超级公平的,不是吗?
蓬松小姐同意了,但指出她的方法最后也似乎完全公平。他们相亲相爱,从此过上了幸福的生活。结束。
在这个故事中,蓬松小姐正在解决最初的问题。也就是说,她在寻找方向直接照镜子。相反,小狗爪先生以一种迂回的、双重的方式前进。他假设我们总能计算出方向通过让每个孩子对他们的偏好进行投票,并汇总这些投票:
在哪里 是孩子最喜欢的位置 和 是投票(这将是 如果孩子不在乎,如果孩子更喜欢镜子的一面,则为正面,否则为负面)。因此,小狗爪先生的问题不在于找到最佳方向 直接,而是找出“投票”的向量 (从哪个方向 可以直接推导出来)。你也可以说他的主要问题是找到投票非零的孩子的一个子集 - 这些将是“支持向量”。
什么时候 只是一个二维向量,而且孩子的数量很大,就像在原始故事中一样,Fluffypuff小姐的方法可能是最好的。跟踪镜子的二维方向比管理数百个“投票”列表或找出“关心的孩子”的适当子集要简单。
然而,如果只有一两个孩子,不如直接问他们,而不是玩这种“照镜子”的游戏。类似地,如果镜子有一百万个不同的旋钮需要配置,那么让一百个孩子简单地对他们的喜好进行投票会更容易(假设每个孩子都清楚什么百万旋钮配置最适合他),而不是而不是以微小的增量仔细调整这些旋钮,检查每次变化后谁开始哭泣。
不过,最终,这两种方法中的任何一种都会产生相同的结果。