singnet / reputation

MIT License
11 stars 11 forks source link

Aigents Java Reputationer ... has no normalizer #171

Open akolonin opened 5 years ago

akolonin commented 5 years ago

@deborahduong wrote: in the console where I started aigents service, I got about 50 messages that look like this: Reputationer test1553155488 has no normalizer Reputationer test1553156114 has no normalizer Reputationer test1553156114 has no normalizer Reputationer test1553156114 has no normalizer ... I have 24 denom runs, but one of them is here: /home/reputation/snsim/reputation/unratedDenomConserv5SAP10/transactions_r_1_0.1 The params are here: /home/reputation/snsim/reputation/unratedDenomConserv5SAP10/params_r_1_0.1.json But I have written out the ones relevant to you reproducing the error: "parameters":{ "CRg":9, "CRb":9, "GR":19, "NTg":10, "NTb":10, "NIg":1, "NIb":1, "NA":1000, "D":180, "SP":10, "SIP":0, "PLRg":60, "PLRb":60, "PR":10, "NP":2, "Pmin":50, "Pmax":150 },

"reputation_parameters":{
 "precision":0.01,
 "default":0.5,
 "conservatism":0.5,
 "fullnorm":true,
 "weighting":true,
 "logratings":false,
 "decayed":0.5,
 "liquid":false,
 "logranks":false,
 "downrating":false,
 "update_period":1,
 "aggregation":false,
 "denomination":true,
 "unrated":true

}, "port":1197, "initial_date":"01.01.2018 11:05:02", "final_date":"30.06.2018 00:00:00",

akolonin commented 5 years ago

@deborahduong - I see the reason: $ head /home/reputation/snsim/reputation/unratedDenomConserv5SAP10/transactions_r_1_0.1.tsv singularity 1514816020 rating 576 110 1.0 4408 3614 product1 95.07950724435348
singularity 1514817138 rating 576 110 1.0 5013 8677 product1 94.91806602765979
singularity 1514812048 rating 576 110 94.43486652883782 4852 product1
singularity 1514817051 rating 576 110 1.0 8406 9054 product1 93.98163415542862
singularity 1514811471 rating 939 57 1.0 6572 5375 product0 67.46263412761162
singularity 1514810059 rating 939 57 1.0 3343 2940 product0 70.05315076391041
singularity 1514811816 rating 939 57 1.0 846 2544 product0 68.07677600988742
singularity 1514816019 rating 939 57 1.0 2413 30 product0 67.71027613016724
singularity 1514812901 rating 939 57 68.13770374583616 4564 product0
singularity 1514812636 rating 831 137 1.0 9063 4594 product1 94.09278267933519

That means, some transactions have ratings and well as financial values and some are not so the things are messed up inside RS. I will make data validation and error reporting more strict but you should have fix this on your side to keep the runs obviously.

I see no reasonable explanation of why it should be so. If it is case of "no rating is given" case, it is understood but we should not call the reputation system in such case at all.

If it is the case, theoretically, we could call the RS with "payment" kind of rating so the hybrid reputation inference could be done but we are not there yet, so let's just: 1) Don't call RS if no rating is given when "explicit ratings" simulation is being executed 2) In such case, either a) log transaction in the ETL file as "payment" (not "rating") record or b) just skip it (I am not sure which option of the two is better at the moment ...)

akolonin commented 5 years ago

@nejc9921 - I have found this issue in your data set for #194 If I remove the "financial" rating from the data set, the issue #194 present but I wonder how do you handle that in Python RS now