Posts

Animating Random Projections of High Dimensional Data

Image
Recently Jake showed some pretty cool videos in his blog . This inspired me to go back to an idea I had some time ago, about visualizing high-dimensional data via random projections. I love to do exploratory data analysis with scikit-learn , using the manifold , decomposition and clustering module. But in the end, I can only look at two (or three) dimensions. And I really like to see what I am doing.

Recap of my first Kaggle Competition: Detecting Insults in Social Commentary [update 3]

Image
Recently I entered my first kaggle competition - for those who don't know it, it is a site running machine learning competitions. A data set and time frame is provided and the best submission gets a money prize, often something between 5000$ and 50000$. I found the approach quite interesting and could definitely use a new laptop, so I entered Detecting Insults in Social Commentary. My weapon of choice was Python with scikit-learn - for those who haven't read my blog before: I am one of the core devs of the project and never shut up about it.

Scikit-learn 0.12 released

Last night I uploaded the new version 0.12 of scikit-learn to pypi . Also the updated website is up and running and development now starts towards 0.13 . The new release has some nifty new features ( see whatsnew ): * Multidimensional scaling * Multi-Output random forests ( like these ) * Multi-task Lasso * More loss functions for ensemble methods and SGD * Better text feature extraction

Segmentation Algorithms in scikits-image

Image
Recently some segmentation and superpixel algorithms I implemented were merged into scikits-image . You can see the example here . I reimplemented Felzenszwalb's fast graph based method , quickshift and SLIC . The goal was to have easy access to some successful methods to make comparison easier and encourage experimenting with the algorithms. Here is a a comparison of my implementations against the original implementations on Lena (downscaled by a factor of 2). The first row is my implementation, the second the original.

[ECCV2012] Offset based image completion

Image
This is a short post about an ECCV 2012 paper I just discovered . The paper is Statistics of Patch Off sets for Image Completion by Kaiming He and Jian Sun from Microsoft Asia. There was a recent talk at MSRC about PatchMatch by Dan Goldman . PatchMatch is a simple but very efficient image completion algorithm that is used in Photoshop. The page linked above contains a beautiful illustration of what is possible using this very efficient, still very powerful, algorithm. For each patch that has parts that are missing, PatchMatch finds the best fit in the known image. The trick to do this fast is to use a randomized search and exploit the fact that neighboring patches have probably neighboring matches. But enough about PatchMatch - that just got me interested in this topic. So this new ECCV paper has a similar idea, but is a bit more radical. First, it looks for matching patches in the known parts of the image. It requires that these are not too close. The key observation is: th...

A filterbank for low-level vision

Image
At the moment I have the pleasure to be at MSRC , working under the supervision of Carsten Rother and Sebastian Nowozin . We are tackling some low-level vision tasks (as in their recent CVPR paper ) and in this context, filter banks are very useful. They might also be useful for object detection, since one Gabor rules them all , and Google uses collections of Gabor filters for his image retrieval. I used the maximum response bank from the website of Andrew Zissermans Visual Geometry group here . My Python adaption is available as a github gist . The Root Filter set looks like this:

Update for structured SVM in Python

I just pushed an update for my structured SVM in Python. This contains a bugfix in the dual formulation  and a subgradient descent version of the structured SVM.