A common problem is ML is poor quality of the data: errors in feature values, misclassified instances, etc etc.

One way of addressing this problem is to manually go through the data and check, but are there other techniques? (I bet there are!)

Which ones are better and why?

  • $\begingroup$ Google Refine might be worth a look. $\endgroup$
    – dimitriy
    Feb 23, 2012 at 12:41

3 Answers 3


Dimensionality reduction via something like PCA would be helpful to get an idea of the number of dimensions that are critical to represent your data.

To check for misclassified instances, you can do a rudimentary k-means clustering of your data to get an idea of how well your raw data would fit your proposed categories. While not automatic, visualizing at this stage would be helpful, as your visual brain is a powerful classifier in and of itself.

In terms of data that are outright missing, statistics has numerous techniques to deal with that situation already, including imputation, taking data from the existing set or another set to fill in the gaps.

  • 4
    $\begingroup$ Plotting data is a manual check. $\endgroup$
    – andreister
    Feb 16, 2012 at 7:55
  • $\begingroup$ @andreister I consider checking point by point on a spreadsheet to be a manual check, but okay, I see what you are getting at. $\endgroup$
    – jonsca
    Feb 16, 2012 at 7:57

You can't really remove a knowledgeable person from the loop and expect reasonable results. That doesn't mean that the person has to look at every single item individually, but ultimately it takes some actual knowledge to know if summaries/graphs of data are reasonable. (For example: can variable A be negative, can variable B be larger than variable A, or are there 4 or 5 choices for categorical variable C?)

Once you've had a knowledgeable human look at the data, you can probably make a series of rules that you could use to test the data automatically. The problem is, other errors can arise that you haven't thought about. (For example, a programming error in the data gathering process that duplicates variable A to variable C.)

  • $\begingroup$ Great answer. I would only add to make sure that the syntax used to clean the variables is retained in documentation, with comments if not descriptive passages about why things were changed. :) $\endgroup$
    – Michelle
    Feb 23, 2012 at 17:07

If you know that your data is not quite good, it is always good to check for outliers as well. Most of the time there are anomalies.

If you have a lot of features, dimensionality reduction is a must. PCA is quite efficient for that.

If you have missing data, you can use imputation or interpolation, but if your needs allows it, the winning case is to use collaborative filtering.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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