Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I have documents that contain an arbitrary amount of key/value fields. The value can be a primitive or a list.

Completed documents all have an associated state (such as passed, failed, halted, etc.).

Using completed documents as training data in a machine learning algorithm, my goal is to pass the system an incomplete document and determine the probable outcome. Is it more likely that the incomplete document I'm currently looking at will pass, fail or halt?

The identifying information I'm looking to compare here consists mostly of unique keys. So a document could look something like:

id: 1
keys_of_type_x: [x1, x2, x3, ..]
keys_of_type_y: [y1, y2, y3, ..]
key_z: "sample text field"
etc.

I am not necessarily looking for a concrete answer, but more for a push in the right direction with information regarding what algorithm is best suited for this sort of multi-value based classification.

share|improve this question
    
I'm not sure I understand exactly the task you're trying to achieve. How do you determine whether your document passed/failed/halted/... ? The structure of the document is also unclear.... –  SRKX Dec 28 '11 at 1:10
add comment

1 Answer

First, try to flatten all nested features into one large set of features and create a mapping from the text to a real number, using something like Naive bayes.

Then replace incomplete information with some kind of normalized data and apply Logistic regression with "1 versus all" classification. An alternative would be to use a decision tree based approach like Random Forest as it tends to work better with incomplete information, since you will be taking only a random subset of features.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.