# 多维度判断 我们已经知道一些发现异常的方法了,下面介绍如何使用它们。 在法庭上,判定一个人有罪或是无罪,需要有多个证据。在风控中判定一次请求是正常或是恶意,也不能简单的只考虑一个证据。 ### 按照维度整理数据 在上一章看到的例子中,通过观察在一台设备上登录的用户数和下单数来推测刷单,这对于一些简单场景也许足够了,但是对于大多数场景都是不够的。 我们通常将风控信息或者说风控数据按照不同维度组织。相同的一组数据按照不同维度整理,会有不同的结果。 以下是某网站的登陆记录,我们试着将数据从不同维度统计以下 | 用户ID | IP |设备号| 时间 | | -- | -- | -- |--| | 1 | 50.0.0.0 |DeviceA| 2016-04-04 00:00:00 | | 2 | 50.0.0.0 |DeviceB| 2016-04-04 00:00:00 | | 3 | 50.0.0.0 |DeviceA| 2016-04-04 00:00:01 | | 2 | 50.0.0.1 |DeviceB| 2016-04-05 00:00:00 | **用户维度** | 用户ID | 登陆次数 | 登陆设备数 | | -- | -- | -- | | 1 | 1 | 1 | | 2 | 2 | 2 | | 3 | 1 | 1 | **设备维度** | 设备号 | 登陆次数 | 用户数 | | -- | -- | -- | | DeviceA | 2 | 2 | | DeviceB | 2 | 1 | _你可以试着将IP维度的数据整理出来吗?_ 将数据整理完成后,我们会从多个维度来验证一次交易、一个用户甚至是一次HTTP请求。 ### 实例 一名用户正在登陆Jim的账号,我们希望判断出是不是真的是Jim本人。 从之前刷单的例子已经知道,限制单台设备的登陆次数和人数是个不错的主意,我们看看Jim过去1个月的设备统计 | 设备号 | 登陆次数 | 用户数 | | -- | -- | -- | | DeviceA | 10 | 1 | 如果只从设备号维度看,一切正常,虽然登陆次数是10次,但是考虑到是一个月,也不会显得很频繁,但是我们不妨试试多维度交叉分析。 我们试试用户名(假设用户名和用户ID唯一)维度。 | 用户名 | 登陆次数 | 登陆设备数 | | -- | -- | -- | | Jim | 10 | 10 | 天,这个人在干什么?!这个人虽然在设备A上只登陆了一次,但是他同时也在另外9个设备上登陆了。这个人很可疑,幸好我们没有只从一个维度考虑。不过,到底发生了什么呢? 不要急,后面的几章会慢慢解释。