当前位置: 首页 > news >正文

创建网站用突唯阿做响应式网站中国建设银行个人网上银行官网

创建网站用突唯阿做响应式网站,中国建设银行个人网上银行官网,2345网址导航官方网站,公司做网站要花多少钱提示#xff1a;文章写完后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、单辆车轨迹的聚类与分析1.引入库2.聚类3.聚类评价 二、整个数据集多辆车聚类1.聚类2.整体评价 前言 空间聚类是基于一定的相似性度量对空间大数据集进行分组… 提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档 文章目录 前言一、单辆车轨迹的聚类与分析1.引入库2.聚类3.聚类评价 二、整个数据集多辆车聚类1.聚类2.整体评价 前言 空间聚类是基于一定的相似性度量对空间大数据集进行分组的过程。空间聚类分析是一种无监督形式的机器学习。通过空间聚类可以从空间数据集中发现隐含的信息。   作者在科研工作中需要对某些车辆的轨迹数据进行一些空间聚类分析以期望发现车辆在行驶过程中发生轨迹点”聚集“的行为。当等时间间隔的轨迹点在某片区域分布过于”密“时我们往往可以在这片区域发现某些信息例如车辆在这片区域发生驻留或者低速行驶等。   在空间聚类算法中DBSCAN是一种简单且有效的聚类算法它有着基于密度、不需要预先指定聚类数、计算效率高的优点。   本文以如下格式车辆轨迹数据为例实提供了DBSCAN对车辆轨迹数据聚类并分析的方法 collect_timeidlonlat时间车辆标识经度纬度 为了尽量去除噪声影响车辆轨迹数据已经经过滤波平滑平滑方法可见作者之前文章https://blog.csdn.net/jgsecurity/article/details/140608431。 一、单辆车轨迹的聚类与分析 对单辆车的轨迹数据采用DBSCAN算法进行空间聚类。DBSCANDensity-Based Spatial Clustering of Applications with Noise是一种经典的密度聚类算法适用于发现任意形状的聚类簇。其原理本文不做阐述如有需要可以自行搜索。 1.引入库 使用了数学计算库numpy和pandas机器学习库scikit-learn地理相关库shapely和geopy绘图库matplotlib。 import numpy as np import pandas as pd from sklearn.cluster import DBSCAN from sklearn import metrics from shapely.geometry import MultiPoint from geopy.distance import great_circle import matplotlib.pyplot as plt2.聚类 在进行聚类之前先使用shapely和geopy库实现了get_centermost_point函数。其输入数据cluster是列表类型表示每一组聚类的点集。作用是在获得了每个聚类之后计算出该聚类的中心点。 # 计算每个聚类的中心点 def get_centermost_point(cluster):# 计算整个点集合的质心点centroid (MultiPoint(cluster).centroid.x, MultiPoint(cluster).centroid.y)# 取点集合中离质心点最近的点为中心点centermost_point min(cluster, keylambda point: great_circle(point, centroid).m)# 返回中心点return tuple(centermost_point)对单辆车的聚类函数cluster_traj其输入数据data是dataframe类型表示一辆车的轨迹数据。 # DBSCAN聚类 def cluster_traj(data):# 提取dataframe中的经纬度列coords data[[smoothed_lat, smoothed_lon]].values# 地球半径(km)kms_per_radian 6371.0088# 定义epsilon为0.5(km)经纬度点间距离计算使用haversine公式# 由于haversine公式返回的距离是以弧度为单位因此将距离阈值转换为弧度epsilon 0.3 / kms_per_radian# 定义min_samples为6。epsilon和min_samples参数需要根据自己的数据调整。db DBSCAN(epsepsilon, min_samples6, algorithmball_tree, metrichaversine).fit(np.radians(coords))cluster_labels db.labels_# 离群点的聚类标签为-1其余数据聚成n类标签为为0到n-1。num_clusters获得总共的聚类数n。num_clusters len(set(cluster_labels) - set([-1]))print(Clustered str(len(data)) points to str(num_clusters) clusters)data[c_label1] cluster_labels# 输出聚类clusters的情况假如聚成了4类每类2个点# 0: [[30.6, 104.0], [30.9, 78.5]],# 1: [[30.6, 104.4], [30.4, 10.0]],# 2: [[30.5, 103.6], [30.7, 103.6]],# 3: [[30.8, 104.9], [30.3, 104.3]clusters pd.Series([coords[cluster_labels n] for n in range(num_clusters)])print(clusters)# 输计算噪声点占总点数的比例ratio len(cluster_labels[cluster_labels[:] -1]) / len(cluster_labels)print(噪声点占总点数的比例: str(ratio))# 只有聚类数量1时才能计算指标if num_clusters 1:# 计算轮廓系数作为聚类评价指标sc_score metrics.silhouette_score(coords, cluster_labels)print(轮廓系数: str(sc_score))# 计算DBI指标dbi_score metrics.davies_bouldin_score(coords, cluster_labels)print(戴维斯-布尔丁指数: str(dbi_score))print(\n)return data3.聚类评价 需要注意的是每辆车聚类之后还计算了噪声比、轮廓系数(SC)、戴维斯-布尔丁指数(DBI)来评价聚类效果。其中SC指标越接近1聚类效果越好DBI指标越小聚类效果越好。 除此之外还可以使用matplotlib库通过绘制散点图的方式来肉眼观察这辆车的聚类效果只需在cluster_traj函数中的return语句前插入下列代码matplotlib绘制的散点图用于实验时判断聚类效果来调整参数若要绘制更美观的图可考虑使用folium库在地图上绘制轨迹点 # 获得每个聚类的中心点centermost_points clusters.map(get_centermost_point)# 将各个聚类的中心点存入rep_pointslats, lons zip(*centermost_points)rep_points pd.DataFrame({lon: lons, lat: lats})# 绘制散点图colors list(mcolors.TABLEAU_COLORS.values()) # 使用Tableau颜色作为聚类颜色noise_color black # 离群点颜色fig, ax plt.subplots(figsize(12, 8))for i, cluster in enumerate(clusters):if i len(colors): # 如果聚类数超过颜色数循环使用颜色color colors[i % len(colors)]else:color colors[i]ax.scatter(cluster[:, 1], cluster[:, 0], s30, ccolor, markero, labelCluster str(i))# 绘制离群点noise_points coords[cluster_labels -1]ax.scatter(noise_points[:, 1], noise_points[:, 0], s20, cnoise_color, markerx, labelNoise points)ax.scatter(rep_points[lon], rep_points[lat], cred, marker*, s100, labelCluster Centers)ax.set_title(DBSCAN Clustering of Trajectory Data)ax.set_xlabel(Longitude)ax.set_ylabel(Latitude)ax.legend()plt.show()二、整个数据集多辆车聚类 本人的数据集中包含多辆车的轨迹数据这些数据统一存储一个CSV文件中并且已经按照id和collect_time数据升序排序。 1.聚类 使用groupby的方式对车辆按id分组每组分别调用cluster_traj即可。 #假设已经读入数据dfclustered_data pd.DataFrame()# 按车辆id分组对每辆车的数据进行聚类grouped df.groupby(id)for name, group in grouped:print(车辆id name 轨迹点数 str(len(group)))clustered_group cluster_traj(group)clustered_data pd.concat([clustered_data, clustered_group], ignore_indexTrue)2.整体评价 可以在函数外设置两个全局变量列表sc_scores和dbi_scores存储每辆车的评价指标。 # 全局变量用于存储指标 sc_scores [] dbi_scores []对cluser_traj函数中的计算轮廓系数部分添加sc_scores.append(sc_score)和dbi_scores.append(dbi_score)两行代码。即计算每辆车的评价指标的同时将其加入外部的列表中。 if num_clusters 1:# 计算轮廓系数作为聚类评价指标sc_score metrics.silhouette_score(coords, cluster_labels)print(轮廓系数: str(sc_score))sc_scores.append(sc_score)# 计算DBI指标dbi_score metrics.davies_bouldin_score(coords, cluster_labels)print(戴维斯-布尔丁指数: str(dbi_score))dbi_scores.append(dbi_score)通过sc_scores和dbi_scores两个列表的分析例如求均值、中位数、画图查看分布等方式可以评价整个数据聚类效果的好坏。
http://www.pierceye.com/news/314427/

相关文章:

  • 网站内容 优化泉州网站开发公司
  • 假发外贸网站模板做图库网站需要多少钱
  • 网站建设公司 知道万维科技wordpress支持移动
  • 经典网站建设邢台网站建设策划
  • 系统数据库与建设网站网站提交入口大全
  • 网站做数据分析的意义西安网站建设kxccc
  • 免费建个人网站alexa排名搜索
  • 做的网站第二年续费多钱店铺装修模板
  • 这么自己建设网站中卫网站设计厂家
  • 公司网站制作哪家公司好广州建设执业资格注册中心网站
  • 北京所有做招聘类网站建站公司Apache Wordpress伪静态处理
  • 大兴做网站公司制作网页可以用什么软件
  • 该怎么给做网站的提页面需求网上购物平台怎么建立
  • 用pw后缀的网站阳江网络问政平台首页
  • 建站网站建设哪个好网页设计个人总结
  • 网站开发时间进度表宁波网站建设使用技巧分享
  • wordpress官网案例移动端优化
  • 广告投放网宁波seo网络推广报价
  • 网站模板 哪个好烟台高端网站建设公司
  • 福建网站开发手机软件app下载
  • 网站开发的功能需求怎么写网页版式设计分析
  • 荔浦网站开发乐陵新闻最新消息今天
  • 盘锦网站建设服务如何上传网站到空间
  • 怎样建设自己网站常德seo招聘
  • 用别人家网站做跳转做商品抬价是什么兼职网站
  • 合肥市建设信息中心网站怎么做网站的签约编辑
  • 6入空间网站免费观看网站标题怎么修改
  • iis服务器的默认网站wordpress多级分销插件
  • jquery 网站后台模板 仿2021好心人给个开车的网站
  • 济宁定制网站建设推广关于协会网站建设的意见