To prevent spam users, you can only join this forum by invitation. If you want to join the forum, please send me a mail (h DOT m DOT w DOT verbeek AT tue DOT nl) and I'll send you an invitation in return.
On June 4th, we noticed that many discussions were gone from the forum. To fix this, a backup of May 22nd has been restored. As a result, any addition from May 22nd to June 4th is now lost. Please add it again if necessary. Apologies for the inconvenience.
ProM5 - Hamming distance in Social Network Miner (Similar task)
• Posts: 15
Hi all,
Trying to understand how the social network miner works, I'm experimenting some troubles with the "Similar task" metrics. In particular, it seems that the Hamming distance implementation differs from the definition given in the corresponding paper.

In practice, instead of the distance function defined in the paper:

d(x,y) = 0 if ((x>0 && y>0) || (x == y == 0))
= 1 otherwise

in UtilOperation.java, line 110, the following distance function is implemented:

d'(x,y) = 0 if (x == y)
= 1 otherwise

that is, if A performs activity act 1 time and B performs the same activity 2 times, their distance with respect to act is 0 for d and 1 for d'.

Is my obvservation correct? I am not sure about d', that I extracted from the code. If I am right, why the implemented distance differs from the paper one?

Moreover, it sounds strange to me also the calculation of the overall distance between originators A,B as

(column - temp) / column

(line 114), because a greater temp (which counts how many times activitites differ) leads to a smaller distance, while I would expect

temp/column

which assigns a greater value to those pair having a smaller distance.

In this case is simply a issue of inversion, but again I think that there is a discrepancy between the paper and the implementation. There is no problem, except that a user is not sure of the meaning of a greater or lower value on the edge from A to B (maybe the convention is written somewhere and I didn't find out that place).

• Posts: 2
I think you misunderstood the code.
In line 110, it checks whether values are equal or not. If two values are different, it increase the variable 'temp'. Then a hamming value is obtained by (column - temp) / column.
Minseok.
• Posts: 15
The point is that temp (according to the paper, if I'm right) should be increment not when the values are different, but when one value is zero and other is not zero.
• Posts: 2
Before line 110, it preprocesses a matrix (please see the m.forEachNonZero()) which changes a value into 1 if it is bigger than 0. Thus checking the difference is enough. I mean when one value is zero and other is not zero, the "temp" will be 1.
ps. When I tested the code with test cases, it worked well. Could you send me an example which makes the problem? Then, it will be a big help for me to fix it.
Post edited by msong at 2010-09-09 23:36:17
• Posts: 15
Thank to your help I realized that I'm wrong, the point is that I was not able to see how the cern package is implemented.

#### Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!