Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中libsvm的预测模型分析_Python_Machine Learning_Libsvm - Fatal编程技术网

python中libsvm的预测模型分析

python中libsvm的预测模型分析,python,machine-learning,libsvm,Python,Machine Learning,Libsvm,关于在python中使用libsvm的两个问题: 我怎么知道这个问题是否可行 如何获得原始变量(w和偏移量b) 我使用一个简单的例子,考虑二维空间中的4个训练点(用*表示): *----* | | | | *----* 我用C_SVC公式和线性核训练SVM,我将4个点分为两个标签[-1,+1] 例如,当我像这样设置训练点时,它应该找到一个分离的超平面 {-1}----{+1} | | | | {-1}----{+1} 但对于这个非线性问题,它不应该能够

关于在python中使用libsvm的两个问题:

  • 我怎么知道这个问题是否可行
  • 如何获得原始变量(w和偏移量b)
  • 我使用一个简单的例子,考虑二维空间中的4个训练点(用*表示):

    *----*
    |    |
    |    |
    *----*
    
    我用C_SVC公式和线性核训练SVM,我将4个点分为两个标签[-1,+1]

    例如,当我像这样设置训练点时,它应该找到一个分离的超平面

    {-1}----{+1}
     |       |
     |       |
    {-1}----{+1}
    
    但对于这个非线性问题,它不应该能够找到一个分离的超平面(因为线性核)

    我希望能够发现这个案子


    第二个示例的示例代码:

    from svmutil import *
    import numpy as np
    
    y = [1, -1, 1, -1]
    x = [{1:-1, 2 :1}, {1:-1, 2:-1}, {1:1, 2:-1}, {1:1, 2:1}]
    
    prob  = svm_problem(y, x)
    param = svm_parameter()
    param.kernel_type = LINEAR
    param.C = 10
    
    m = svm_train(prob, param)
    
    样本输出:

    optimization finished, #iter = 21
    nu = 1.000000
    obj = -40.000000, rho = 0.000000
    nSV = 4, nBSV = 4
    Total nSV = 4
    

    对C的指数网格运行交叉验证,如线性核SVM上的中所述。如果训练集准确度永远无法接近100%,这意味着线性模型对数据的偏差太大,这反过来意味着线性假设是错误的(数据不是线性可分离的)


    顺便说一句,测试集精度是对模型泛化能力的真实评估,但它测量了偏差和方差之和,因此不能直接用于测量偏差。训练集和测试集精度之间的差异度量模型的方差或过度拟合。有关错误分析的更多信息,请参见在线课程中总结的实用技巧和窍门。

    不确定这是否有帮助-在我使用的Matlab中找到权重向量
    (m.sv_coef'*full(m.SVs))
    optimization finished, #iter = 21
    nu = 1.000000
    obj = -40.000000, rho = 0.000000
    nSV = 4, nBSV = 4
    Total nSV = 4