Personally I find recruiters to be annoying and they don't really understand software so I've actually put a good bit of effort into keeping off recruiter radars.
2,895 karma · joined March 9, 2009
Personally I find recruiters to be annoying and they don't really understand software so I've actually put a good bit of effort into keeping off recruiter radars.
The distinction between all the Big/Small letters is only really useful if you're trying to prove the bounds and something and proving an upper or lower bound is an easier place to start. Honestly practicing programmers shouldn't even be worried about these type of concerns since in practice there are some very small Ns and very large Cs that can make 2^n surprisingly workable and n surprisingly slow. Speaking in rough terms of 'it grows like this' is just fine.
Also depression is in and of itself dangerous. Even avoiding the entire topic of suicide, depression can lead to a variety of self destructive behaviors and poor decisions. Additionally plenty of people suffering from depression will naturally 'self medicate' with drugs that don't actually address the underlying neurological issues that ketamine might, and certainly can cause physical harm.
I think it's somewhat odd that in the 21st century we still aren't comfortable seeing physical and mental illness on the same level. People committing suicide die of an illness in no different a way than people dying of cancer. Yet there is very little in the way of public support of combating suicide the way there is for cancer. There is little debate that opiates (dramatically more risk for abuse) should be used to treat physical pain, and yet people get very nervous about the potential for misuse in a much less risky drug which could provide similar relief to mental anguish.
The most important part of doing statistics right is actually understanding what you're doing, and you're far better off using less powerful tools that you understand than pumping data into fancy functions that you can't really explain.
And more important than just raw number crunching: understanding statistics gives you an improved intuition regarding data. The real value in statistics is the new tools it provides for thinking about problems.
A better solution than "learn R" would be to read through something like Head First Statics and the move on from there to more advanced stuff, and only then start hacking around in R.
2. There are actually ways you can modify the output of an SVM to give a probabilistic interpretation[1]. But I'll agree with the not having a 'natural' probabilistic interpretation.
3. Is definitely correct, but I'm not sure NNs are that much better.
[0] http://www.svms.org/regression/
[1] http://www.cs.colorado.edu/~mozer/Teaching/syllabi/6622/pape...
In seriousness when you look around at what's happening both in practice and in academia I would say RandomForests/SVM/Neural Networks all stand pretty equally and have different strengths. If you've just got rows and rows of data with numeric, categorical and missing values it's hard to beat the speed and quality of shoving it in a RandomForest. However to my knowledge SVMs are still better at solving NLP categorization tasks and handling sparse, high dimensional data. And Neural Networks always seem to be popping up solving very weird and/or hard problems.
But with charging stations every grocery store could have them in the first few rows of parking. They could waive the charing fee if you spend X amount on food (I already get gas waivers from my grocery store). As this type of thing proliferated you wouldn't charge your battery when it was almost empty but rather be continually topping it off. Only on long trips would you consciously time things like stopping for lunch so they give you enough time to charge.
In lisp you're essentially hacking at the AST level, this is precisely where a huge chunk of lisp's power comes from, and parens are an incredibly natural and concise way to express this structure.
I have also written a lot of Python and I can honestly say significant white space as been an issue for me far more often than parens in Lisp (and I don't find significant white space to be an issue at all).
[0] http://library.tumblr.com/post/16817715155/rising-cost-of-se...
I really don't have an issue with someone being a dev in Ruby who doesn't understand pointers or how if/else statements can be constructed from jmp primatives. But if you're on the road to expertise I don't think you can remain ignorant of these.
I'm just shy of 31 and I have to say when I look back 23-24 was the peak of feeling like I was "too old" to accomplish anything meaningful.
I think one of the hardest things for me to see at 24 was just how non-linear and strange life is, and likewise how truly meaningless it is to try to establish a useful system of measurement and comparison between individuals.
For what life advice from a stranger on HN is worth: Get out of the game of comparing yourself to others as fast as you can. Focus on what you think is interesting, and also take a few moments now and again to really appreciate the wonder that is life. Aside from being happier, you'll most likely accomplish more if you don't spend energy casting yourself in the shadows of others.
I mean seriously this article pretty much says "wow, this stuff is complex and really hard to make sense of", and the top comment is "but I have found the truth in this book!"
I fully agree with you, I think the paleo approach has some pretty sound ideas. But when I hear people talk about how "evolution" commands we shall eat no grains I get really worried about how quickly educated people can turn science into magic.
Star scores are an attempt to map a qualitative experience (enjoyment of the film) with some quantitative measure. Which is fine if you just want to get a sense of 'how much' somebody liked a something. If I say I give scotch A a 5 scotch B a 3 and scotch C a 4 then you know that I like the scotch's in A, C, B order. It's a short hand way to express my personal ordering of qualitative experience, just like we use the words: 'good', 'better', 'best'.
The problem is this data is not really numerical, so even basic mathematical operations don't make any sense. When we add 2 heights, 2 masses, 2 speeds etc the result makes sense. But not so with ratings. Even basic difference doesn't make sense, is the difference between 5 and 4 stars the same as between 4 and 3 stars? There is no 'unit' distance in scoring system. So doing any sort of averaging is just going to give you nearly meaningless results.
What I was addressing was the issue that some users on Kaggle seemed frustrated that people were essentially submitting models with small parameter tweaks in order to marginally boost leader board scores. To these complaints I would argue that over-fitting is it's own punishment.
Thanks for the clarification!
I know for my own beginner mistakes, it's a big error to try something out-of-the-box and immediately try to get better cv scores by creating much more complicated solutions.
The truth is a lot of work has been put into any standard implementation of an SVM, RandomForest etc (and even more work has been put into the theory behind those algorithms). Since I haven't come in 1st in any competition and am not a ML expert I don't think I can give you the correct strategy to win. But I can say as a general trend, all of my attempts to create non-standard complicated models did terribly, and many of the decisions I made based on research into fixing a particular problem in a known solution seemed to be better performing (i.e. "How to deal with imbalanced classification problems with a RF?" type questions)
When I started I was in a similar position to you and just wanted to see if I could even tread water with some of the really knowledgeable members of the community. I ended up placing in the top 5 for one of the contests I was in (with btw a really simple model).
They usually give you some starter code in either R or Python which will give you the results for a benchmark, start there and then use cross-validaton to see if you can beat that bench mark, and if you do submit. It's very addictive and you'll come away knowing a lot more than you started with.
For algorithms, just try whatever you know best/is fastest to implement. If you're using R I highly recommend the Caret package.
For papers: the best place to get started is to begin browsing the forums or any similar contests, the community there is actually pretty awesome and will frequently post papers. After that google scholar (or even just google) for particular problems will yield nice results.
Also checkout the wiki: http://www.kaggle.com/wiki/Home
Additionally for contests like Heritage Health [0], I believe the necessary goal of RMSLE of less than 0.4 is not considered possible (I came across this in the forums but never verified), so even if the contestants just inch past 0.4 it would still be something impressive.
one of the biggest challenges I've found in implementing ML projects is I don't have a great sense of when I've really gotten the most info out of the data. I'm not particularly competitive but the contest format is great for this. When you see that a solution you'd normally be happy with ranks in the lower half of the answer you're really pushed to improve your solution.
This is leads you to learn your tools and algorithms better. For a couple of contests I took seriously I ended up learning tons about R, spent most of my nights reading academic papers on various newer techniques, and also read through a few books. On top of all that you really should spend time reading up on how past winner have won which gives a bunch of practical insight into approaching different ML problems.
In one contest I tried the hardest in I actually placed terribly after the final results were calculated, but looking over what went wrong I was amazed to see that I actually did progress really far with my understanding of ml. I'd say a month of seriously competing is easily worth a semester long grad class.
0. http://www.judiciary.gov.uk/Resources/JCO/Documents/Judgment...
0. http://www-fars.nhtsa.dot.gov/Trends/TrendsGeneral.aspx
1. http://www-nrd.nhtsa.dot.gov/Pubs/811552.pdf table 4
"In order to arrive at what you do not know You must go by a way which is the way of ignorance."
I came to CS and programming only after a degree in the humanities so every time I learned something new I felt incredibly stupid. I would read books very slowly and carefully, re-reading any tricky parts, and never assuming my prior knowledge in an area was at all relevant to what I was learning. But after every book I read, or topic I learned my mind and understanding of the world really felt expanded.
After a while I started to gain confidence, and the perhaps a bit more than confidence. I remember being proud the first time I opened a technical book and thought "pssh I know most of this already this will be a quick read". But I quickly discovered that whenever I approached a topic this way I only left with a shallow change in my understanding. In fact I realized that I was shaping this new material to what I already new rather than expanding my existing assumptions. I was essentially wasting my time, reinforcing my ego but not really learning much.
So whenever I meet someone who is learning something new and they're angry with themselves for how 'stupid' they are, I remind them that this is actually the peak of learning. And likewise whenever I open a book, even if it's in familiar territory I try to put myself in that mind set of ignorance. It's a pity we, especially in technical fields, associate so much shame with ignorance, when this is a feeling that we should aim for when we sit down to learn.
For anyone familiar with Zen Buddhism you'll probably recognize this idea as a variant on Shoshin or "beginner's mind"
Only then can you reasonably discuss the issues presented. If your results say 'this is definitely a good idea for increasing purchases', then rather than do long term A/B tests it would be better to just monitor overall trends in potential abuse.
So there are really two separate issues: Do discount follow ups to abandoned carts create a large increase in purchases. This is easily answered with an A/B test
Are people likely to abuse this discount system? And how do we stop it if they do? This is hard to test with a simple A/B test and is much better answered just by monitoring the purchases and looking at the extreme cases. Also this is pretty easily solved by just adding limits to when the system grants discounts.
But that's the whole point of A/B testing, rather than argue of hours based on intuition and anecdote you can actually test these ideas. No need for debate here, just run experiment and look at the results.
In your very question you assume the existence of an ethical system which distributes values to systems of knowledge and yet that ethical system cannot be verified or tested the way that you demand all meaningful such systems should be.
The answer to why Foucault is important is the same as the answer to why you hold a belief system which itself denies it's own value.
I've been in rooms of really smart technical people who have a child-like understanding of social and cultural issues that effect them (discussion about gender on HN can be a great example of this). At the same time I've been in rooms of extremely well read humanists who cringe at any attempt to understand the world through mathematical models. Both of these groups exhibit a clear intellectual poverty that limits their overall understanding of the world.
The worst part isn't merely that each group has such ignorance of the other's domain, but that each will proudly defend this ignorance. The "enjoy working at starbucks" and "buzzes like a fridge" comments are equally anti-intellectual. The first thing that needs to change is this attitude.