EmilHvitfeldt / ISLR-tidymodels-labs

https://emilhvitfeldt.github.io/ISLR-tidymodels-labs/index.html
170 stars 69 forks source link

Chapter 12 Matrix Completion #33

Open jonthegeek opened 2 years ago

jonthegeek commented 2 years ago

https://emilhvitfeldt.github.io/ISLR-tidymodels-labs/unsupervised-learning.html#matrix-completion says "This section is WIP."

Is it actively in progress? I'm working on a presentation on that chapter for the R4DS ISLR book club, and I hope to sort out how to tidymodels-ify this part (if possible). I'd be happy to PR it if I figure it out, but it'd also be great to know if there's already something planned or in progress.

EmilHvitfeldt commented 2 years ago

There is currently no private progress on this! 😄

jonthegeek commented 2 years ago

Ok, good to know! I'll either PR it if I successfully figure it out, or reply here if I don't!

jonthegeek commented 2 years ago

Hmm. Implementing this in tidymodels appears to require a fair amount of dev work, and I'm not even sure which package such work would belong in (embed, maybe?).

I think I might actually have a use case at work where this algorithm would be useful, so I might still do that, but I wanted to check in in case you know of it already being implemented somewhere that I'm not seeing (I see you're all over the issue lists right now so maybe something will come to mind).

EmilHvitfeldt commented 2 years ago

The amount of work needed is partly why I haven't spend too much time working on this issue. I agree that it would make a good recipe step, but {embed} is properly not the place to go since that deals with a different type of problems

jonthegeek commented 2 years ago

I was thinking embed because of this thread: https://github.com/tidymodels/embed/issues/82

I hoped embed::step_pca_sparse() might be close enough to get this to work with some arguments, but that won't quite cover it.

So... I'm not going to implement this in the next week for the book club, but I'll mention this issue and see if anybody wants to do it or goad me into it 🙃

jonthegeek commented 2 years ago

I followed their paper trail and found this! https://cran.r-project.org/package=softImpute

That package implements both the technique described in the text and a better version they published in 2014.