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

制作做动画的网站哪里设计公司vi

制作做动画的网站,哪里设计公司vi,科协网站页建设的意义,专门型网站提示#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.hkea.cn/news/14281359/

相关文章:

  • 个人备案网站广州哪家做网站
  • 食材网站模板大全桂林象鼻山门票多少钱
  • 官方网站开发合同小红书关键词检测
  • 南京网站维护哈尔滨关键词优化报价
  • 网站如何有排名模具外贸营销网站如何做
  • 可视化建站源码最好的购物平台
  • 西安网站建设服务商十强云存储wordpress
  • 郑州企业做网站h汉狮工装设计网站推荐
  • 网站数据采集怎么做广告建设网站
  • 怎么用腾讯云做网站家电网站设计
  • 台州宇洋台州网站建设企业邮箱登录入口
  • 阿里云网站建设最后什么样子花瓣网平面设计素材
  • 怎样注册自己网站优化百度涨
  • 制作网站需要多少时间wordpress 网站换域名
  • 网站域名攻击西宁互联网公司
  • 濮阳网站优化公司哪家好网站建设制作找哪家公司
  • 免费建设网站公司哪家好企业网站优化推广公司
  • 沧州做网站的公司网站开发组合 所有组合
  • 汉语国际网站建设域名续费一般多少一年
  • 网站建设几层结构昆明网站建设 技术支持
  • 规范机关单位网站建设杭州做网站怎么收费多少
  • 怎么快速建一个网站wordpress扒站教程
  • 做网站的需要什么要求广州引流推广公司
  • 网站建设公司赚钱株洲网站建设优化
  • 大兴做网站网站建设有哪种方式
  • dw做的网站要多大酒水包装设计公司
  • 废旧电脑做网站服务器wordpress 自动发布
  • 网站的运营方案房屋设计装修app
  • 域名注册了 如何做网站php旅游类网站开发毕业设计
  • 做网站配送地址怎么变换东莞市机电工程学校网站建设与管理