Re: I need a critique: using crm114 to train on (very) limited word set - or are there better ways?

"Ger Hobbelt" <[email protected]>
Newsgroups gmane.mail.spam.crm114
Message-ID <[email protected]>
On Wed, Sep 10, 2008 at 10:29 PM, Bill Yerazunis <[email protected]> wrote:
>   That's where crm114 popped up in the brain: train the sucker based on
[...]
>   predictions once you know what should have been.
>
> Now, _that_ is something CRM114 can do; _any_ of the classifiers can
> do it.

Yup, that's why I was thinking of applying CRM114. Thought it could do
the correlations and stuff for me, saving me a bit of handwork hassle.
:-)

[...]
> Yes, that would work.  Feed in a single word, get back a pR.  That's
> the significance OF THAT WORD ALONE.
>
> BUT - to do this, you must remember that by default CRM114 uses
> OSB phrasing.  You can turn OSB off by the keyword <unigram>, and
> that's what you need to do.

Yeah, I know about the phrasing. Just hadn't realized that I could
extract particular word significance by feeding CRM114 just that word
and look at the pR.

I started out thinking about classifying each message (= set of words)
to one pR (because that's what's most important to me anyhow: can the
bugger be taught to recognize 'it' happening or not this way with
sufficient accuracy, i.e. how often would CRM114 be 'on the mark' once
it's past initial training and give a high-noise input: I can't take
out the noise in the parameters (= words)).

>   cope with an A XOR B input situation.
[...]
> Yeah, that's called a nonlinear separation situation.  Hyperspace can handle
> arbitrary nonlinearities as part of it's design.  The neural net
> can handle a fairly high degree of nonlinearity.  SVM and SKS are
> purely linear (beyond what the short OSB phrases can generate).

Ah, thanks for clearing that one up; I thought NN was the only one
capable of handling XOR.


> OK.  Sure, put it up.  I have a machine that can grind on it.

All right. It'll have to wait though until I'm done with all the
report building business here. Yakking on email is faster start/stop
than getting this out the door (and screened before sending it off).

> I would do a 10-fold validation rather than just the half-n-half thing;
> it's a much more comprehensive test.

Hmmmm... I seem to recall there was some 10-fold validation test
script around somewhere; I might just take that and rip it apart
instead of building one from scratch.
Very good suggestion, thanks!

> I would also suggest (if you only have 5000 words in the vocabulary
> and they are always in a particular order and so will never form
> meaningful phrases) to use a smaller statistics file (for OSB, maybe
> a "-S 10000" or so) and be sure to use <unique> to turn of phrase
> building.

Check. And check. Thought of both. Good to hear I didn't miss those.


>   PS: bonus question: I've been thinking about it and have a glimmer of
[...]
>   operations being performed)? I will not be able to 'detect' A XOR B

Well, not really an answer to the bonus question, because I was
wandering if you could somehow detect at run-time that your choice
classifier was going bonkers over an actual XOR situation it can't
handle (say you're using OSB <unigram>, which doesn't cope with XOR,
and you feed it input where you do not yet know there'll appear a XOR
situation down the road, but it happens and then I imagine it pops up
as continuously changing false pos/false negs which get trained every
time, resulting in a cycle where training NOT(A AND B) cancels out the
training for A OR B and vice versa for as long as the XOR situation
shows up in the input feed. I thought you might possibly maybe be able
to detect it by monitoring hash learncounts going up and warn when a
series of trainings ups particular hash learncounts on both sides of
the fence most of the time: those would be suspects regarding the
hashes representing A and B. (Phew, hope this makes it a bit clearer.)

Anyhow, as an ounce of prevention ...etc., I must say the cross
product is a brilliant idea to prevent A XOR B from bothering the
classifier. Sure, it's got a bit of a blunt edge to it, but I can see
it work and as I have a very limited message length and ditto
vocabulary anyway, this is perfectly doable.
I was thinking about hooking up the VT code into OSB and blow the
gaskets on that one, which would, when stretched alarmingly, end up
with a cross-product producing custom matrix, but this is much neater
as the P1..Px production is a preprocessing phase anyhow and that
phase can do a cross-product when it looks like such is necessary (I
hope not, but I'd rather have the escape route preplanned before going
in, you see).



Bill, thanks for the feedback and the new ideas. :-)


-- 
Met vriendelijke groeten / Best regards,

Ger Hobbelt

--------------------------------------------------
web: http://www.hobbelt.com/
 http://www.hebbut.net/
mail: [email protected]
mobile: +31-6-11 120 978
--------------------------------------------------

-------------------------------------------------------------------------
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.