一种设备指纹相似度算法及实现步骤

  1. 背景

简单来讲,设备指纹是指可以用于唯一标识出该设备的设备特征或者独特的设备标识。

设备指纹包括一些固有的、较难篡改的、唯一的设备标识。比如设备的硬件ID,像手机在生产过程中都会被赋予一个唯一的IMEI(International Mobile Equipment Identity)编号,用于唯一标识该台设备。像电脑的网卡,在生产过程中会被赋予唯一的MAC地址。这些设备唯一的标识符我们可以将其视为设备指纹。

同时,设备的特征集合可以用来当做设备指纹。我们将设备的名称、型号、形状、颜色、功能等各个特征结合起来用于作为设备的标识。这就类似于我们在记忆人的时候,通常是通过人的长相、面部特征来记忆。

随着移动互联网的时代全面来临,诈骗团伙已形成了年产值上千亿元的黑色产业链。同时,魔高一尺道高一丈,更多的反黑产前沿技术应运而生,获得互联网及移动端企业风控的青睐。其中呼声最高的当属设备指纹技术,几乎每一家反欺诈企业都将其作为大数据风控的关键技术之一。

 

   2.技术原理

 

相似度的技术原理是寻找一个中心点,我们可以把这个中心点看着为一个均值线,然后计算各个设备与该均值的距离。

 

 

3.实施步骤

  1. 寻找标准点

 把标准点分为两大类,一个是IE,一个是其他类型

 

  1. 字符串相似度算法:

 

public static float similarity(String str1, String str2) {  

          

        //计算两个字符串的长度。  

        int len1 = str1.length();  

        int len2 = str2.length();  

        //建立数组,比字符长度大一个空间  

        int[][] dif = new int[len1 + 1][len2 + 1];  

        //赋初值,步骤B。  

        for (int a = 0; a <= len1; a++) {  

            dif[a][0] = a;  

        }  

        for (int a = 0; a <= len2; a++) {  

            dif[0][a] = a;  

        }  

        //计算两个字符是否一样,计算左上的值  

        int temp;  

        for (int i = 1; i <= len1; i++) {  

            for (int j = 1; j <= len2; j++) {  

                if (str1.charAt(i - 1) == str2.charAt(j - 1)) {  

                    temp = 0;  

                } else {  

                    temp = 1;  

                }  

                //取三个值中最小的  

                dif[i][j] = min(dif[i - 1][j - 1] + temp, dif[i][j - 1] + 1,  

                        dif[i - 1][j] + 1);  

            }  

        }  

        return 1 - (float) dif[len1][len2] / Math.max(str1.length(), str2.length());  

    }  

      

    //得到最小值  

    public static int min(int... is) {  

        int min = Integer.MAX_VALUE;  

        for (int i : is) {  

            if (min > i) {  

                min = i;  

            }  

        }  

        return min;  

}  

 

  1. 根据相似度算法得出各个维度的相似度然后加上比重

 

比如A标准点的属性为(a1,b1,c1,d1......)

对应的需要计算的点B的对应属性为 B(a2,b2,c2,d2....)

 

那么算法为:

 

B相似度=W1*similarity(a1,a2)+W2*similarity(b1,b2)+W3*similarity(c1,c2)+......

 

W1,W2,W3...为对应属性的权重 W1+W2+W3...=1

 

这样可算出每个设备对应与标准点的相似度

Test Case 1(预想Case):

根据我的测试可能会出现一些问题,1:A与B相似度很高  C与A的相似度很高 但是出现的可能有C与B的相似度很低:

Test Case 2:

 

  1. 补充

 我们的相似度只能作为一种辅助手段,在我们找到对应的点之后,需要再进行一次相似的度的比较,我们也可以运用ES里面的匹配度算法直接计算两条记录的匹配程度

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值