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"

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.

  • 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

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.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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