共享单车轨迹数据分析:以厦门市共享单车数据为例(八)

副标题:基于POI数据的站点综合评价——以厦门市为例(三)

什么是优劣解距离法(TOPSIS)?

优劣解距离法(Technique for Order Preference by Similarity to Ideal Solution,简称TOPSIS)是一种多属性决策分析方法,用于从多个备选方案中选择最优方案。它的基本思想是通过计算每个备选方案与理想解和负理想解的距离,来评估各个方案的优劣。

关键概念

  1. 理想解(Positive Ideal Solution, PIS):所有属性值都是最优的方案。比如,如果是最大化问题,理想解的所有属性值都是最大的;如果是最小化问题,理想解的所有属性值都是最小的。
  2. 负理想解(Negative Ideal Solution, NIS):所有属性值都是最差的方案。比如,如果是最大化问题,负理想解的所有属性值都是最小的;如果是最小化问题,负理想解的所有属性值都是最大的。

一、建模步骤
TOPSIS进行建模,大致分为以下五个步骤:

1、将原始矩阵正向化和标准化
2、计算指标权重(可选)
3、计算最优解和最劣解
4、计算各评价指标与最优及最劣向量之间的差距
5、计算综合得分

步骤详解

  1. 将原始矩阵正向化

    • 由于不同的属性可能有不同的优化方向(有的越大越好,有的越小越好),我们需要将所有属性值转换成统一的优化方向。具体做法是:
      • 效益型属性(越大越好):保持不变。
      • 成本型属性(越小越好):用最大值减去该属性值。
  2. 将正向化矩阵标准化

    • 为了消除不同属性之间的量纲差异,使所有属性值在同一个量级上进行比较,我们需要将每个属性值标准化,这里用了最大最小值归一化(Min-Max Normalization)是一种常用的数据标准化方法,用于将数据缩放到[0, 1]的范围内                                                

       Z_{ij} = \frac{X_{ij} - X_{\min}}{X_{\max} - X_{\min}}

  3. 确定理想解和负理想解

    • 对于每个属性,根据其是否是最大化或最小化问题,确定理想解和负理想解的值。
    • 理想解(PIS):每个属性的最优值。
    • 负理想解(NIS):每个属性的最差值。
  4. 计算距离

    • 计算每个备选方案与理想解和负理想解的欧氏距离。
    • 与理想解的距离越小,表示该方案越接近最优。
    • 与负理想解的距离越大,表示该方案越远离最差。
  5. 计算相对接近度

    • 计算每个备选方案与理想解的相对接近度。相对接近度的计算公式为:

      C_i = \frac{D_{iN}}{D_{iP} + D_{iN}}

    • D_{iP}是第 ( i ) 个方案与理想解(PIS)的距离。

      其中,D_{iP}是第 i 个方案与理想解的距离,D_{iN}是第 i 个方案与负理想解的距离。
    • C_{i} 的值在0到1之间,值越接近1,表示该方案越优。
  6. 排序

    • 根据相对接近度C_{i}对所有备选方案进行排序,选择相对接近度最大的方案作为最优方案。

我们依然以厦门市为例,来通过POI来研究厦门岛内以800m作为辐射范围的地铁站哪些地铁站发展的最好,当然这里只考虑了空间因素,时间因素上篇也提及到了,站点建成时间并不一致,会对站点发展程度有所影响,这里我们依然使用上篇文章用到的在线SPSS分析平台,

【放入正向坐标】:这里我们使用的坐标全部为正向指标也就是指标值越大评价越好的指标,【定类】选择站点,【变量权重】选择熵权法,当然这里也可以自定义权重,或者不设权重;

设置权重的目的是通过引入熵权法,考虑各类型POI(兴趣点)的重要程度,从而进行更科学的TOPSIS分析。在计算每个方案与理想解(D+)和负理想解(D-)的距离时,会将各属性值乘以其对应的权重值,以反映不同POI类型在决策中的实际影响。本文考虑了六类POI的权重情况,包括生活服务、医疗保健服务、商务住宅、科教文化服务、交通设施服务和公司企业。

分析结果表明,医疗保健服务的权重最大达到19.232%,即其对站点综合评价的影响最大;其次是交通设施和服务,分别为18.709%和17.593%。商务住宅和科教文化的权重相当,均为15.940%,而公司企业的权重最低只有12.601%。表明其影响程度相对较小。

因为篇幅原因,这里我们仅放一下前10名的一个综合得分指数;

结合GIS图和综合得分指数,我们可以更直观地理解站点的综合评价结果。从图中可以看出,前十名站点中有8座属于1号线,2号线和3号线各有一座。这些站点的综合得分指数分布状态与厦门人口分布和共享单车订单分布的耦合程度极高,具体表现为:

  1. 与人口分布的相关性:

    • 前十名站点主要集中在人口密集区域。例如,吕厝和湖滨东路等站点位于厦门市人口密度较高的地区,这些地区的综合得分指数较高。
    • 人口分布较多的区域,由于人口基数大,即使人们选择共享单车出行的概率不变,也会导致该地区的共享单车订单数量增加。这说明了人口分布对站点综合评价也存在一定相关性。
  2. 与共享单车订单分布的耦合:

    • 综合得分指数高的站点,如吕厝和湖滨东路,其周边的共享单车订单数量也较多。这表明这些站点不仅在POI数据上表现优秀,而且在共享单车实际使用中也存在大量需求。
    • 人口密集区域的共享单车订单数量多,反映了这些区域的交通需求旺盛。

关于这两部分的分析详见:共享单车轨迹数据分析:以厦门市共享单车数据为例(五)_基于共享单车轨迹数据的自行车道连续性评价及提升策略研究-CSDN博客

文章仅用于分享个人学习成果与个人存档之用,分享知识,如有侵权,请联系作者进行删除。所有信息均基于作者的个人理解和经验,不代表任何官方立场或权威解读。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/886622.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

排序算法之——归并排序,计数排序

文章目录 前言一、归并排序1. 归并排序的思想2. 归并排序时间复杂度及空间复杂度3. 归并排序代码实现1)递归版本2)非递归版本 二、计数排序1. 计数排序的思想2. 计数排序的时间复杂度及空间复杂度3. 计数排序代码实现 总结(排序算法稳定性&am…

ATLAS/ICESat-2 L3B 每 3 个月网格动态海洋地形图 V001

目录 简介 摘要 代码 引用 网址推荐 0代码在线构建地图应用 机器学习 ATLAS/ICESat-2 L3B Monthly 3-Month Gridded Dynamic Ocean Topography V001 ATLAS/ICESat-2 L3B 每月 3 个月网格动态海洋地形图 V001 简介 该数据集包含中纬度、北极和南极网格上动态海洋地形&…

基于大数据的Python+Django电影票房数据可视化分析系统设计与实现

目录 1 引言 2 系统需求分析 3 技术选型 4 系统架构设计 5 关键技术实现 6 系统实现 7 总结与展望 1 引言 随着数字媒体技术的发展,电影产业已经成为全球经济文化不可或缺的一部分。电影不仅是艺术表达的形式,更是大众娱乐的重要来源。在这个背景…

C++之多线程

前言 多线程和多进程是并发编程的两个核心概念,它们在现代计算中都非常重要,尤其是在需要处理大量数据、提高程序性能和响应能力的场景中。 多线程的重要性: 资源利用率:多线程可以在单个进程中同时执行多个任务,这可以更有效地利用CPU资源,特别是在多核处理器上。 性…

【Spring基础3】- Spring的入门程序

目录 3-1 Spring的下载3-2 Spring的 jar 包3-3 第一个 Spring程序第一步:添加spring context的依赖,pom.xml配置如下第二步:添加junit依赖第三步:定义bean:User第四步:编写spring的配置文件:bea…

macOS终端配置自动补全功能

如何在macOS终端中配置自动补全功能 终端是一个非常强大的工具,它可以用来完成很多任务,比如创建、复制、移动、删除文件,执行脚本和运行程序。不过它的默认设置对用户不太友好,作为开发者,我们通常习惯代码编辑器的辅…

docker pull 超时Timeout失败的解决办法

当国内开发者docker pull遇到如下提示时,不要惊讶 [rootvm /]# docker pull postgres Using default tag: latest Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp 128.121.146.235:443: i/o timeout [rootvm /]# 自2024…

创建Vue项目的时出现:无法加载文件 E:\software\node\node_global\vue.ps1,因为在此系统上禁止运行脚本

创建Vue项目的时出现的问题:出现:无法加载文件 E:\software\node\node_global\vue.ps1,因为在此系统上禁止运行脚本 解决方法: .PowerShelll的执行政策阻止了该操作,用 get-ExecutionPolicy 查看执行策略的状态为受限 输入Set-ExecutionPo…

T10:数据增强

T10周:数据增强 **一、前期工作**1.设置GPU,导入库2.加载数据 **二、数据增强****三、增强方式**方法一:将其嵌入model中方法二:在Dataset数据集中进行数据增强 **四、训练模型****五、自定义增强函数****六、总结** 🍨 本文为&am…

[ RK3566-Android11 ] 关于移植 RK628F 驱动以及后HDMI-IN图像延迟/无声等问题

问题描述 由前一篇文章https://blog.csdn.net/jay547063443/article/details/142059700?fromshareblogdetail&sharetypeblogdetail&sharerId142059700&sharereferPC&sharesourcejay547063443&sharefromfrom_link,移植HDMI-IN部分驱动后出现&a…

硬件-开关电源-结构组成及元件作用

文章目录 一:开关电源组成1.1 开关电源是什么?1.2 开关电源六个组成部分 二:六个组成部分的作用2.1 EMC区域2.2 输入整流滤波区域2.3 控制区域2.4 变压器2.5 输出整流滤波区域2.6 反馈电路区域道友:勿以小恶弃人大美,勿以小怨忘人…

【C++】——list的介绍和模拟实现

P. S.:以下代码均在VS2019环境下测试,不代表所有编译器均可通过。 P. S.:测试代码均未展示头文件stdio.h的声明,使用时请自行添加。 博主主页:Yan. yan.                        …

ARM 架构、cpu

一、ARM的架构 ARM是一种基于精简指令集(RISC)的处理器架构. 1、ARM芯片特点 ARM芯片的主要特点有以下几点: 精简指令集:ARM芯片使用精简指令集,即每条指令只完成一项简单的操作,从而提高指令的执行效率…

EasyCVR视频汇聚平台:解锁视频监控核心功能,打造高效安全监管体系

随着科技的飞速发展,视频监控技术已成为现代社会安全、企业管理、智慧城市构建等领域不可或缺的一部分。EasyCVR视频汇聚平台作为一款高性能的视频综合管理平台,凭借其强大的视频处理、汇聚与融合能力,在构建智慧安防/视频监控系统中展现出了…

Qt Quick 3D 入门:QML 3D场景详解

随着 Qt 6 的发布,QtQuick3D 模块带来了新的 3D 渲染和交互能力,使得在 Qt 中创建 3D 场景变得更加简单和直观。本文将带您从一个简单的 QML 3D 应用开始,详细讲解各个相关领域的概念、代码实现以及功能特点。 什么是 Qt Quick 3D&#xff1…

关于 JVM 个人 NOTE

目录 1、JVM 的体系结构 2、双亲委派机制 3、堆内存调优 4、关于GC垃圾回收机制 4.1 GC中的复制算法 4.2 GC中的标记清除算法 1、JVM 的体系结构 "堆"中存在垃圾而"栈"中不存在垃圾的原因: 堆(Heap) 用途:堆主要用于存储对象实例和数组。在Java中…

Linux --入门学习笔记

文章目录 Linux概述基础篇Linux 的安装教程 ⇒ 太简单了,百度一搜一大堆。此处略……Linux 的目录结构常用的连接 linux 的开源软件vi 和 vim 编辑器Linux 的关机、开机、重启用户登录和注销用户管理添加用户 ⇒ ( useradd 用户名 ) ( useradd -d 制定目…

【Unity踩坑】Unity更新Google Play结算库

一、问题描述: 在Google Play上提交了app bundle后,提示如下错误。 我使用的是Unity 2022.01.20f1,看来用的Play结算库版本是4.0 查了一下文档,Google Play结算库的维护周期是两年。现在需要更新到至少6.0。 二、更新过程 1. 下…

Python | Leetcode Python题解之第454题四数相加II

题目: 题解: class Solution:def fourSumCount(self, A: List[int], B: List[int], C: List[int], D: List[int]) -> int:countAB collections.Counter(u v for u in A for v in B)ans 0for u in C:for v in D:if -u - v in countAB:ans countAB…

C++ | Leetcode C++题解之第454题四数相加II

题目&#xff1a; 题解&#xff1a; class Solution { public:int fourSumCount(vector<int>& A, vector<int>& B, vector<int>& C, vector<int>& D) {unordered_map<int, int> countAB;for (int u: A) {for (int v: B) {count…