【问题标题】:Python scikits learn - Separating Hyperplane equationPython scikits 学习 - 分离超平面方程
【发布时间】:2012-06-12 19:36:33
【问题描述】:

分离超平面的方程是W.X + b = 0

对于support vector machine in scikit-learn,分离超平面是如何导出的? 'a' 和 'w' 是什么意思?

【问题讨论】:

    标签: python geometry machine-learning scikits scikit-learn


    【解决方案1】:

    在 scikit-learn 中,coef_ 属性包含线性模型的分离超平面的向量。如果n_classes > 1(多类one-vs-all),则形状为(n_classes, n_features),二进制分类为(1, n_features)

    在这个玩具二元分类示例中,n_features == 2,因此w = coef_[0] 是与超平面正交的向量(超平面完全由它定义 + 截距)。

    要在 2D 情况下绘制此超平面(2D 平面的任何超平面都是 1D 线),我们希望找到 f,如 y = f(x) = a.x + b。在这种情况下,a 是直线的斜率,可以通过 a = -w[0] / w[1] 计算。

    【讨论】:

    • 为什么是 a = -w[0] / w[1] ?为了找到 b,我们为什么要计算 - (clf.intercept_[0]) / w[1]。不应该b = clf.intercept_[0]吗?
    • 这只是一个简单的问题,将超平面的通用 n 维参数化切换到线的 2D 特定方程 y = a.x + b:通用 w_0 x + w_1 y + w_3 = 0 可以重写 y = - (w_0 / w_1) x + (w_3 / w_1)
    • s/切换到/切换自/
    • 最后的表达式应该是:y = - (w_0 / w_1) x - (w_3 / w_1) 但是stackoverflow不允许编辑旧的cmets。
    • 感谢您的回答。我现在明白了。
    猜你喜欢
    • 2016-12-04
    • 2012-03-27
    • 2012-11-16
    • 2012-05-05
    • 2023-03-26
    • 2013-06-02
    • 1970-01-01
    • 2017-04-26
    • 2018-06-10
    相关资源
    最近更新 更多