HN user

mikeskim

38 karma
Posts4
Comments28
View on HN

The way I use Python in machine learning is quite different from how many others in competitive ML use Python. I use Python purely for Python 2.7 with Pypy and try not to touch or use numpy,scipy,pandas,etc. R's data.table is possibly faster than Python's numpy/scipy/pandas. I think anyone claiming Python because of numpy/scipy/pandas is really being mislead. You should be using Python in spite of the need to rely upon numpy/scipy/pandas. If you really need numpy/scipy/pandas just use R and data.table which is amazingly fast. I think Python is really great because of Pypy and the strength of the standard Python library.

It is a fact that students at top tech schools (think Caltech, MIT, Harvey Mudd, etc.) study longer compared to students at comparable liberal arts schools. I believe it takes time and practice to get good at anything. Students at tech schools in tech majors just spend more time practicing their craft. Obviously that doesn't mean some English major can't pick up math, computer science and physics later in life, but such people are the outliers.

I wish academics would publish pure python implementations of their "new" algorithms. Standard python with Pypy is enough for speed of development and runtime.

The biggest thing about t-SNE is that it's been used in competitive machine learning for quite a long time successfully by many different people because it's on R via CRAN and Python via sklearn. LargeVis has potential, but it could also be not so useful like the vast majority of academic work.

This is incorrect in almost every way. When you have 2^m independent observations that you can use to cross validate (where m is very large), overfitting is exceptionally difficult almost regardless of the number of features you have. Overfitting typically occurs when the number of data points is small in magnitude overall and is small compared to the number of features and the observations are not iid.

This might even be useful when applied to learning say data.table or other parts of the Hadleyverse. These days data.table is not an option given the size of data and how slow R data frames are.

it is probably easier to just wrap R functions as a subprocess in python. you would have to write some R code to do this which might involve writing to a flat file. i do this all the time in R wrapping up something like rgf and calling from within R. i have wrapped up python and called it from R using system. the same idea works for python as well. you could probably write some kind of general wrapper that would work for most of R's ML type functions.

As long as you make the public leaderboard set small, and the private one shot leaderboard set very large, the number of submissions matters very little in the final rankings. The only real issue is hand labeling the public leaderboard set to augment training data.

You can do all of those things in R except maybe Simulink with a GUI (at least not yet, maybe soon?), and you have the choice of working with multiple implementations. https://cran.r-project.org/web/packages/FKF/FKF.pdf https://stat.ethz.ch/R-manual/R-devel/library/stats/html/Kal... http://stackoverflow.com/questions/1738087/what-can-matlab-d... Unless you are doing something very specific and require a specific toolbox only for Matlab, you're better off just using R (or Python).

A highly biased sample of less than 300 is supposed to really say anything of any significance for the general population? I think not.

It's basically impossible to overfit to the leaderboard in some Kaggles like Avazu where both the train and test are massive in terms of unique observations.