使⽤Python进⾏层次聚类(⼆)——scipy中层次聚类的⾃定义距离度量问题今天,总结⼀下如何使⽤层次聚类算法⾥⾯的⾃定义距离度量
南昌少儿培训班
ptember层次聚类已经总结过。
美国留学费用这次仅仅说明层次聚类的距离参数,这⾥的距离参数可以使⽤⾃定义函数。
我们进⼊该函数的我们看到linkage的说明⽂档上⾯的函数scipy.cluster.hierarchy.linkage(y, method='single',
metric='euclidean',optimal_ordering=Fal),传⼊第⼀个参数是需要进⾏层次聚类的数据,这⾥即可⽤使⽤开始读取的数据变量df,第⼆个参数代表层次聚类选⽤的⽅法,第三个参数代表距离计算的⽅法。
苍是什么颜色上次详细介绍了前两个参数,这次我们主要关注第三个参数,我们注意⼀下第三个参数的解释如下:
blanketmetric : str or function, optional
The distance metric to u in the ca that y is a collection of obrvation vectors; ignored otherwi.
See the pdist function for a list of valid distance metrics. A custom distance function can also be ud.
51雅思
指标:str或function,可选。
在y为观测向量集合的情况下使⽤的距离度规;否则忽略。
查看有效距离度量列表的pdist函数。还可以使⽤⾃定义距离函数。
直接传递字符串就不说了,因为⽆⾮就是那⼏种范数度量等⽅法,关键是这个函数可以⾃⼰定义距离。这就为我们进⾏层次聚类提供了很好的⼀个接⼝,因为在特定任务下,scipy函数⾥⾯给出的距离不⼀定能够满⾜我们⾃⼰的实际需求。为了能够⾃定义距离度量,我进⾏了⼀些测试,最后得出⾃定义距离度量函数需要注意以下⼏个⽅⾯:
函数传⼊两个参数:⽐如,⾃定义函数为:def lfDisFuc(a,b):
传⼊参数类型是<class 'numpy.ndarray'>中考试题及答案
传⼊参数的维度必须⼀样外语老师
返回值必须是⼀个代表距离的数
我这处理⾃定义函数时,因为处理的数据维度不⼀样,最后只好找到最⼤维度的数据,然后将不⼀样的所有绯闻女孩第四季剧情>high five
数据后⾯补上-1(我的数据中不会出现的⼀个数),然后再处理。
安照上⾯的三个规则,就能写出⾃⼰需要的距离衡量函数了。
下⼀篇: