本发明涉及智能交通大数据领域,尤其涉及一种基于聚类算法的司机常驻地预测方法及装置。
背景技术:
当今社会是一个高速发展的社会,科技发达,信息流通,人们之间的交流越来越密切,生活也越来越方便。大数据作为这个高科技时代的产物,已越来越广泛的走进人们的生活,并应用于各行各业。特别是人们出行以及货物运输离不开的交通运输业,通常会基于司机或者车辆大量的地理位置数据进行空间聚类,将聚类中密集出现的区域,划分为常驻地,从而为车辆调度、车辆管理,以及相关行业的营销计划推进以及选址规划等提供依据。其中,常用的聚类算法为DBSCAN算法。然而,现有的DBSCAN聚类算法,当数据量很大时,会由于空间聚类的密度不均匀、聚类间距差相差很大,导致参数Eps(邻域半径,以当前点为核心确定密度区域范围时所引用的长度)和minPts(密度阈值,以当前点为核心、以邻域半径Eps为长度确定的密度区域内,满足指定要求的最少的元素个数)选取困难,从而降低聚类质量,使聚类结果与实际情况存在偏差,从而不能给数据的参考者提供正确的指导依据。
技术实现要素:
我解决现有技术的不足,本发明提供一种基于聚类算法的司机常驻地预测方法及装置。
一方面,本发明提供一种基于聚类算法的司机常驻地预测方法,包括:
步骤S1:收集司机的位置数据构成数据集合;
步骤S2:对DBSCAN算法进行优化,并采用优化的DBSCAN算法对所述数据集合进行聚类运算,得到第一聚类结果;
步骤S3:对K-means算法进行优化,基于所述第一聚类结果,采用优化的K-means算法对所述数据集合进行聚类运算得到第二聚类结果;
步骤S4:根据所述第二聚类结果,预测所述司机的常驻地。
可选地,所述步骤S1,具体为:收集预设时间段内司机所使用的客户端上报的坐标点,构成坐标点集合。
可选地,所述步骤S2中,所述对DBSCAN算法进行优化,具体包括:
优化邻域半径的含义为:某一当前点加入某一聚类集合的判断依据;
优化密度阈值的含义为:某一聚类集合成为聚簇的判断依据;
对应地,所述步骤S2中,所述采用优化的DBSCAN算法对所述数据集合进行聚类运算,得到第一聚类结果,具体包括:
步骤A1:在所述坐标点集合中随机选择一个待处理坐标点作为当前点,判断当前聚类集合的数量,如所述当前聚类集合的数量为零,则执行步骤A2;如所述当前聚类集合的数量为1,则执行步骤A3;如所述当前聚类集合的数量大于1,则执行步骤A4;
步骤A2:将所述当前点作为第一个聚类集合的中心点,并将所述第一个聚类集合作为当前聚类集合,返回步骤A1;
步骤A3:判断所述当前点与所述当前聚类集合的中心点之间的距离是否不大于所述邻域半径,是则将所述当前点聚类到所述当前聚类集合,并更新所述当前聚类集合的中心点,执行步骤A5;否则,新建聚类集合,将所述当前点作为新建聚类集合的中心点,并将新建的聚类集合作为当前聚类集合,执行步骤A5;
步骤A4:计算所述当前点与各当前聚类集合的中心点之间的距离,从中选择最小距离,判断所述最小距离是否不大于所述邻域半径,是则将所述当前点聚类到所述最小距离对应的当前聚类集合中,更新所述最小距离对应的当前聚类集合的中心点,执行步骤A5;否则,新建聚类集合,将所述当前点作为新建的聚类集合的中心点,并将新建的聚类集合作为当前聚类集合,执行步骤A5;
步骤A5:判断所述坐标集合中是否还有未处理坐标点,是则返回步骤A1;否则,执行步骤A6:
步骤A6:依次将生成的各聚类集合的密度与所述密度阈值进行比对,并将密度不小于所述密度阈值的聚类集合作为第一聚簇,将对应的中心点作为第一聚类中心,输出所述第一聚簇和对应的第一聚类中心,得到第一聚类结果。
可选地,所述步骤S3中,所述对K-means算法进行优化,具体为:设置半径参数;
对应地,所述步骤S3中,所述基于所述第一聚类结果,采用优化的K-means算法对所述数据集合进行聚类运算得到第二聚类结果,具体包括:
步骤B1:初始化第二聚类中心为所述第一聚类结果中的各第一聚类中心,并将所述第二聚类中心作为当前目标聚类中心,将所述当前目标聚类中心所在的各第一聚簇作为当前聚簇;
步骤B2:遍历所述坐标点集合中未遍历的坐标点,计算遍历到的坐标点与各当前目标聚类中心之间的距离,从中选择最小距离,判断所述最小距离是否不大于设置的半径参数,是则执行步骤B3;否则,将遍历的坐标点舍弃,执行步骤B4;
步骤B3:将遍历的坐标点聚类到所述最小距离对应的当前目标聚类中心所在的当前聚簇后作为当前聚簇,更新该当前聚簇的聚类中心,并将更新后的聚类中心作为当前目标聚类中心,执行步骤B4;
步骤B4:判断所述坐标点集合中是否存在未遍历的坐标点,是则返回步骤B2;否则将各当前聚簇作为第二聚簇,将各当前目标聚类中心作为第二聚类中心,输出所述第二聚簇及对应的各第二聚类中心,得到第二聚类结果。
可选地,所述步骤S4,具体为:将所述第二聚类结果中含有的各第二聚类中心,作为预测的所述司机的常驻地。
另一方面,本发明提供一种基于聚类算法的司机常驻地预测装置,包括:
收集模块,用于收集司机的位置数据构成数据集合;
第一优化模块,用于对DBSCAN算法进行优化;
第一聚类模块,用于采用所述第一优化模块优化的DBSCAN算法对所述数据集合进行聚类运算,得到第一聚类结果;
第二优化模块,用于对K-means算法进行优化;
第二聚类模块,用于基于所述第一聚类模块得到的第一聚类结果,采用第二优化模块优化的K-means算法对所述收集模块收集的数据集合进行聚类运算,得到第一聚类结果;
预测模块,用于根据所述第二聚类模块得到的第二聚类结果,预测所述司机的常驻地。
可选地,所述收集模块,具体用于:收集预设时间段内车辆对应的司机所使用的客户端上报的坐标点,构成坐标点集合。
可选地,所述第一优化模块,具体用于:优化邻域半径的含义为:某一当前点加入某一聚类集合的判断依据;优化密度阈值的含义为:某一聚类集合成为聚簇的判断依据;
对应地,所述第一聚类模块,具体包括:选择子模块、第一判断子模块、作为子模块、第二判断子模块、第一聚类子模块、第一新建子模块、第一计算子模块、第三判断子模块、第二聚类子模块、第二新建子模块、第四判断子模块、比对子模块和第一输出子模块;
所述选择子模块,用于在所述收集模块收集的坐标点集合中随机选择一个待处理坐标点作为当前点;
所述第一判断子模块,用于判断当前聚类集合的数量;
所述作为子模块,用于当所述第一判断子模块判断出当前聚类集合的数量为零时,将所述选择子模块选择的当前点作为第一个聚类集合的中心点,并将所述第一个聚类集合作为当前聚类集合,触发所述选择子模块;
所述第二判断子模块,用于当所述第一判断子模块判断出所述当前聚类集合的数量为1时,判断所述选择子模块选择的当前点与所述当前聚类集合的中心点之间的距离是否不大于所述第一优化模块优化的邻域半径;
所述第一聚类子模块,用于当所述第二判断子模块判断出所述选择子模块选择的当前点与所述当前聚类集合的中心点之间的距离不大于所述第一优化模块优化的邻域半径时,将所述选择子模块选择的当前点聚类到所述当前聚类集合,并更新所述当前聚类集合的中心点,触发所述第四选择子模块;
所述第一新建子模块,用于当所述第二判断子模块判断出所述选择子模块选择的当前点与所述当前聚类集合的中心点之间的距离大于所述第一优化模块优化的邻域半径时,新建聚类集合;
所述第一更新子模块,还用于将所述选择子模块选择的当前点作为新建聚类集合的中心点,并将新建的聚类集合作为当前聚类集合,触发所述第四选择子模块;
所述第一计算子模块,用于当所述第一判断子模块判断出所述当前聚类集合的数量大于1时,计算所述选择子模块选择的当前点与各当前聚类集合的中心点之间的距离,从中选择最小距离;
所述第三判断子模块,用于判断所述第一计算子模块得到的最小距离是否不大于所述第一优化模块优化的邻域半径;
所述第二聚类子模块,用于当所述第三判断子模块判断出所述第一计算子模块得到的最小距离不大于所述第一优化模块优化的邻域半径时,将所述选择子模块选择的当前点聚类到所述最小距离对应的当前聚类集合中,更新所述最小距离对应的当前聚类集合的中心点,触发所述第四判断子模块;
所述第二新建子模块,用于当所述第三判断子模块判断出所述第一计算子模块得到的最小距离大于所述第一优化模块优化的邻域半径时,新建聚类集合;
所述第二聚类子模块,还用于将所述选择子模块选择的当前点作为所述第二新建子模块新建的聚类集合的中心点,并将新建的聚类集合作为当前聚类集合,触发所述第四判断子模块;
所述第四判断子模块,用于判断所述收集模块收集的坐标集合中是否还有未处理坐标点;
所述选择子模块,还用于当所述第四判断子模块判断出所述收集模块收集的坐标集合中还有未处理坐标点时,在所述收集模块收集的坐标点集合中随机选择一个待处理坐标点作为当前点;
所述比对子模块,用于当所述第四判断子模块判断出所述收集模块收集的坐标集合中没有未处理坐标点时,依次将各聚类集合的密度与所述第一优化模块优化的密度阈值进行比对,并将密度不小于所述密度阈值的聚类集合作为第一聚簇,将对应的中心点作为第一聚类中心;
所述第一输出子模块,用于输出所述比对子模块得到的第一聚簇和对应的第一聚类中心,得到第一聚类结果。
可选地,所述第二优化模块,具体用于:设置半径参数;
对应地,所述第二聚类模块,具体包括:初始化子模块、遍历子模块、第二计算子模块、第五判断子模块、第三聚类子模块、舍弃子模块、第六判断子模块和第二输出子模块;
所述初始化子模块,用于初始化第二聚类中心为所述第一输出子模块输出的第一聚类结果中的各第一聚类中心,并将所述第二聚类中心作为当前目标聚类中心,将所述当前目标聚类中心所在的各第一聚簇作为当前聚簇;
所述遍历子模块,用于遍历所述收集模块收集的坐标点集合中未遍历的坐标点;
所述第二计算子模块,用于计算所述遍历子模块遍历到的坐标点与各当前目标聚类中心之间的距离,从中选择最小距离;
所述第五判断子模块,用于判断所述第二计算子模块计算的最小距离是否不大于所述第二优化模块设置的半径参数;
所述第三聚类子模块,用于当所述第五判断子模块判断出所述第二计算子模块计算的最小距离不大于所述第二优化模块设置的半径参数时,将所述遍历子模块遍历的坐标点聚类到所述最小距离对应的当前目标聚类中心所在的当前聚簇后作为当前聚簇,更新该当前聚簇的聚类中心,并将更新后的聚类中心作为当前目标聚类中心,触发所述第六判断子模块;
所述舍弃子模块,用于当所述第五判断子模块判断出所述第二计算子模块计算的最小距离大于所述第二优化模块设置的半径参数时,将所述遍历子模块遍历的坐标点舍弃,触发所述第六判断子模块;
所述第六判断子模块,用于判断所述收集模块收集的坐标点集合中是否存在未遍历的坐标点;
所述遍历子模块,用于当所述第六判断子模块判断出所述收集模块收集的坐标点集合中存在未遍历的坐标点时,遍历所述收集模块收集的坐标点集合中未遍历的坐标点;
所述第二输出子模块,用于当所述第六判断子模块判断出所述收集模块收集的坐标点集合中不存在未遍历的坐标点时,将各当前聚簇作为第二聚簇,将各当前目标聚类中心作为第二聚类中心,输出所述第二聚簇及对应的各第二聚类中心,得到第二聚类结果。
可选地,所述预测模块,具体用于:将所述第二聚类模块得到的第二聚类结果中含有的各第二聚类中心,作为预测的所述司机的常驻地。
本发明的优点在于:
本发明中,通过对DBSCAN聚类算法及K-means算法进行优化并结合,即基于优化的DBSCAN算法对收集的位置数据进行第一次聚类,并将第一次聚类的结果作为优化的K-means算法的输入数据,进行第二次聚类,不仅提高了计算效率,而且保证了聚类结果的全局性和高准确性,进而能够为数据的参考者提供正确的指导性建议,促进行业以及相关行业的发展。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
附图1为本发明提供的一种基于聚类算法的司机常驻地预测方法流程图;
附图2为本发明提供的采用优化的DBSCAN算法进行聚类的示意图;
附图3为本发明提供的采用优化的K-means算法进行聚类的示意图;
附图4为本发明提供的一种基于聚类算法的司机常驻地预测装置模块组成框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
实施例一
根据本发明的实施方式,提供一种基于聚类算法的司机常驻地预测方法,如图1所示,包括:
步骤101:收集司机的位置数据构成数据集合;
优选地,在本实施例中,司机通过客户端(例如,车辆管理APP)每隔预设时间间隔上报自己的坐标点、行驶速度等信息;其中,预设时间间隔,可以根据需求自行设定,例如,设定为60秒。
对应地,步骤101,具体为:收集预设时间段内司机所使用的客户端上报的坐标点,构成坐标点集合;其中,预设时间段,可以根据需求自行设定,例如,设定为一周。
步骤102:对DBSCAN算法进行优化,并采用优化的DBSCAN算法对数据集合进行聚类运算,得到第一聚类结果;
根据本发明的实施方式,对DBSCAN算法进行优化,具体包括:
优化邻域半径的含义为:某一当前点加入某一聚类集合的判断依据;
优化密度阈值的含义为:某一聚类集合成为聚簇的判断依据;
对应地,步骤102中,采用优化的DBSCAN算法对数据集合进行聚类运算,得到第一聚类结果,具体包括:
步骤A1:在收集的坐标点集合中随机选择一个待处理坐标点作为当前点,判断当前聚类集合的数量,如当前聚类集合的数量为零,则执行步骤A2;如当前聚类集合的数量为1,则执行步骤A3;如当前聚类集合的数量大于1,则执行步骤A4;
步骤A2:将当前点作为第一个聚类集合的中心点,并将第一个聚类集合作为当前聚类集合,返回步骤A1;
在本实施例中,当当前聚类集合的数量为零时,表明选择的当前点为第一个待处理坐标点,则直接将其作为第一个聚类集合的中心点,其示意图如图2中的(a)所示。
步骤A3:判断当前点与当前聚类集合的中心点之间的距离是否不大于邻域半径,是则将当前点聚类到当前聚类集合,并更新当前聚类集合的中心点,执行步骤A5;否则,新建聚类集合,将当前点作为新建聚类集合的中心点,并将新建的聚类集合作为当前聚类集合,执行步骤A5;
其中,更新当前聚类集合的中心点,具体为:圈定能够包含当前聚类集合中各坐标点的最小的圆,并将圆心作为当前聚类集合的中心点。
本实施例中,以选择的当前点为第二个待处理坐标点为例进行说明,当判断出当前点与当前聚类集合(第一个聚类集合)的中心点之间的距离是否不大于邻域半径时,将当前点聚类到当前聚类集合,并更新当前聚类集合的中心点,其示意图如图2中的(b)所示。
步骤A4:计算当前点与各当前聚类集合的中心点之间的距离,从中选择最小距离,判断最小距离是否不大于优化的邻域半径,是则将当前点聚类到最小距离对应的当前聚类集合中,更新最小距离对应的当前聚类集合的中心点,执行步骤A5;否则,新建聚类集合,将当前点作为新建的聚类集合的中心点,并将新建的聚类集合作为当前聚类集合,执行步骤A5;
优选地,计算当前点与各当前聚类集合的中心点之间的距离,具体为:根据当前点和各当前聚类集合的中心点的坐标,计算当前点与各当前聚类集合的中心点之间的欧氏距离。
本发明中,以当前聚类集合的数量为2为例进行说明,当判断出最小距离大于优化的邻域半径,新建聚类集合,将当前点作为新建的聚类集合的中心点的示意图如图2中的(c)所示。
步骤A5:判断坐标集合中是否还有未处理坐标点,是则返回步骤A1;否则,执行步骤A6:
步骤A6:依次将生成的各聚类集合的密度与优化的密度阈值进行比对,并将密度不小于密度阈值的聚类集合作为第一聚簇,将对应的中心点作为第一聚类中心,输出第一聚簇和对应的第一聚类中心,得到第一聚类结果。
本发明中,通过对DBSCAN算法尽进行优化,改变了参数邻域半径和密度阈值的含义及用途,从而大大提高了聚类过程中的计算效率。
步骤103:对K-means算法进行优化,基于第一聚类结果,采用优化的K-means算法对数据集合进行聚类运算,得到第二聚类结果;
根据本发明的实施方式,对K-means算法进行优化,具体为:设置半径参数;
对应地,步骤103中,基于第一聚类结果,采用优化的K-means算法对数据集合进行聚类运算得到第二聚类结果,具体包括:
步骤B1:初始化第二聚类中心为第一聚类结果中的各第一聚类中心,并将第二聚类中心作为当前目标聚类中心,将当前目标聚类中心所在的各第一聚簇作为当前聚簇;
具体地,将第一聚类结果作为优化的K-means算法的输入数据,对坐标点集合进行聚类运算。
步骤B2:遍历坐标点集合中未遍历的坐标点,计算遍历到的坐标点与各当前目标聚类中心之间的距离,从中选择最小距离,判断最小距离是否不大于设置的半径参数,是则执行步骤B3;否则,将遍历的坐标点舍弃,执行步骤B4;
其中,计算遍历到的坐标点与各当前目标聚类中心之间的距离,优选为:根据遍历到的坐标点与各当前目标聚类中心的坐标,计算遍历到的坐标点与各当前目标聚类中心之间的欧式距离。
步骤B3:将遍历的坐标点聚类到最小距离对应的当前目标聚类中心所在的当前聚簇后作为当前聚簇,更新该当前聚簇的聚类中心,并将更新后的聚类中心作为当前目标聚类中心,执行步骤B4;
步骤B4:判断所述坐标点集合中是否存在未遍历的坐标点,是则返回步骤B2;否则将各当前聚簇作为第二聚簇,将各当前目标聚类中心作为第二聚类中心,输出第二聚簇及对应的各第二聚类中心,得到第二聚类结果。
本发明中以第一聚类结果中含有3个第一聚簇及对应的3个第一聚类中心为例进行说明,基于第一聚类结果得到的第二聚类结果,其示意图如图3所示。
本发明中,优化后的DBSCAN算法大大提高了计算效率,但是却存在一个缺陷,即缺乏全局性,会存在以下问题:某点之前不属于某一个聚类集合,但是随着该聚类集合的扩展,将该点包含了进来,而之前该点已经形成了一个单独的聚类集合;为解决该缺陷,本发明对K-means算法进行优化,并采用优化后的K-means算法对坐标点集合进行一次全局遍历,将坐标点归聚到最近且符合设置的半径参数的的聚簇中,较现有的K-means算法进行多次遍历而言,不仅提高了运算效率,而且与优化的DBSCAN算法相结合,解决了优化的DBSCAN算法存在的缺陷,提升了聚类质量。
步骤104:根据第二聚类结果,预测司机的常驻地。
具体地,将第二聚类结果中含有的各第二聚类中心,作为预测的司机的常驻地。
实施例二
根据本发明的实施方式,提供一种基于聚类算法的司机常驻地预测装置,如图4所示,包括:
收集模块201,用于收集司机的位置数据构成数据集合;
第一优化模块202,用于对DBSCAN算法进行优化;
第一聚类模块203,用于采用第一优化模块202优化的DBSCAN算法对收集模块201收集的数据集合进行聚类运算,得到第一聚类结果;
第二优化模块204,用于对K-means算法进行优化;
第二聚类模块205,用于基于第一聚类模块203得到的第一聚类结果,采用第二优化模块205优化的K-means算法对收集模块201收集的数据集合进行聚类运算,得到第二聚类结果;
预测模块206,用于根据第二聚类模块205得到的第二聚类结果,预测司机的常驻地。
根据本发明的实施方式,收集模块201,具体用于:收集预设时间段内司机所使用的客户端上报的坐标点,构成坐标点集合。
根据本发明的实施方式,第一优化模块202,具体用于:优化邻域半径的含义为:某一当前点加入某一聚类集合的判断依据;优化密度阈值的含义为:某一聚类集合成为聚簇的判断依据;
对应地,第一聚类模块,具体包括:选择子模块、第一判断子模块、作为子模块、第二判断子模块、第一聚类子模块、第一新建子模块、第一计算子模块、第三判断子模块、第二聚类子模块、第二新建子模块、第四判断子模块、比对子模块和第一输出子模块,其中:
选择子模块,用于在收集模块201收集的坐标点集合中随机选择一个待处理坐标点作为当前点;
第一判断子模块,用于判断当前聚类集合的数量;
作为子模块,用于当第一判断子模块判断出当前聚类集合的数量为零时,将选择子模块选择的当前点作为第一个聚类集合的中心点,并将第一个聚类集合作为当前聚类集合,触发选择子模块;
第二判断子模块,用于当第一判断子模块判断出当前聚类集合的数量为1时,判断选择子模块选择的当前点与当前聚类集合的中心点之间的距离是否不大于第一优化模块202优化的邻域半径;
第一聚类子模块,用于当第二判断子模块判断出选择子模块选择的当前点与当前聚类集合的中心点之间的距离不大于第一优化模块202优化的邻域半径时,将选择子模块选择的当前点聚类到当前聚类集合,并更新当前聚类集合的中心点,触发第四选择子模块;
第一新建子模块,用于当第二判断子模块判断出选择子模块选择的当前点与当前聚类集合的中心点之间的距离大于第一优化模块202优化的邻域半径时,新建聚类集合;
第一更新子模块,还用于将选择子模块选择的当前点作为新建聚类集合的中心点,并将新建的聚类集合作为当前聚类集合,触发第四选择子模块;
第一计算子模块,用于当第一判断子模块判断出当前聚类集合的数量大于1时,计算选择子模块选择的当前点与各当前聚类集合的中心点之间的距离,从中选择最小距离;
第三判断子模块,用于判断第一计算子模块得到的最小距离是否不大于第一优化模块202优化的邻域半径;
第二聚类子模块,用于当第三判断子模块判断出第一计算子模块得到的最小距离不大于第一优化模块202优化的邻域半径时,将选择子模块选择的当前点聚类到最小距离对应的当前聚类集合中,更新最小距离对应的当前聚类集合的中心点,触发第四判断子模块;
第二新建子模块,用于当第三判断子模块判断出第一计算子模块得到的最小距离大于第一优化模块202优化的邻域半径时,新建聚类集合;
第二聚类子模块,还用于将选择子模块选择的当前点作为第二新建子模块新建的聚类集合的中心点,并将新建的聚类集合作为当前聚类集合,触发第四判断子模块;
第四判断子模块,用于判断收集模块201收集的坐标集合中是否还有未处理坐标点;
选择子模块,还用于当第四判断子模块判断出收集模块201收集的坐标集合中还有未处理坐标点时,在收集模块201收集的坐标点集合中随机选择一个待处理坐标点作为当前点;
比对子模块,用于当第四判断子模块判断出收集模块收集的坐标集合中没有未处理坐标点时,依次将各聚类集合的密度与第一优化模块202优化的密度阈值进行比对,并将密度不小于密度阈值的聚类集合作为第一聚簇,将对应的中心点作为第一聚类中心;
所述第一输出子模块,用于输出比对子模块得到的第一聚簇和对应的第一聚类中心,得到第一聚类结果。
根据本发明的实施方式,第二优化模块204,具体用于:设置半径参数;
对应地,第二聚类模块205,具体包括:初始化子模块、遍历子模块、第二计算子模块、第五判断子模块、第三聚类子模块、舍弃子模块、第六判断子模块和第二输出子模块,其中:
初始化子模块,用于初始化第二聚类中心为第一输出子模块输出的第一聚类结果中的各第一聚类中心,并将第二聚类中心作为当前目标聚类中心,将当前目标聚类中心所在的各第一聚簇作为当前聚簇;
遍历子模块,用于遍历收集模块201收集的坐标点集合中未遍历的坐标点;
第二计算子模块,用于计算遍历子模块遍历到的坐标点与各当前目标聚类中心之间的距离,从中选择最小距离;
第五判断子模块,用于判断第二计算子模块计算的最小距离是否不大于第二优化模块204设置的半径参数;
第三聚类子模块,用于当第五判断子模块判断出第二计算子模块计算的最小距离不大于第二优化模块204设置的半径参数时,将遍历子模块遍历的坐标点聚类到最小距离对应的当前目标聚类中心所在的当前聚簇后作为当前聚簇,更新该当前聚簇的聚类中心,并将更新后的聚类中心作为当前目标聚类中心,触发第六判断子模块;
舍弃子模块,用于当第五判断子模块判断出第二计算子模块计算的最小距离大于第二优化模块204设置的半径参数时,将遍历子模块遍历的坐标点舍弃,触发第六判断子模块;
第六判断子模块,用于判断收集模块201收集的坐标点集合中是否存在未遍历的坐标点;
遍历子模块,用于当第六判断子模块判断出收集模块201收集的坐标点集合中存在未遍历的坐标点时,遍历收集模块201收集的坐标点集合中未遍历的坐标点;
第二输出子模块,用于当第六判断子模块判断出收集模块201收集的坐标点集合中不存在未遍历的坐标点时,将各当前聚簇作为第二聚簇,将各当前目标聚类中心作为第二聚类中心,输出第二聚簇及对应的各第二聚类中心,得到第二聚类结果。
根据本发明的实施方式,预测模块206,具体用于:将第二聚类模块205得到的第二聚类结果中含有的各第二聚类中心,作为预测的司机的常驻地。
本发明中,通过对DBSCAN聚类算法及K-means算法进行优化并结合,即基于优化的DBSCAN算法对收集的位置数据进行第一次聚类,并将第一次聚类的结果作为优化的K-means算法的输入数据,进行第二次聚类,不仅提高了计算效率,而且保证了聚类结果的全局性和高准确性,进而能够为数据的参考者提供正确的指导性建议,促进行业以及相关行业的发展。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。