Re: Multiple categories and more

Bill Yerazunis <[email protected]>
Newsgroups gmane.mail.spam.crm114
Message-ID <[email protected]>
   From: James Lee <csejl-/[email protected]>

   - As I increase the number of categories, will classification
     process slow down?  

Yes.  Unless you do some funny tree-building (which you aren't likely
to be doing) the classification time for OSB is linear in the number
of classes.  

     What about accuracy?  

Well, OSB is linear, so it's like slicing a pizza into increasingly
larger numbers of slices - small errors may become more apparent.

But in reality, the only way to know is to try it.

     Also, theoretically
     speaking, is there a limit on how many categories I can classify
     into?

Without recompiling, there's a limit of 127 classifiers per CLASSIFY
statement in all of the classifiers except SVM ( SVM is limited to 2 
classes).

If you recompile, you can set MAX_CLASSIFIERS to anything you want.


   - If the number of categories becomes an issue, will be it better
     (both performance and accuracy wise) for me to classify into two
     categories at a time and pick the highest pR?  For example,
     classify the text into cat0 and other, cat1 and other ... cat5
     and other.

What would work even better is to do an NxN confusion table and divide
your classes into two groups depending on affinity.  Things that are often
confused with each other or are closely related belong in the same
group.  For example, "business-new customers" and "business-old customers"
might be very similar and should go into the same group.  

   - The pR score for HyperSpace seems to be lower than OSB and OSBF,
     is this normal?

Yes.  Normalization of pR is an ongoing process and it's not perfect.

   - Is there a such thing as optimal statistics file size for each
     classifier?  It appears that the default size for OSB is 6M, OSBF
     is 1.1M and Hyperspace varies across different categories.

The "optimality" is more to balance on-disk footprint and disk IO time
versus accuracy.  I don't know of any classifier that is actually
going to get better accuracy when the size decreases.

   - Is it possible to "over-train" the classifier?  As I train more
     and more, since the file size is limited, does it simply throw
     away the oldest data?  Or is it more complicated than that?

Yes, you can overtrain (otherwise known as overfitting) but if you
train only on error, or only on error with a thick threshold, this is
very _very_ unlikely.  

As to throwing out data- yes, it's more complicated.  What
"microgrooming" does is to look at (first) the relevance of the data -
specifically, how many times something's been seen, and how long ago.

Words or phrases that have only ever been seen once are much more
likely to be useless (or typos) than words/phrases seen a hundred
times.  Within that group of seldom-seen (or only-seen-once )
words/phrases, we throw out the oldest first, as that one's had the
longest amount of time to be seen a second time (and thus become more
relevant).

So, that's why "microgrooming" is recommended.

    - Bill Yerazunis

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.