网站首页 > 技术教程 正文
R语言是以向量作为基本单位的,对向量化计算有很大优势,这句话我貌似之前写过,但是就没有好好实践过,一方面是因为本人的线性代数基础比较差,另一方面也是因为R语言的编程学的时间不长,好多都没学全乎
今天找出来的几个矩阵计算的命令都是刚琢磨出来的,写得不灵敬请见谅
首先第一个就是咱题目里的矩阵乘法,函数名solve,它还有个简写的二元运算符形式%*%
上的例子是昨天用过的14行*6列的距离表,由于函数的处理对象不能是数据帧只能是矩阵,所以咱先用as.matrix转换下格式
先尝试个简单的,建一个1行6个值的简单向量
由于矩阵乘法要求的格式是AxB时,A的列数=B的行数,所以咱们的距离表需要转置一下行列位置,函数名相当简洁,就是t()
然后两者相乘,得到一个长度为1行14列的新矩阵,请注意这里的输出结果形式是矩阵,如果后续需要直接当向量使用时得用as.vector转化
会特地举这么个例子不是随便写的,因为这里有个比较好玩的点,让我们把这个矩阵乘法计算出来的结果和另外一个数列放在一起看看
发现玄机了没?咱的矩阵乘法结果和原矩阵中每行的和是一样一样的
这还没完,还有更有意思的,由于咱前面设置的是6个1,现在我们把它整体除以6,变成一个总和为1的向量,再做一次矩阵乘法
现在,这个乘法的结果完全等于源表中每行的平均值了
记得昨天提到的重心的概念不,当时把14个横向的小区名称作为14根坐标轴,直接取了每行的平均值作为这个高维度空间里的重心坐标,而按照现在这个情况,这个取平均的做法其实就相当于对6个重要地点每列取相同权重乘以变换矩阵的结果
那如果咱们需要摒弃一个影响因素,该怎么操作呢?比如源表的第二列ToWork,数值太大造成了重心偏移,咱干脆去掉它,这里用了两种做法,详细见图
又一次验证成功,开森~~~
最后再做点额外的探索,咱现在都是通过横向定义6个权重来计算得到距离,那如果反过来做它的逆运算能搞得定不?
理论上来说,这个东西存在点数学上的问题,因为在线性代数里,矩阵求逆的前提是矩阵本身的形状为长宽相等的正方形,但现在咱们举例的这个14*6的数据明显不是,所以只能试试看一个近似的计算方式,叫做广义逆
为了验证测试结果,我直接取了源表第一列ToCenter的数据来做实验
求Moore-Penrose广义逆,R软件中有提供这个工具,但需要先加载下MASS包,函数名ginv
计算广义逆结果如下,效果还是不错的
今天结束,我要开始愁明天写啥了~~~
猜你喜欢
- 2024-10-16 机器学习中应用的范数 机器学习中常见的超参照数调整
- 2024-10-16 有限元求解:结构应力法如何实现的网格不敏感呢?
- 2024-10-16 论利用粒子群算法求解测距定位方程
- 2024-10-16 推荐系统多样性——DPP篇 推荐系统的模型
- 2024-10-16 线性代数主要可以从几个角度去理解: (1)线性方程...
- 2024-10-16 numpy入门 day05 numpy eig
- 2024-10-16 python多进程矩阵计算的应用示例 python多进程队列
- 2024-10-16 计量课后5.4(大数据202230906137 HSl)
- 2024-10-16 TensorFlow 2:使用自编码器进行插值
- 2024-10-16 Matlab矩阵的简单操作 matlab如何进行矩阵运算
你 发表评论:
欢迎- 05-05从virsh当中学习QEMU/KVM启动命令
- 05-05Win10 BCD文件损坏怎么修复?(bcd文件损坏win7)
- 05-05亚马逊春节假期期间的店铺管理设置
- 05-051分钟总结常用k8s常用诊断教程(k8s常见故障)
- 05-05VisiPics重复图片查找软件中文汉化教程
- 05-05微服务的发布实现方式1灰度实现(微服务实现原理)
- 05-05轻松掌握Java多线程 - 第二章:线程的生命周期
- 05-05德拉诺之王邪DK报告:PVE向小测试及分析
- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)