Error Analysis
Error Analysis

Previous: problems for fitting the parameters

Discuss about how error analysis to make systematic decision

Choosing the most simplest way to be implemented quickly.

Never PREMATURE OPTIMISATION (famous advice in computer programming). Always build something simple.Let learning curve evidence direct us to what effort to do first.

From that, we can use the learning curve to decide if we add more complexity(parameters) or training set. In this way we can combat "gut feeling"

Alternatively, often people use error analysis. it is used to spot error pattern.

Even simple one still give vague answer about what to do decide whether it has high bias/ high variance

Here are the specific example

Observe the 100 emails errors(misclassify) from 500 training examples.

Based on that, we can do those two things mentioned.

From the first method(type of email) we know that for example our algorithm is mostly misclassify "steal passwords".

What features may be most helpful. When we crossvalidate, we know that we are vulnerable in detecting punctuation. We can build the algorithm to analyse that rather spend time on others.

Simple and quick dirty helps us to make a better understanding on which hard or easy examples

We also want to have some single row number(numerical evaluation) that indicates some kind of accuracy

For example this is NLP problem to detect similar words using stemming software

Based on numerical evaluation, we know that using stemming or without stemming would increase our performance or not.

Or distinguish upper vs lower would increase/decrease our performance

There's a lot of implementation method or different version of learning algorithm, and it's good to have numerical evaluation to test which has the lowest error.

Use CV to choose whether we need stemming or not.

lots of new version of learning algorithms keep getting implemented every time and use error analysis whether the performance of our learning algorithms is increasing or not

Most of the time the simplest method is the most correct one

The fast result will give us insight about which specific problem need specific actions to handle, and better method to handle / generalize it

Don't afraid about being too quick or to dirty implementation. Once we got our first initialisation, we can then have a grip about which direction we should go into.

So once again, take a quick and dirty way to implement the algorithms. From the result , we will then spend some time wisely go which the direction of complexity of the learning algorithm for particular set of problems