JoyT的科研之旅第一周——科研工具学习及论文阅读收获

CiteSpace概述

CiteSpace 是一个用于可视化和分析科学文献的工具,它专门针对研究者进行文献回顾和趋势分析。CiteSpace 的核心功能是创建文献引用网络,这些网络揭示了研究领域内各个文献之间的相互关系。使用 CiteSpace 可以为论文研究做出贡献的几种方式包括:

  1. 趋势分析:CiteSpace 可以帮助识别某个研究领域内的热门主题和趋势,以及这些主题随时间的变化情况。

  2. 关键文献识别:通过分析文献之间的引用关系,CiteSpace 可以帮助研究者找到领域内的关键论文和经典作品。

  3. 研究空白发现CiteSpace 的网络图可以揭示当前研究领域的空白,即尚未被深入研究的领域,这对确定研究方向很有帮助。

  4. 合作网络分析:CiteSpace 还可以分析作者、机构之间的合作网络,帮助研究者找到潜在的合作伙伴或影响力较大的研究团队。

  5. 引用文献管理:它还可以作为文献管理工具,帮助整理和分析论文研究中引用的文献。

使用 CiteSpace 时,研究者通常需要从数据库(如 Web of Science)中导入相关文献的引用记录。CiteSpace 会根据这些数据生成网络图和各种指标,从而帮助分析文献的影响力、研究领域的演变、以及研究领域之间的关系。通过这些功能,CiteSpace 能够为学术论文的撰写和研究提供重要的辅助。


Zotero

Zotero 是一个免费的、开源的参考文献管理软件,它被广泛用于学术研究和论文撰写中。Zotero 的主要特点和功能包括:

  1. 文献收集和管理:Zotero 允许用户从各种学术数据库和网站直接导入参考文献。它支持各种文献格式,包括书籍、期刊文章、会议论文等。

  2. 组织和分类:用户可以在 Zotero 中创建文件夹,对文献进行分类和组织。它还支持标签和注释,便于用户对文献进行更细致的管理。

  3. 引用生成和文献格式化:Zotero 能够自动生成多种引用格式(如 APA、MLA、Chicago 等),并可以直接插入到 Word 文档或其他文本编辑器中。这极大地简化了论文写作中的引用过程。

  4. 云同步和共享:Zotero 提供云存储服务,用户可以在不同设备之间同步文献数据库。同时,它支持文献库的共享功能,方便协作研究。

  5. 浏览器集成:通过安装 Zotero 的浏览器扩展,用户可以轻松地从网页中捕获引用信息和全文。

  6. PDF管理和阅读:Zotero 允许用户导入PDF文件,甚至可以直接在软件内阅读和标注PDF。

  7. 研究网络构建:Zotero 用户可以加入或创建公共或私有的研究组,共享文献资源,促进学术交流。

  8. 多平台支持:Zotero 可以在多种操作系统上运行,包括 Windows、macOS 和 Linux。

Zotero 的易用性和强大的功能使其成为学术研究人员和学生撰写论文时的重要工具。通过高效管理和引用文献,Zotero 能显著提高研究工作的效率。


文献阅读

题目

题目:"Incorporation of Deep Kernel Convolution into Density Clustering for Shipping AIS Data Denoising and Reconstruction" 可以翻译为:

"将深度核卷积融入密度聚类以实现船舶自动识别系统(AIS)数据的去噪和重构"。

这里的术语解释如下:

  • 深度核卷积(Deep Kernel Convolution):这指的是一种深度学习方法,通过将核方法(一种用于处理非线性数据的技术)与卷积神经网络相结合,以提取数据的高级特征。
  • 密度聚类(Density Clustering):这是一种聚类算法,用于根据样本分布的密度将数据分为不同的群组。它能够识别出任意形状的簇,并且对噪声数据有很好的鲁棒性。
  • 船舶自动识别系统(AIS)数据去噪(Denoising):这是指用于清除从船舶自动识别系统收集的数据中的噪声或错误信息的过程。
  • 数据重构(Reconstruction):在去除噪声后,对原始数据进行重建或恢复,以便更准确地反映实际情况。

摘要

  1. explosion:激增;robust:鲁棒性;kinematics feature:运动学特征;anomalous data/aberrant data异常值;piecewise cubic spline interpolation:分段三次样条插值;
  2. 简单讲,这篇文章就是为了保证爆炸数量的AIS数据质量和安全性,对数据进行处理。首先利用运动学特征进行数据预处理,去除明显噪声和异常点数据;然后利用深度卷积核结合密度聚类对数据进行更细致的降噪处理;最后为更好平滑轨迹,使用分段三次样条插值法对数据进行重构。

结果展示与分析

首先看到左上角概述,然后看第一点——原始数据。本段关键点是说明选取两个不同地区的海上数据的原因:北冰洋范围大,其数据可以用来验证降噪算法性能performance如何;多佛海峡范围小但数据复杂,可以用来展示算法在此条件下的健壮性robustness如何。

  1. 英文表述:The visualization result of .. is shown in Figure 3 and 4,respectively.  可视化结果分别如图3和4显示。这个和中文表述不同,中文论文建议图3和图4,英文不必重复。
  2. It can be seen that ... 可以得出
  3. As aforementioned in the above assumptions, 不知道能不能这样应用。
  4. shown 和 listed 我认为对于数据来说可以互换,图片还是shown,不知道demonstrated行不行

核函数选择

首先明确良好去噪效果的体现:首先满足降噪的目的——异常点清理越干净越好,但是往往会出现问题,很有可能将原本的正确轨迹清除导致轨迹不完整。所以去噪效果是要使得二者达到平衡!

明显(b)最优 


降噪结果展示 

  1. 英文表述:The original dataset includes much of the data from all the waiting, berthing, and mooring ships.重点关注三个船舶领域动词:waiting 等待;berthing 靠泊;mooring 停泊;
  2. A lot of trajectories with anchorage points were removed.许多带有锚地点的轨迹被移除。

这里有意思的点是,我当初还没有读后续的异常值筛选标准。文中写到它删除了许多锚地点轨迹甚至部分停留船的位置,我当初想的是,需要考虑一定的停留船的位置,因为如果删除停留位置,就可能撞到停留船只。

分析一下:

在船舶轨迹分析中,异常通常指的是那些不符合正常航行模式的点,例如由于传感器错误、数据传输问题或不正常的船舶行为产生的点。然而,停留点,比如锚地点,通常是船舶正常活动的一部分,特别是在港口或繁忙水域。

在进行轨迹去噪和分析时,关键在于区分船舶的正常活动和潜在的异常行为。例如,删除靠泊或者停泊的船只的位置数据可能会在某些分析中造成信息的缺失,尤其是在需要考虑船舶停靠和等待状态的场合。删除这些点可能会影响对海上交通流的全面理解,尤其是在进行碰撞避免分析时,知道这些船舶的位置是至关重要的,因为即使是不动的船舶也可能对正在移动的船舶构成潜在的风险。

因此,在处理AIS数据时,需要根据应用场景的特定需求来决定是否保留停留点。在某些情况下,可能会选择保留这些点以保证数据的完整性,特别是在需要确保航道安全和规划避碰策略的场合。

所以说为什么要删除锚点?

给学过素描的读者一些启发: 

理想的情况下,数据预处理和降噪应该是大大降低数据点和轨迹数据的,然后利用插值稍微填补一下即可。但是也会存在插值填补之后数据点甚至比原始数据集的数据点还多的情况,展示和解答如下图所示。

理解降噪和重构的核心目标,抓住主要矛盾,忽略次要矛盾!


轨迹重构结果展示

其实和上一个图是一样的,都展示了完整的过程。从中可以学到图片排版与放大展示,非常好看有科技感!

为了进一步验证该算法的效能,文章还选取了新的真实的船舶数据进行实验分析,其中首先涉及到一个概念——MMSI。

MMSI(Maritime Mobile Service Identity)是海事移动服务识别码,是一个由九位数字组成的唯一识别码,用来识别船舶无线电通讯设备。这个识别码全球唯一,类似于人们手机的电话号码,用于自动识别系统(AIS)和其他船舶无线电通信系统中。MMSI号码被广泛用于海上交通安全和监管,使得船舶、海岸站、救援团队和其他相关的海事服务机构能够相互通信、识别和交换信息。通过MMSI,可以迅速而准确地识别特定船舶,这对于海上搜救、航行安全和船舶追踪等活动至关重要。

又学到了!


讨论与结论


引言

  1. 总结一下:数据预处理对数据点的经纬度和速度等因素进行异常条件判断,重构时同样对于位置和速度做了考虑(最后用的就是Pi.time和Pj.time之差 Δt 作为重构依据)。
  2. 后文讨论未来两个研究方向之一的数据预处理部分,说可以考虑天气因素和其他船只的导航信息,也是很好的出发点。

文献综述

英文表述

probabilistic trajectory prediction model:概率轨迹预测模型;decompose:分解;perform anomaly detection 实现异常值检测;

内容概要

简单来说,文献综述给出的结论为:

  1. 基于特征的降噪实现简单,但是面对复杂的外部数据时效能不佳,所以更适用于数据预处理阶段。
  2. 基于聚类的降噪对于小而复杂的数据表现不佳。
  3. 结合深度学习的轨迹研究方法更受欢迎,但是实现起来方法困难,对硬件的要求也很大。

方法论

最难的部分也是我建议最后看的部分,首先是整篇文章的脉络:

简单概述

Density-Based Spatial Clustering of Applications with Noise (DBSCAN)是常见的空间密度聚类的方法,需要两个参数。一个是MinPts当作密度判别的阈值,一个是半径为Eps的圆形区域。

这样有点小复杂,可以结合深度卷积核将这个圆形区域简化,提取其最重要的部分形成3*3的深度方形卷积核,这个卷积核不必作为参数出现。这样,只要能将数据预处理后的数据网格化形成密度矩阵DM1,然后通过使用动态高斯核函数形成新的矩阵DM2,对DM2的数据进行重构即可。整个算法的伪代码如下:

step3中作者写错了,我找出来了!

手动实现DBSCAN示例

如果不是真的不会,我也想高DBSCANDKC,但是使用动态高斯卷积核难度较大,使用固定的高斯卷积效果像依托答辩,所以我展示效果最好的DBSCAN流程,完整代码如下:

import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import DBSCAN
from scipy.interpolate import CubicSpline# 设置随机种子
np.random.seed(0)# 生成正常数据(模拟船舶轨迹)
n_normal_points = 100
normal_longitudes = np.linspace(0, 10, n_normal_points) + np.random.normal(0, 0.1, n_normal_points)
normal_latitudes = np.sin(normal_longitudes) + np.random.normal(0, 0.1, n_normal_points)
normal_timestamps = np.linspace(0, 100, n_normal_points)# 生成异常数据(模拟噪声或错误数据)
n_noise_points = 20
noise_longitudes = np.random.uniform(-5, 15, n_noise_points)
noise_latitudes = np.random.uniform(-3, 3, n_noise_points)
noise_timestamps = np.random.uniform(0, 100, n_noise_points)# 合并数据
longitudes = np.concatenate([normal_longitudes, noise_longitudes])
latitudes = np.concatenate([normal_latitudes, noise_latitudes])
timestamps = np.concatenate([normal_timestamps, noise_timestamps])# 绘制初始数据
plt.figure(figsize=(10, 6))
plt.scatter(longitudes, latitudes, c='blue', label='Original Data')
plt.title('Original Simulated AIS Data')
plt.xlabel('Longitude')
plt.ylabel('Latitude')
plt.xlim(-5, 15)  # 设置横坐标范围
plt.ylim(-3, 3)   # 设置纵坐标范围
plt.legend()
plt.show()# 运动学特征筛选(假设异常数据具有不合理的速度或位置)
speed_threshold = 10  # 假设的速度阈值
lat_range = (-3, 3)  # 合理的纬度范围
lon_range = (-5, 15)  # 合理的经度范围# 速度计算(简化版本,假设每个数据点时间间隔相同)
speeds = np.sqrt(np.diff(longitudes, prepend=longitudes[0])**2 + np.diff(latitudes, prepend=latitudes[0])**2)# 筛选条件
filter_mask = (speeds < speed_threshold) & (latitudes >= lat_range[0]) & (latitudes <= lat_range[1]) & (longitudes >= lon_range[0]) & (longitudes <= lon_range[1])# 应用筛选
filtered_longitudes = longitudes[filter_mask]
filtered_latitudes = latitudes[filter_mask]
filtered_timestamps = timestamps[filter_mask]# 绘制筛选后的数据
plt.figure(figsize=(10, 6))
plt.scatter(filtered_longitudes, filtered_latitudes, c='green', label='Filtered Data')
plt.title('Data after Kinematic Filtering')
plt.xlabel('Longitude')
plt.ylabel('Latitude')
plt.xlim(-5, 15)  # 设置横坐标范围
plt.ylim(-3, 3)   # 设置纵坐标范围
plt.legend()
plt.show()# DBSCAN去噪
epsilon = 0.3  # DBSCAN的半径参数
min_samples = 3  # DBSCAN的最小样本数参数(MinPts)
dbscan = DBSCAN(eps=epsilon, min_samples=min_samples)
clusters = dbscan.fit_predict(np.column_stack((filtered_longitudes, filtered_latitudes)))# 去除噪声点
denoised_longitudes = filtered_longitudes[clusters != -1]
denoised_latitudes = filtered_latitudes[clusters != -1]
denoised_timestamps = filtered_timestamps[clusters != -1]# 绘制去噪后的数据
plt.figure(figsize=(10, 6))
plt.scatter(denoised_longitudes, denoised_latitudes, c='red', label='Denoised Data')
plt.title('Data after DBSCAN Denoising')
plt.xlabel('Longitude')
plt.ylabel('Latitude')
plt.xlim(-5, 15)  # 设置横坐标范围
plt.ylim(-3, 3)   # 设置纵坐标范围
plt.legend()
plt.show()# 分段三次样条插值
spline_lon = CubicSpline(denoised_timestamps, denoised_longitudes)
spline_lat = CubicSpline(denoised_timestamps, denoised_latitudes)# 插值点
interp_timestamps = np.linspace(denoised_timestamps[0], denoised_timestamps[-1], 500)
interp_longitudes = spline_lon(interp_timestamps)
interp_latitudes = spline_lat(interp_timestamps)# 绘制重构的轨迹和新增的插值点
plt.figure(figsize=(10, 6))
plt.plot(interp_longitudes, interp_latitudes, c='gray', label='Reconstructed Trajectory')  # 更浅的连线颜色
plt.scatter(denoised_longitudes, denoised_latitudes, c='red', marker='x', label='Denoised Data Points')
plt.scatter(interp_longitudes, interp_latitudes, c='green', s=10, alpha=0.6, label='Interpolation Points')  # 更醒目的插值点颜色
plt.title('Reconstructed Trajectory with Cubic Spline Interpolation')
plt.xlabel('Longitude')
plt.ylabel('Latitude')
plt.xlim(-5, 15)  # 设置横坐标范围
plt.ylim(-3, 3)   # 设置纵坐标范围
plt.legend()
plt.show()# 绘制重构的轨迹和新增的插值点
plt.figure(figsize=(10, 6))
plt.plot(interp_longitudes, interp_latitudes, c='gray', label='Reconstructed Trajectory')  # 更浅的连线颜色
plt.scatter(denoised_longitudes, denoised_latitudes, c='red', marker='x', label='Denoised Data Points')
plt.scatter(interp_longitudes, interp_latitudes, c='green', s=10, alpha=0.6, label='Interpolation Points')  # 更醒目的插值点颜色
plt.title('Reconstructed Trajectory with Cubic Spline Interpolation')
plt.xlabel('Longitude')
plt.ylabel('Latitude')
plt.ylim(-1.7, 1.7)   # 设置纵坐标范围
plt.legend()
plt.show()

结果图如下:

收获好多鸭!

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【MATLAB源码-第88期】基于matlab的灰狼优化算法(GWO)的栅格路径规划,输出做短路径图和适应度曲线

操作环境&#xff1a; MATLAB 2022a 1、算法描述 灰狼优化算法&#xff08;Grey Wolf Optimizer, GWO&#xff09;是一种模仿灰狼捕食行为的优化算法。灰狼是群居动物&#xff0c;有着严格的社会等级结构。在灰狼群体中&#xff0c;通常有三个等级&#xff1a;首领&#xff…

Linux时间命令—— 显示时间,日历等

目录 1.date显示时间 1.1 常用的标记列表&#xff1a; 1.2 设定时间&#xff1a; 2.cal显示日历 3.时间戳 1.date显示时间 date 用法&#xff1a;date [OPTION] ... [FORMAT] 1.1 常用的标记列表&#xff1a; %H : 小时 (00..23) %M : 分钟 (00..59) %S : 秒 (00..61…

NB-IoT BC260Y Open CPU平台篇②AEP物联网平台天翼物联CWing

NB-IoT BC260Y Open CPU平台篇②AEP物联网平台天翼物联CWing 1、注册账号2、创建属于自己项目的产品3、协议解析:4、添加设备5、设备模拟测试:6、设备调试:最近做了几个项目,都是将终端产品连接到天翼物联Cwing平台和Onenet平台,个人感觉这2个平台功能还是挺全的比较好用。…

JVM深入理解

JVM深入理解&#xff08;一&#xff09; JVM是什么 JRE、JDK和JVM 的关系 JVM原理 1、JVM是什么&#xff1f; JVM是Java Virtual Machine&#xff08;Java虚拟机&#xff09;的缩写&#xff0c;由一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域等组…

DNS 区域传输 (AXFR)

漏洞描述 docker环境搭建 使用 AXFR 协议的 DNS 区域传输是跨 DNS 服务器复制 DNS 记录的最简单机制。为了避免在多个 DNS 服务器上编辑信息&#xff0c;可以在一台服务器上编辑信息&#xff0c;并使用 AXFR 将信息复制到其他服务器。但是&#xff0c;如果您不保护您的服务器&…

Maven - 打包之争:Jar vs. Shade vs. Assembly

文章目录 Pre概述Jar 打包方式_maven-jar-pluginOverview使用官方文档 Shade 打包方式_maven-shade-pluginOverview使用将部分jar包添加或排除将依赖jar包内部资源添加或排除自动将所有不使用的类排除将依赖的类重命名并打包进来 &#xff08;隔离方案&#xff09;修改包的后缀…

鸿蒙(HarmonyOS)应用开发——安装DevEco Studio安装

前言 HarmonyOS华为开发的操作系统&#xff0c;旨在为多种设备提供统一的体验。它采用了分布式架构&#xff0c;可以在多个设备上同时运行&#xff0c;提供更加流畅的连接和互动。HarmonyOS的目标是提供更高的安全性、更高效、响应更快的用户体验&#xff0c;并通过跨设备功能…

外汇天眼:香港监管机构对AMTD Global Markets Limited启动法律诉讼

香港证监会&#xff08;SFC&#xff09;已经启动了法律程序&#xff0c;要求首次审裁法院调查AMTD Global Markets Limited&#xff08;AMTD&#xff0c;目前以orientiert XYZ Securities Limited为名&#xff09;及其前高管在与首次公开发行&#xff08;IPO&#xff09;相关的…

王道p150 14.假设二叉树采用二叉链表存储结构,设计一个算法,求非空二叉树 b的宽度(即具有结点数最多的那一层的结点个数) (c语言代码实现)

采用层次遍历的方法求出所有结点的层次&#xff0c;并将所有结点和对应的层次放在一个队列中。然后通过扫描队列求出各层的结点总数&#xff0c;最大的层结点总数即为二叉树的宽度。 /* A B C D E F …

React UI界面:Ant Design初步

文章目录 初步回调函数变量输出 React初步 初步 Antd是一套非常现代的React组件库&#xff0c;是好多人用过的第一个组件库&#xff0c;但我对其印象最深的却是圣诞节彩蛋&#xff0c;只是上网一查才发现&#xff0c;一晃这么多年过去了。 先创建一个React项目&#xff0c;然…

实验室信息管理系统源码,LIS系统源码,lis源码

医学检验(LIS)管理系统源码&#xff0c;云LIS系统全套商业源码 随着全自动生化分析仪、全自动免疫分析仪和全自动血球计数器等仪器的使用&#xff0c;检验科的大多数项目实现了全自动化分析。全自动化分析引入后&#xff0c;组合化验增多&#xff0c;更好的满足了临床需要&…

RabbitMQ之发送者(生产者)可靠性

文章目录 前言一、生产者重试机制二、生产者确认机制实现生产者确认&#xff08;1&#xff09;定义ReturnCallback&#xff08;2&#xff09;定义ConfirmCallback 总结 前言 生产者重试机制、生产者确认机制。 一、生产者重试机制 问题&#xff1a;生产者发送消息时&#xff0…