# Simple machine learning: bot detection

I've been aching to get my feet wet with a machine learning project, and I've found one that should be relatively simple, and actually has non-negligible business value for my organization. The marketing guys have to remove bot activity from our tracking data by hand for their metrics. I wanted to pull some data from GA, and have them construct a data set (bot, not-a-bot). There are probably 5-10 (numerical) categories that we have to train the algorithm, and the data set can be made as big as the marketing guys have an appetite for.

I've done a bit of reading, and played with RapidMiner/Knime/Weka a bit. I plan to do everything in Python, with scikits-learn, possibly working in R where I have to. My questions:

1. Is this a "not actually that easy at all" problem?
2. Given the number of categories, about how large should the training set be?
4. Has anyone else done any learning around bot detection? How did it work? Am I barking up the wrong tree?

• Once you manage to put your data in R, there is a fast track to try two de-facto state-of-arts: SVM with Gaussian kernel (single call to ksvm(decision~.,data=yourdata,cross=10) from kernlab) and Random Forest (randomForest(decision~.,data=yourdata) from randomForest) -- both one-liners will also give you a reliable approximation of error. – user88 Feb 6 '13 at 16:10
• Thanks for the hint. I think I'll try to go the Python route first, but it is true that the L packages for Python aren't quite what they are for R. – BenDundee Feb 6 '13 at 18:06