On 08/27/2016 02:19 PM, [email protected] wrote:
Can I update the libsvm version by myself?

2016-08-27 12:49 GMT+03:00 olologin <[email protected] <mailto:[email protected]>>:

    On 08/27/2016 12:33 PM, [email protected]
    <mailto:[email protected]> wrote:

    I have a project that is based on SVM algorithm implemented by
    libsvm <https://www.csie.ntu.edu.tw/%7Ecjlin/libsvm/>. Recently I
    decided to try several other classification algorithm, this is
    where scikit-learn <http://scikit-learn.org/> comes to the picture.

    The connection to the scikit was pretty straightforward, it
    supports libsvm format by |load_svmlight_file| routine. Ans it's
    svm implementation is based on the same libsvm.

    When everything was done, I decided to the check the consistence
    of the results by directly running libsvm and via scikit-learn,
    and the results were different. Among 18 measures in learning
    curves, 7 were different, and the difference is located at the
    small steps of the learning curve. The libsvm results seems much
    more stable, but scikit-learn results have some drastic fluctuation.

    The classifiers have exactly the same parameters of course. I
    tried to check the version of libsvm in scikit-learn
    implementation, but I din't find it, the only thing I found was
    libsvm.so file.

    Currently I am using libsvm 3.21 version, and scikit-learn 0.17.1
    version.

    I wound appreciate any help in addressing this issue.


    |size libsvm scikit-learn 1 0.1336239435355727 0.1336239435355727
    2 0.08699516468193455 0.08699516468193455 3 0.32928301642777424
    0.2117238289550198 #different 4 0.2835688734876902
    0.2835688734876902 5 0.27846766962743097 0.26651875338163966
    #different 6 0.2853854654662907 0.18898048915599963 #different 7
    0.28196058132165136 0.28196058132165136 8 0.31473956032575623
    0.1958710201604552 #different 9 0.33588303670653136
    0.2101641630182972 #different 10 0.4075242509025311
    0.2997807499800962 #different 15 0.4391771087975972
    0.4391771087975972 20 0.3837789445609818 0.2713167833345173
    #different 25 0.4252154334940311 0.4252154334940311 30
    0.4256407777477492 0.4256407777477492 35 0.45314944605858387
    0.45314944605858387 40 0.4278633233755064 0.4278633233755064 45
    0.46174762022239796 0.46174762022239796 50 0.45370452524846866
    0.45370452524846866|



    _______________________________________________
    scikit-learn mailing list
    [email protected] <mailto:[email protected]>
    https://mail.python.org/mailman/listinfo/scikit-learn
    <https://mail.python.org/mailman/listinfo/scikit-learn>

    This might be because current version of libsvm used in scikit is
    3.10 from 2011. With some patch imported from upstream.

    _______________________________________________ scikit-learn
    mailing list [email protected]
    <mailto:[email protected]>
    https://mail.python.org/mailman/listinfo/scikit-learn
<https://mail.python.org/mailman/listinfo/scikit-learn>
_______________________________________________
scikit-learn mailing list
[email protected]
https://mail.python.org/mailman/listinfo/scikit-learn

I don't think it is so easy, version which is used in scikit-learn has many additional modifications.

from header of svm.cpp: /* Modified 2010: - Support for dense data by Ming-Fang Weng - Return indices for support vectors, Fabian Pedregosa <[email protected]> - Fixes to avoid name collision, Fabian Pedregosa - Add support for instance weights, Fabian Pedregosa based on work by Ming-Wei Chang, Hsuan-Tien Lin, Ming-Hen Tsai, Chia-Hua Ho and Hsiang-Fu Yu, <http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/#weights_for_data_instances>. - Make labels sorted in svm_group_classes, Fabian Pedregosa. */

_______________________________________________
scikit-learn mailing list
[email protected]
https://mail.python.org/mailman/listinfo/scikit-learn

Reply via email to