math.similarity: adding a few similarity metrics.
parent
a9a0080ce3
commit
6b8d802985
|
@ -0,0 +1 @@
|
||||||
|
John Benediktsson
|
|
@ -0,0 +1,18 @@
|
||||||
|
! Copyright (C) 2012 John Benediktsson
|
||||||
|
! See http://factorcode.org/license.txt for BSD license
|
||||||
|
|
||||||
|
USING: math.functions math.similarity tools.test ;
|
||||||
|
|
||||||
|
IN: math.similarity.tests
|
||||||
|
|
||||||
|
CONSTANT: a { 1 2 1 5 1 0 0 }
|
||||||
|
CONSTANT: b { 0 0 0 0 2 3 1 }
|
||||||
|
|
||||||
|
{ t } [ a a euclidian-similarity 1.0 1e-10 ~ ] unit-test
|
||||||
|
{ t } [ a b euclidian-similarity 0.1336766024001917 1e-10 ~ ] unit-test
|
||||||
|
|
||||||
|
{ t } [ a a pearson-similarity 1.0 1e-10 ~ ] unit-test
|
||||||
|
{ t } [ a b pearson-similarity 0.2376861940759582 1e-10 ~ ] unit-test
|
||||||
|
|
||||||
|
{ t } [ a a cosine-similarity 1.0 1e-10 ~ ] unit-test
|
||||||
|
{ t } [ a b cosine-similarity 0.5472455591261534 1e-10 ~ ] unit-test
|
|
@ -0,0 +1,15 @@
|
||||||
|
! Copyright (C) 2012 John Benediktsson
|
||||||
|
! See http://factorcode.org/license.txt for BSD license
|
||||||
|
|
||||||
|
USING: kernel math math.statistics math.vectors sequences ;
|
||||||
|
|
||||||
|
IN: math.similarity
|
||||||
|
|
||||||
|
: euclidian-similarity ( a b -- n )
|
||||||
|
v- norm 1 + recip ;
|
||||||
|
|
||||||
|
: pearson-similarity ( a b -- n )
|
||||||
|
over length 3 < [ 2drop 1.0 ] [ corr 0.5 * 0.5 + ] if ;
|
||||||
|
|
||||||
|
: cosine-similarity ( a b -- n )
|
||||||
|
[ v* sum ] [ [ norm ] bi@ * ] 2bi / 0.5 * 0.5 + ;
|
Loading…
Reference in New Issue