关于计算值:极客星球|基于加权DBSCAN的工作地居住地计算方法

本文亮点随着智能手机和信息通信技术的一直倒退和遍及,大规模的轨迹数据存储曾经比拟广泛,成为开掘用户行为模式的重要起源,工作地和居住地是用户行为模式的重要体现,能够用于辅助智能城市的建设,比方优化通勤路线、产业布局、剖析人口流动状况等等,从而缩小交通拥堵、进步市民生存便利性和满意度等。然而现有的工作地居住地计算方法存在不同水平的问题,本文提出一种改良计划。 一、现有办法目前的工作地居住地定位办法次要有两种,一是基于规定,一是基于模型; 基于规定的办法是通过业务教训设计逻辑,依据设定的统计指标抉择工作地居住地。 比方基于汽车的数据会基于用户每天的起始点和起点,来统计频次、时长等指标,抉择排名最高的作为工作地居住地; 基于基站的数据会统计用户连贯每个基站的工夫,抉择工作工夫连接时间最长且月度工作日连贯次数/休息日连贯次数最高的作为工作地; 基于模型的办法是通过聚类+有监督模型来定位工作地居住地,通过聚类来剔除噪声点,而后通过规定来生成特色,通过人工对工作地居住地进行标注,最初通过有监督模型来预测工作地和居住地。 二、现有办法局限性基于规定的办法局限性比拟大,不同行业都有本人的规定和特定构造的数据,不够通用;且难以穷尽所有规定,对于异常情况的适应性不够好,简单且不够准确; 基于模型的办法须要进行人工标注,老本较高且整个计算流程比较复杂;准确率对特色的代表性和样本笼罩的广度依赖较大; 现有办法计算出的工作地居住地常常不合乎业务逻辑,如失常的工作地应该大部分散布在写字楼、工业园区等poi,少部分散布在餐厅、商场等其余各种类型的poi;失常的居住地应该大部分散布在小区、别墅、公寓等poi,少部分散布在其余各种类型的poi;然而现有办法计算的后果受数据源影响较大,并不能保障这一点,导致可能大量的工作地呈现在小区里,大量的居住地呈现在写字楼或商场里等状况,导致业务不可用。 本文提出了一种更通用的计算方法,升高整个流程的复杂性并进步准确性;设计一种更贴近业务的计算方法,进步工作地居住地的可用性。 三、背景常识介绍1、DBSCAN聚类简介:首先设定一个阈值a,对于样本集中的每个点,以这个点为圆心,a为半径划一个圆,被蕴含在这个圆中的点的个数记为b(包含圆心); 而后再设定一个阈值c,如果b>=c,则把这个圆心叫做外围对象; 如果一个外围对象A被蕴含在另一个外围对象B的圆中,外围对象B被蕴含在另一个外围对象C的圆中,则称A到C是密度可达的; 如果外围对象X到外围对象Y密度可达,外围对象Z也密度可达,则Y和Z密度相连,找到最大的密度相连的样本汇合,就是聚类的一个簇,如下图所示: 其长处在于: 能够对任意形态的浓密数据集进行聚类,实用于地理位置数据;绝对的,K-Means之类的聚类算法个别只实用于凸数据集; 能够在聚类的同时发现异常点,对数据集中的异样点不敏感; 聚类后果没有偏倚,绝对的,K-Means之类的聚类算法,初始值对聚类后果有很大影响。 2、加权几何平均数: 3、经纬度求中心点Lat_i = lat_i * pi/180,i= 1,2,…,nLon_i = lon_i * pi/180,i= 1,2,…,n xi = cos(Lat_i) * cos(Lon_i),i= 1,2,…,nyi = cos(Lat_i) * sin(Lon_i) ,i= 1,2,…,nzi = sin(Lat_i) ,i= 1,2,…,n x = (x1 + x2 + ... + xn) / ny = (y1 + y2 + ... + yn) / nz = (z1 + z2 + ... + zn) / n ...

December 21, 2021 · 1 min · jiezi

关于计算值:有序集合间的对位运算

【摘要】     两个有序汇合之间可能进行一一对应的计算,比方两个汇合如何比拟大小,怎么判断汇合是否相等?如何简便快捷的解决汇合间的对位运算,这里为你全程解析,并提供 esProc 示例代码。有序汇合间的对位运算 有序汇合间的对位运算,包含比拟运算(>,<, 等于)和四则运算(+,-,*,/,%,\)。本问中探讨的汇合,都是有序汇合,有序汇合的成员是有秩序的。有序汇合间的对位运算,会依照程序应用对位成员进行比拟或者四则运算。 1. 比拟两个汇合的大小汇合能够应用符号 ">" 或 "<" 比拟大小,从第一个成员开始依照程序比拟对位成员。例如 [1,3,1] 与[1,2,2]比拟大小时,首先比拟各自的第一个成员,1 与 1 相等;持续比拟各自的第二个成员,因为 3>2,所以 [1,3,1] 大于[1,2,2],无需比拟前面的成员了。 【例 1】 以奥运会奖牌榜为例,查问哪几届奥运会中国奖牌榜排名比俄罗斯靠前。局部数据如下: 奥运奖牌榜的规定是:首先比照金牌数量,金牌数高的排名靠前,金牌数低的排名靠后,金牌数雷同的将会依照银牌数再次比照排名。银牌数高的排名靠前,银牌数低的排名靠后,银牌数雷同的将会依照铜牌数再次比照排名。以此类推,铜牌数也雷同的国家排名并列。 【SPL 脚本】 A5的执行后果如下: 2. 比拟两个汇合是否相等比拟两个汇合是否相等是很常见的需要,比方比拟文件内容是否雷同,比拟数据表的数值是否发生变化等。例如比拟汇合 [1,2,3] 和[2,1,3]是否相等。通常来说,汇合的的对位成员不完全一致,认为两个汇合是不相等的。然而也有时候并不在意汇合的成员程序,只须要比拟两个汇合是否蕴含了同样的成员。 【例 2】 上面是随机抽样后生成的文件,比拟两次随机抽样是否选出了雷同的序号。局部数据如下: 【SPL 脚本】 A3的执行后果如下: 后果为 0 示意两个文件 ID 完全一致。 如果 ID 的程序可能不同,能够应用函数 eq() 比拟两个汇合的成员是否雷同: 3. 汇合成员的对位计算汇合成员的对位计算,反对 +,-,*,/,%, 等四则运算。例如 3 天内 A 商店的销售额汇合是 [2,3,4],B 商店的销售额汇合是 [3,1,3],咱们心愿失去两个商店的销售额之和的汇合 [5,4,7]。 ...

October 14, 2020 · 1 min · jiezi

趣味集算:八皇后问题

有关国际象棋的问题很多,八皇后问题就是其中相当著名的一个。在 8×8 的国际象棋棋盘中,放入 8 个皇后,使它们不互相攻击,共有多少种方法呢?国际象棋中皇后的威力巨大,攻击范围是同一行、同一列以及同一斜行,因此,符合条件的 8 个皇后必须都不在同一行、同一列或者同一斜行上。由于每一行中只能放入一个皇后,所以可以使用一个长度为 8 的序列,依次设入每行中皇后所在的列数,以此来表示皇后的放置状态。当某一行还没有置入皇后时,即该行没有一列上有皇后,记为 0;而每次置入新的皇后时,如果列数不是序列中已有的,就说明没有皇后在同一列中。这样,不同行、不同列就能很容易的判定了。那么,在置入新的皇后时,就只需要保证它与已有的皇后都不在同一斜行上了。如果一个皇后在 m 行 k 列,那么在 m+n 行,最多只有两个位置和它在同一斜行上,而且这两个位置距离它的横向距离等于纵向距离,也就是说最多只有 (m+n,k+n) 和 (m+n,k-n) 这两个位置与这个皇后在同一斜行上。这样,只要把每个皇后在每一行的所有情况都检查一遍,就可以知道共有多少种情况满足要求了。经过上面的抽象分析,我们只需要在集算器中,通过循环计算来完成这些判断就行了。具体代码如下:第 1 行,A1 就是记录皇后放置状态的序列;B1 定义了一个变量 i,用来在计算时记录当前放置皇后的行。第 2 行代码,每循环一次,就把当前行的皇后下移 1 列,用这样的方法遍历行中每个位置。第 3 行代码,如果棋子移到了第 9 列,说明当前行的棋子已经完成了所有位置的循环,此时,应该把当前行的记录复原为 0,并将 i 减 1,可以返回去继续上一行的遍历;特别的,当第 1 行也全部循环后,说明完成了遍历,此时 i 被设为 0,停止循环。第 4 行代码,在移动第 1 行皇后时,可以不用判断,直接开始放置第 2 个皇后。第 6 行代码,判断已放好的皇后中,是否存在同一列的;第 7 行代码,判断已放好的皇后中,是否存在同一斜行的。如果既没有同一列的,也没有同一斜行的,就可以继续放置下一行的皇后了。如果此时 8 个皇后都放置成功,则在第 9 行代码中记录下当前每个皇后的位置。经过计算,A10 中结果如下: 可以在 C1 中查看具体结果: 当然,还可以用经典的递归方式解决这个问题,集算器中递归调用子函数的方法的代码如下:在 A2 定义的子程序中,在一个新行中尝试放置皇后,在 B2 中循环每一个可能的列。A5 中的子程序用来判断新的一行是否可以使用指定的列,其中在 C5 中查看是否本列已存在皇后,第 6 行查看是否已有皇后在同一斜行,在这样的情况下说明不能放置。如果某一列可以放置,则判断是否 8 个皇后都放置成功,如果已全部设置成功则记录在 C1 中。如果未放置满,则递归调用 A2 中的子程序,继续在下一行放置。这种方法的代码更易理解,计算结果与前面的方法是相同的。 ...

December 28, 2018 · 1 min · jiezi