python聚类分析实例_Biopython - 聚类分析
教 程 目 录
通常,聚类分析是将一组对象分组到同一组中.这个概念主要用于数据挖掘,统计数据分析,机器学习,模式识别,图像分析,生物信息学等.可以通过各种算法来实现群集在不同分析中的广泛应用.
根据生物信息学,聚类分析主要用于基因表达数据分析,以找到具有相似基因表达的基因组.
在本章中,我们将检查重要的Biopython中的算法可以理解真实数据集上聚类的基本原理.
Biopython使用Bio.Cluster模块来实现所有算法.它支持以下算法 :分层聚类
K - 聚类
自组织地图
主成分分析
让我们简单介绍一下上面的算法.
分层聚类
分层聚类用于通过距离度量将每个节点链接到最近的邻居并创建一个聚类. Bio.Cluster节点有三个属性:left,right和distance.让我们创建一个简单的集群,如下所示 :>>> from Bio.Cluster import Node
>>> n = Node(1,10)
>>> n.left = 11
>>> n.right = 0
>>> n.distance = 1
>>> print(n)
(11, 0): 1
如果要构建基于树的聚类,请使用以下命令 :>>> n1 = [Node(1, 2, 0.2), Node(0, -1, 0.5)] >>> n1_tree = Tree(n1)
>>> print(n1_tree)
(1, 2): 0.2
(0, -1): 0.5
>>> print(n1_tree[0])
(1, 2): 0.2
让我们使用Bio.Cluster模块执行分层聚类.
考虑距离是在数组中定义的.>>> import numpy as np
>>> distance = array([[1,2,3],[4,5,6],[3,5,7]])
现在添加树簇中的距离数组.>>> from Bio.Cluster import treecluster
>>> cluster = treecluster(distance)
>>> print(cluster)
(2, 1): 0.666667
(-1, 0): 9.66667
上面的函数返回一个树集群对象.此对象包含将项目数量聚集为行或列的节点.
K - 聚类
这是一种分区算法并已分类进入k - 意味着,中位数和medoids聚类.让我们简要理解每个聚类.
K-means聚类
这种方法在数据挖掘中很流行.此算法的目标是在数据中查找组,其中组由变量K表示.
算法迭代地将每个数据点分配给K组之一基于提供的功能.数据点基于特征相似性进行聚类.>>> from Bio.Cluster import kcluster
>>> from numpy import array
>>> data = array([[1, 2], [3, 4], [5, 6]])
>>> clusterid, error,found = kcluster(data)
>>> print(clusterid) [0 0 1]
>>> print(found)
1
K-medians Clustering
这是另一种类型的聚类算法计算每个聚类的平均值以确定其质心.
K-medoids聚类
此方法基于一组给定的项目,使用距离矩阵和用户传递的簇数.
考虑下面定义的距离矩阵 :>>> distance = array([[1,2,3],[4,5,6],[3,5,7]])
我们可以使用以下命令计算k-medoids聚类 :>>> from Bio.Cluster import kmedoids
>>> clusterid, error, found = kmedoids(distance)
让我们考虑一个例子.
kcluster函数需要一个数据矩阵作为输入而不是Seq实例.您需要将序列转换为矩阵并将其提供给kcluster函数.
将数据转换为仅包含数字元素的矩阵的一种方法是使用numpy. fromstring功能.它基本上将序列中的每个字母转换为ASCII对应字符.
这将创建一个编码序列的2D数组,kcluster函数识别并用于聚类序列.>>> from Bio.Cluster import kcluster
>>> import numpy as np
>>> sequence = [ 'AGCT','CGTA','AAGT','TCCG']
>>> matrix = np.asarray([np.fromstring(s, dtype=np.uint8) for s in sequence])
>>> clusterid,error,found = kcluster(matrix)
>>> print(clusterid) [1 0 0 1]
自组织地图
这种方法是一种人造的神经网络.它由Kohonen开发,通常称为Kohonen地图.它根据矩形拓扑将项目组织成簇.
让我们创建一个使用相同数组距离的简单集群,如下所示 :>>> from Bio.Cluster import somcluster
>>> from numpy import array
>>> data = array([[1, 2], [3, 4], [5, 6]])
>>> clusterid,map = somcluster(data)
>>> print(map)
[[[-1.36032469 0.38667395]]
[[-0.41170578 1.35295911]]]
>>> print(clusterid)
[[1 0]
[1 0]
[1 0]]
在这里, clusterid是一个包含两列的数组,其中行数等于已群集的项目数,数据是一个维度为行或列的数组.
主成分分析
主成分分析对于可视化高维数据非常有用.这是一种使用线性代数和统计学中的简单矩阵运算来计算原始数据投影到相同数量或更少维度的方法.
主成分分析返回元组列,坐标,组件和特征值.让我们看一下这个概念的基础知识.>>> from numpy import array
>>> from numpy import mean
>>> from numpy import cov
>>> from numpy.linalg import eig
# define a matrix
>>> A = array([[1, 2], [3, 4], [5, 6]])
>>> print(A)
[[1 2]
[3 4]
[5 6]]
# calculate the mean of each column
>>> M = mean(A.T, axis = 1)
>>> print(M)
[ 3. 4.]
# center columns by subtracting column means
>>> C = A - M
>>> print(C)
[[-2. -2.]
[ 0. 0.]
[ 2. 2.]]
# calculate covariance matrix of centered matrix
>>> V = cov(C.T)
>>> print(V)
[[ 4. 4.]
[ 4. 4.]]
# eigendecomposition of covariance matrix
>>> values, vectors = eig(V)
>>> print(vectors)
[[ 0.70710678 -0.70710678]
[ 0.70710678 0.70710678]]
>>> print(values)
[ 8. 0.]
让我们将相同的矩形矩阵数据应用于Bio.Cluster模块,如下所述 :>>> from Bio.Cluster import pca
>>> from numpy import array
>>> data = array([[1, 2], [3, 4], [5, 6]])
>>> columnmean, coordinates, components, eigenvalues = pca(data)
>>> print(columnmean)
[ 3. 4.]
>>> print(coordinates)
[[-2.82842712 0. ]
[ 0. 0. ]
[ 2.82842712 0. ]]
>>> print(components)
[[ 0.70710678 0.70710678]
[ 0.70710678 -0.70710678]]
>>> print(eigenvalues)
[ 4. 0.]
相关新手教程:
python聚类分析实例_Biopython - 聚类分析相关推荐
- python导入数据聚类分析实例_聚类分析实战解析与总结 - 数据分析
聚类分析是没有给定划分类别的情况下,根据样本相似度进行样本分组的一种方法,是一种非监督的学习算法.聚类的输入是一组未被标记的样本,聚类根据数据自身的距离或相似度划分为若干组,划分的原则是组内距离最小化 ...
- weka_ 聚类分析实例演练
weka_ 聚类分析实例演练 1.数据准备:下载链接 http://download.csdn.net/detail/xuxurui007/6753847 2.聚类原理 聚类分析中的&qu ...
- 用python实现视频换脸_超简单使用Python换脸实例
换脸! 这段时间,deepfakes搞得火热,比方说把<射雕英雄传>里的朱茵换成了杨幂,看下面的图!毫无违和感! 其实早在之前,基于AI换脸的技术就得到了应用,比方说<速度与激情7& ...
- python简单编程例子-python简单实例训练(21~30)
注意:我用的python2.7,大家如果用Python3.0以上的版本,请记得在print()函数哦!如果因为版本问题评论的,不做回复哦!! 21.题目:将一个正整数分解质因数.例如:输入90,打印出 ...
- python脚本实例手机端-python链接手机用Python实现命令行闹钟脚本实例
前言: 这篇文章给大家介绍了怎样用python创建一个简单的报警,它可以运行在命令行终端,它需要分钟做为命令行参数,在这个分钟后会打印"wake-up"消息,并响铃报警,你可以用0 ...
- python爬虫实例-记录一次简单的Python爬虫实例
本次的这篇文章主要是和大家分享了一篇关于记录一次简单的Python爬虫实例 ,有需要的小伙伴可以看一下. 主要流程分为: 爬取.整理.存储 1.其中用到几个包,包括 requests 用于向网站发送请 ...
- python经典案例-Python经典实例
本书是Python经典实例解析,采用基于实例的方法编写,每个实例都会解决具体的问题和难题.主要内容有:数字.字符串和元组,语句与语法,函数定义,列表.集.字典,用户输入和输出等内置数据结构,类和对象, ...
- python程序格式框架的描述_python 程序语言设计(嵩天)-学习笔记(第二章python 程序实例解析)...
第 2 章 python 程序实例解析 学习目标: 掌握解决计算问题的一般方法. 掌握python语言的基本语法,包括缩进.变量.命名等. 掌握python语言绘制图形的一般方法. 了解python标 ...
- 涵盖 14 大主题!最完整的 Python 学习实例集来了!
机器学习.深度学习最简单的入门方式就是基于 Python 开始编程实战.最近闲逛 GitHub,发现了一个非常不错的 Python 学习实例集,完全是基于 Python 来实现包括 ML.DL 等领域 ...
- python组成不重复的三位数是多少_超星Python 练习实例1-组成多少个互不相同且无重复的三位数字...
数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. 程序源代码: #!/u ...
最新文章
- 一文读懂 Spring Boot、微服务架构和大数据治理三者之间的故事
- 零基础前端入门,真正难在哪里?简说编程思想和逻辑思维
- 向上类型转换和拷贝构造函数
- 面试精讲之面试考点及大厂真题 - 分布式专栏 14 全面了解Kafka的使用与特性
- css内容渐入效果实现
- HRCAD2008 无法加载问题
- xd设计的原型图能否导出html格式,XD-餐饮app原型设计与代码导出
- tiny4412移植U-Boot 2020.07
- html游戏 养狗,一起来养狗手游-一起来养狗手游安卓版预约_第一手游网
- Linear-gradient()
- VMware中性能分配的问题
- 青龙面板之白嫖游戏云
- 学大伟业 Day 2 培训总结
- 对于支付宝里面推荐的基金大家怎么看待呢?
- vue视频播放组件vue-mini-player
- rj45 千兆接口定义_网线的RJ45接口的针脚定义
- c语言:递归求学生年龄问题
- TO_DATS() AS ABAP_DATE
- Spark 2.0的SparkSession详解
- Gitlab关闭开放注册功能