[SOLVED] Extract weight-table from libSVM-model by javascript

xDSticker
xDSticker New Altair Community Member
edited November 5 in Community Q&A
Hallo Dataminers,

is there any way to extract the weighttable from model? I mean, i can see the table in RM but can't use is for further calculations?

I allready tried it by myself with the "execute script"-operator but stuck after a few lines of Java.
import com.rapidminer.operator.learner.functions.kernel.JMySVMModel;

JMySVMModel model = input[0];

return model.createWeightsTable();
I saw that some other people had the same problem but there isn't a good solution right now. It would be great if someone could help me out.

Thank you for help :)
Tagged:

Answers

  • MariusHelf
    MariusHelf New Altair Community Member
    Is there a reason why you use the libSVM instead of RapidMiner's SVM? You could make your life easier by using the standard Support Vector Machine operator and connect to the weights output.

    Best regards,
    Marius
  • xDSticker
    xDSticker New Altair Community Member
    Jep, there is a reason.

    We allready working with the Standard SVM but now I wanna try out the LibSVM.

    It would be realy great if someone could help me.

    Sticker
  • MariusHelf
    MariusHelf New Altair Community Member
    Ok, the problem is that model.createWeightTable() creates a DataTable. To use it in RapidMiner, you have to convert it into an ExampleSet. Here you go:
     import com.rapidminer.operator.learner.functions.kernel.LibSVMModel;
    import com.rapidminer.datatable.DataTable;
    import com.rapidminer.datatable.DataTableExampleSetAdapter;

    LibSVMModel model = input[0];

    DataTable table = model.createWeightsTable();

    return DataTableExampleSetAdapter.createExampleSetFromDataTable(table);
  • xDSticker
    xDSticker New Altair Community Member
    Thank you very much for your help.

    But it dosnt work if I use the class LibSVMModel. I use JMySVMModel instead.

    So if someone wanna extract the Model from LibSVM, feel free to use this code :
    import com.rapidminer.operator.learner.functions.kernel.JMySVMModel;
    import com.rapidminer.datatable.DataTable;
    import com.rapidminer.datatable.DataTableExampleSetAdapter;

    JMySVMModel model = input[0];

    DataTable table = model.createWeightsTable();

    return DataTableExampleSetAdapter.createExampleSetFromDataTable(table);
    See you soon ;)