similiarity(A,B) = 1/(1 + (distance(A,B)/unit))
케이스 :
similarity(A,A)
= 1/(1 + (distance(A,A)/unit))
= 1/(1 + (0/unit))
= 1/(1 + 0)
= 1.0
~ 100 %
케이스 거리에 유한 :
similarity(A,Z)
= 1/(1 + (distance(A,Z)/unit))
= 1/(1 + (infinity/unit))
= 1/infinity
= 0.0
~ 0 %
코드 :
JobComparison* compare (Job a, Job b)
{
// define units based on measurement
double unit1 = 1000.0;
double unit2 = 100.0;
double unit3 = 10.0;
// calculate distance
double d1 = abs(a.salary - b.salary);
double d2 = distance(a.location, b.location);
double d3 = abs(a.companySize - b.companySize);
// calculate similiarity
double p1 = 1/(1 + (d1/unit1));
double p2 = 1/(1 + (d2/unit2));
double p3 = 1/(1 + (d3/unit3));
return new JobCompare(p1, p2, p3);
}
public class JobCompare
{
public:
double salarySimiliarity;
double locationSimiliarity;
double companySimiliarity;
}
public class Job
{
public:
double salary;
Location location;
double companySize;
}
당신이 지금 손으로 사용하는 어떤 규모에 따라 맞춤 매개 변수
할당 포인트는 모든 포인트 격차의 합을 달성 가능한 점수의 총 수를 기준으로 경기가 고려되어야 할 점수의 임계 값을 결정하십시오. Papa New Guinea에있는 직업의 경우 "미국 내에 위치해야합니다."와 같은 거래 차단기 상황의 경우, (-10000과 같은 의미의) 매우 작은 음수 값을 추가하기 만하면에 기여하는 양의 값이 취소됩니다 점수가 합격점보다 낮게 유지되도록 전체 점수. –