Well, this is by no means a "newbie question", and is in fact quite complicated. While Inti's suggestion is certainly a good start, it really depends upon so many factors that there is no easy "right answer".
Some things to consider:
- Speed vs. accuracy
- Memory constraints
- Training set (how large of a data set you can use to "learn" how to classify)
- Test data set (how much of the data set you'll keep "in reserve" to verify / measure the quality of your algo)
- Implementation: e.g., will this be running in a "batch mode", or will you need to make a classification in an ongoing fashion for each new observation you wish to categorize.
- etc.
Until some more info like this is known, it's tough to give very precise details. (In general, on this forum, the more effort you put into the question, the more effort others put into their answers.)
That being said, here are some buzz words to start looking up, to get your head around the possibilities:
- random forest / CART / decision tree (different algos, but similar in concept)
- Naive Bayes
- SVM (likely not helpful with the nominal parameters you have)
- Neural Net
- Clustering
- KNN, as Inti suggests
- many more...
The world of potential options in machine learning algos is pretty huge, nothing works perfectly, and nothing works equally well in all situations. This wiki page is not so great, but it's a decent start on finding algos.
Once you've decided whatever algo you think will work for your case, then look up a library / implementation in Python or Java or what-have-you. With SciPy and NumPy, you can assume that Python has a pretty large library of possibilities. I suspect Java also has a huge library, but I personally know Python far better.