skent259 / mildsvm

Multiple Instance Learning with Distributions, SVM

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Add dual method to `omisvm()` function

skent259 opened this issue · comments

Two options for adding the dual:

  1. Transform data with data replication, then pass down to misvm() method
  • Pro: Uses current code
  • Pro: Should require fewer tests
  • Con: can't figure out how to handle quick kernel computations. Current data rep functions directly replicate the kernel, which is fast, but I need to figure out how to do this on new predictions.
  • Con: the way code was set up requires a few "hacks", especially in scaling
  1. Write a new dualqp fit and model function in the omisvm case that solves the modified problem
  • Pro: I have the formulation mostly figured out
  • Con: Still need to figure out what the objective looks like
  • Pro: could re-use some of the lower level code
  • Con: con't figure out how to handle quick kernel computations on new data

The key barrier is the kernel computation. There might be a nice way to do this if selected is consistent and can be recovered from the original x matrix?

Implemented with #44

Lingering issues:

  • The performance doesn't look super great using the dual. Perhaps after data replication this problem is harder to solve. I'm not 100% sure why this happens though. Tried adding weights to help.
  • The function takes a long time on medium sized datasets. This can be alleviated with the s parameter, though performance drops from some basic testing (this is expected).

Fixed performance lingering issue with #51