r 语言计算欧氏距离_R语言实现46种距离算法

R的极客理想系列文章,涵盖了R的思想,使用,工具,创新等的一系列要点,以我个人的学习和体验去诠释R的强大。

R语言作为统计学一门语言,一直在小众领域闪耀着光芒。直到大数据的爆发,R语言变成了一门炙手可热的数据分析的利器。随着越来越多的工程背景的人的加入,R语言的社区在迅速扩大成长。现在已不仅仅是统计领域,教育,银行,电商,互联网….都在使用R语言。

要成为有理想的极客,我们不能停留在语法上,要掌握牢固的数学,概率,统计知识,同时还要有创新精神,把R语言发挥到各个领域。让我们一起动起来吧,开始R的极客理想。

关于作者:

张丹(Conan), 程序员/Quant: Java,R,Nodejs

blog: http://blog.fens.me

email: bsspirit@gmail.com

前言

距离算法是做数据挖掘常用的一类算法,距离算法有很多种,比如欧式距离、马氏距离、皮尔逊距离,距离算法主要应用在计算数据集之间关系。本文用R语言来philentropy包,实现多种距离的算法,很多可能是大家完全没有听过的,让我们在开拓一下知识领域吧。

目录

距离算法包philentropy

46种距离算法详解

距离函数的使用

1.距离算法包philentropy

在做距离算法调研时,无意中发了philentropy包。它实现了46个不同距离算法和相似性度量,通过不同数据的相似度比较,为基础研究提供了科学基础。philentropy包,为聚类、分类、统计推断、拟合优度、非参数统计、信息理论和机器学习提供了核心的计算框架,支持基于单变量或者多变量的概率函数的计算。

philentropy包主要包括了2种度量的计算方法,距离度量和信息度量。本文介绍距离度量的使用,对于信息度量的使用,请参考文章R语言实现信息度量。

本文的系统环境为:

Win10 64bit

R: 3.4.2 x86_64-w64-mingw32

安装philentropy包,非常简单,一条命令就可以了。

~ R

> install.packages("philentropy")

> library(philentropy)

查看距离算法列表

> getDistMethods()

[1] "euclidean" "manhattan" "minkowski" "chebyshev"

[5] "sorensen" "gower" "soergel" "kulczynski_d"

[9] "canberra" "lorentzian" "intersection" "non-intersection"

[13] "wavehedges" "czekanowski" "motyka" "kulczynski_s"

[17] "tanimoto" "ruzicka" "inner_product" "harmonic_mean"

[21] "cosine" "hassebrook" "jaccard" "dice"

[25] "fidelity" "bhattacharyya" "hellinger" "matusita"

[29] "squared_chord" "squared_euclidean" "pearson" "neyman"

[33] "squared_chi" "prob_symm" "divergence" "clark"

[37] "additive_symm" "kullback-leibler" "jeffreys" "k_divergence"

[41] "topsoe" "jensen-shannon" "jensen_difference" "taneja"

[45] "kumar-johnson" "avg"

46个距离算法,有一些是我们常用的比如:euclidean,manhattan,minkowski,pearson, cosine,squared_chi, 其他的我也不知道,正好拓宽知识,好好学习一下。

philentropy包的函数,其实很简单,只有14个,大量的算法其实都已经被封装到distance()函数中,直接使用distance()函数就行完成各种算法的计算,让我们使用起来会非常方便。我们来看一下,函数列表:

distance(): 计算距离

getDistMethods(),

  • 1
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器人学导论是一门关于机器人学基础知识和原理的课程。在这门课的课后答案中,我们会涉及到许多与机器人有关的概念和技术。 首先,在课程中我们会学习机器人的定义和分类。机器人是能够自动执行任务的机械设备,可以根据预先设定的程序或者传感器反馈进行动作。根据其特点和应用范围的不同,机器人可以分为工业机器人、服务机器人、医疗机器人等等。 其次,我们会探讨机器人的感知和控制技术。感知是机器人获取外界信息的过程,它可以通过传感器对光、声、力等各信号进行感知。控制是使机器人按照预定程序进行动作的过程,可以通过算法和控制策略来实现。 还有,我们还会学习机器人的运动学和动力学。运动学研究机器人的位置、速度和加速度等几何特性,而动力学则研究机器人的力、扭矩等动力学特性。这些知识对于机器人的运动规划和控制至关重要。 此外,机器人的学习和人机交互也是机器人学导论中的重要内容。机器人学习是指机器人通过从数据中学习来改进自身性能的过程,可以利用深度学习、强化学习等方法。而人机交互则研究人类与机器人之间的交互方式和界面设计。 总的来说,机器人学导论课程主要介绍了机器人的基础概念、感知和控制技术、运动学和动力学、机器人的学习和人机交互等方面的知识。这些知识将为我们深入了解和研究机器人提供基础,并在未来的科技发展中发挥重要作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值