CGAL的主成分分析

        此软件包提供了分析二维和三维对象集的功能。它提供了所有有界对象的轴对齐边界框、质心和主成分分析的计算,以及加权点集的重心。请注意,与大多数CGAL软件包不同,该软件包使用近似方法(特别是线性最小二乘拟合),并不旨在提供任何意义上的精确规范结果。

1、定义

        一组对象的边界框是包含该集的长方体。轴对齐的边界框捕获集合中所有对象在其坐标系内的最大范围,即与坐标系的轴对齐的边框。轴对齐的边界框在几何算法中经常被用作数据集的一般位置的指示,用于显示、一次近似空间查询或空间索引目的。

        一组物体的质心是它们的质心,即通过组成物体的所有点的坐标来计算其坐标的点。请注意,尽管质心的一般定义包含密度函数(因此也包含加权平均值),但当前的实现方式假设了均匀的密度(见下面为加权点定义的重心)。对于点集{X1,X2,…,XN}质心X’计算为

        对于一组分段{S1,S2,…,SN}质心X’计算为

        其中|Si|代表线段的长度,Si’代表其统一重心(中点)。对于一组三角形{T1,T2,…,TN}
质心X’计算为 

 

        其中|Ti|表示三角形的面积,Ti¯表示其均匀重心。对于更一般的对象,这种定义仍然适用,其中Lebesgue测度(1D中的长度,2D中的面积,3D中的体积)用于加权对象重心。质心用于汇总数据集,用于近似、空间查询或空间索引目的。

        一组加权点的重心是坐标由该组所有加权点的加权坐标计算出来的点。当所有权重相等时,重心与质心重合。给定一组对象,线性最小二乘拟合相当于找到一个线性子空间,该线性子空间使组成该对象集的所有点与其投影到该线性子空间上的距离平方和最小化。这种线性子空间是通过所谓的主成分分析(PCA)获得的。

        PCA被定义为将对象变换到新坐标系的一种变换,使得对象的正交投影的最大方差位于第一个坐标(称为第一主成分)上,第二个最大方差位于第二个坐标上,依此类推。PCA通常用于几何应用,以将数据集降低到较低的维度进行分析或近似。下图说明了(最小二乘)将一条直线拟合到二维点集,将一条直线和一个平面拟合到三维点集,以及将一个平面拟合到一组三维三角形。

        左图:将线拟合到二维点集(质心用红色点表示)。中间:将直线和平面拟合到三维点集。右图:将平面拟合到一组三维三角形。 

2、其他

        在CGAL中,CGAL::centroid函数用于计算给定几何对象的质心。

        质心是对象重心的数学表示。对于简单的几何对象(如点、线段、三角形等),质心是所有顶点坐标的平均值。对于更复杂的对象,质心是通过加权平均所有顶点坐标来计算的,其中权重通常是与每个顶点相关的体积或面积。

        CGAL::barycenter 是一个函数,用于计算给定几何对象的重心。在CGAL库中,重心被定义为对象质量中心的加权平均位置。对于三角形,这个函数将返回一个点,该点的坐标是三角形三个顶点坐标的加权平均值。

        CGAL::linear_least_squares_fitting_2 是一个函数,用于在二维空间中进行线性最小二乘拟合。它通过最小化所有点到拟合直线的垂直距离的平方和来找到最佳拟合直线。

        质量中心简称质心,指物质系统上被认为质量集中于此的一个假想点。与重心不同的是,质心不一定要在有重力场的系统中。值得注意的是,除非重力场是均匀的,否则同一物质系统的质心与重心通常不在同一假想点上。

        重心,是在重力场中,物体处于任何方位时所有各组成支点的重力的合力都通过的那一点。规则而密度均匀物体的重心就是它的几何中心。不规则物体的重心,可以用悬挂法来确定。物体的重心,不一定在物体上。另外,重心可以指事情的中心或主要部分。

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

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

相关文章

数据采集遇到验证码校验的一般破解方式简述

背景 百度自动采集是一种高效的数据采集方法,但是在采集过程中经常会遇到图片验证码的问题,从而导致采集失败。那么有没有什么方法可以绕过图片验证呢?本文将为您详细介绍。 解决方案 一、使用OCR技术识别验证码 OCR技术可以识别图片中的…

vue实现滑动切换:切换选项时滑块有滑动过渡的效果

效果图 思路: 1. 高亮的色块是独立的一个盒子,需要插入当前激活的内容用来撑开色块盒子的宽度,这样色块的宽度就会和当前激活的内容宽度一致,色块的字体颜色设置透明即可 2. 色块滑动的距离是读当前激活元素的offsetLeft&#x…

文献阅读:LoRA: Low-Rank Adaptation of Large Language Models

文献阅读:LoRA: Low-Rank Adaptation of Large Language Models 1. 文章简介2. 方法介绍3. 实验 & 结论 1. 基础实验 1. Bert系列模型2. GPT系列模型 2. 消解实验 1. 作用矩阵考察2. 中间维度考察3. 扰动程度分析 4. 总结 & 思考 文献链接:htt…

SLAM学习入门--机器学习

文章目录 机器学习逻辑回归(LR)基本原理为什么 LR 要使用 sigmoid 函数?LR 可以用核函数么?为什么 LR 用交叉熵损失而不是平方损失?LR 能否解决非线性分类问题?LR为什么要离散特征?逻辑回归是处…

Linux文件系统结构及相关命令2 什么是Shell? help cd cd的用法 ls 的用法

Shell 是一种用于与操作系统进行交互的命令行解释器。它是用户与操作系统内核之间的接口,接受用户的命令并将其传递给操作系统进行执行。 在大多数的 Unix-like 操作系统(如 Linux 和 macOS)以及类 Unix 系统中,Shell 是默认的命…

如何开发一个google插件(二)

前言 在上一篇文章如何开发一个google插件(一)里主要介绍了google插件的基本结构。 在这篇文章中主要结合reactwebpack进行一个代码演示,源码地址:源码地址 下载源码后打开浏览器的扩展程序管理->加载已解压的扩展程序,即可调试插件 此…

在线客服选择要点分析:如何挑选适合您需求的客服解决方案

选择一款好的在线客服系统,可以帮助企业多渠道的触达客户,与客户进行高效的沟通,最终达成转化的目的。 市面上现在成熟的客服系统产品有很多,企业在进行选择时要考虑以下几点: 1、企业需求 市场上的客服系统产品主要…

ArkTS - 组件生命周期

一、先说下自定义组件 在arkTs中,自定义组件分为两种(我的总结): 一种是:根组件,就是被装饰器Entry装饰的入口组件,这也是自定义组件(父组件)。 另一种是:没有被Entry装饰的自定义…

分布式存储考点梳理 + 高频面试题

欢迎来到分布式存储模环节,本文我将和你一起梳理面试中分布式系统的数据库的高频考点,做到温故知新。 面试中如何考察分布式存储 广义的分布式存储根据不同的应用领域,划分为以下的类别: 分布式协同系统 分布式文件系统 分布式…

Xline command 去重机制(一)—— RIFL 介绍

为什么要对 command 去重? 在一个接收外部 command 的系统中,通常一个 command 至少要执行一次,我们称其为 at-least-once semantics。如果一个 command 执行失败,系统内部经常会实现一套重试结构来尝试恢复这个问题,…

HTML 基础

文章目录 01-标签语法标签结构 03-HTML骨架04-标签的关系05-注释06-标题标签07-段落标签08-换行和水平线09-文本格式化标签10-图像标签图像属性 11-路径相对路径绝对路径 12-超链接标签13-音频14-视频 01-标签语法 HTML 超文本标记语言——HyperText Markup Language。 超文本…

【分布式配置中心】聊聊Apollo的安装与具体配置变更的原理

【管理设计篇】聊聊分布式配置中心 之前就写过一篇文章,介绍配置中心,但是也只是简单描述了下配置中心的设计点。本篇从apollo的安装到部署架构到核心原理进一步解读,大概看了下apollo的原理,感觉没有必要深究,所以就…

2023年“中银杯”四川省职业院校技能大赛“云计算应用”赛项样题卷③

2023年“中银杯”四川省职业院校技能大赛“云计算应用”赛项(高职组) 样题(第3套) 目录 2023年“中银杯”四川省职业院校技能大赛“云计算应用”赛项(高职组) 样题(第3套) 模块…

【北亚数据恢复】mysql表被truncate,表数据被delete的数据恢复案例

云服务器数据恢复环境: 华为ECS云服务器,linux操作系统,mysql数据库(innodb引擎)。作为网站服务器使用。 云服务器故障: 在执行mysql数据库版本更新测试时,误将本应该在测试库上执行的sql脚本执…

亚马逊云科技Amazon Q,一款基于生成式人工智能的新型助手

近日,亚马逊云科技宣布推出Amazon Q,这是一款基于生成式人工智能(AI)的新型助手,专为辅助工作而设计,可以根据您的业务量身定制。通过连接到公司的信息存储库、代码、数据和企业系统,可以使用Am…

个人游戏启动器 | 游戏数据库 playnite 折腾记录

环境:Windows 11 问题:使用平板串联PC游戏后,需要一个本地的PC启动器 解决办法:使用playnite搭配插件 背景:我是个单机游戏爱好者,因为某些原因,需要串流游玩,需要一个方便手柄操作的…

arkts状态管理使用(@State、@Prop、@Link、@Provide、@Consume、@objectLink和@observed)

一、状态管理 1.在声明式UI中,是以状态驱动视图更新: ①状态(State):指驱动视图更新的数据(被装饰器标记的变量) ②视图(View):基于UI描述渲染得到用户界面 注意: ①…

【零基础入门VUE】VueJS - 模板

✍面向读者:所有人 ✍所属专栏:零基础入门VUE专栏https://blog.csdn.net/arthas777/category_12537076.html 我们在前面的章节中学习了如何在屏幕上以文本内容的形式输出。在本章中,我们将学习如何在屏幕上以 HTML 模板的形式获取输出。 为了…

什么是AI PC,又有哪些产品

最近一段时间,AI PC成为一个流行词。Intel在发布Core Ultra处理器的时候,直接使用了AI PC这个词语,而各大厂商发布相应的笔记本产品时,也使用了AI Ready的宣传词。而在Intel之前,AMD在发布自己的新一代APU的时候&#…

Linux中安装了openjdk后jps command not found

一、问题场景 在Linux中用yum安装了openjdk-17,也在.bashrc中配置了环境变量JAVA_HOME以及bin目录的PATH。 但是在运行jps命令时依然报错找不到命令 二、原因分析 进入到$JAVA_HOME/bin目录查看,发现只有寥寥几个命令,压根没有jps命令&…