笔记 Bioinformatics Algorithms Chapter7

一、Lloyd算法

 

算法1 Lloyd Algorithm  k_mean clustering
* Centers to Clusters: After centers have been selected, assign each data point to the cluster corresponding to its nearest center; ties are broken arbitrarily.
* Clusters to Centers: After data points have been assigned to clusters, assign each cluster’s center of gravity to be the cluster’s new center.

 

二、Soft-Kmeans 聚类

  • Lloyd算法的缺点是对每个数据做出是或者非的决定;一种soft-kmean聚类方法对每个点属于哪一类,用一个评分体系来衡量

(1)条件概率

掷两个不知道bias的骰子,你要通过五组骰子掷出的结果来判断每次掷的是哪种骰子

  五组实验,掷出 head的频率

由估计出的骰子的分种,来计算每种骰子的bias,其中HiddenVector是一个用于对每种骰子分类的向量,筛子为A,值为1;骰子为B,值为0

用向量表示 

上面是一个知道骰子的属性,计算每个骰子的bias

下面讲述知道每个骰子的bias,根据一组数据知道骰子的属性:

思路是:例如某次实验数据是掷出7个head,3个back,并且知道biasA是0.6,biasB是0.82

那么 

由实验结果和bias得出A的几率更大,这次数据是由A骰子掷出的

 利用条件概率的符号表示,那就是  Pr(DataiA) > Pr(DataiB)

(2)提出问题

我们可以由数据和参数(bias)推出HiddenVector

也可以以由数据和HiddenVector推出参数bias

那么,如果HiddenVector和参数(bias)都不知道怎么办

这个问题可以描述如下

(3)类似于Lloyd算法,我们可以随机选取初始的参数(bias),算出HiddenVector,然后利用HiddenVector算出参数,如此循环

(Data, ?, Parameters) → (Data, HiddenVector, Parameters) 
                   → (Data, HiddenVector, ?) 
                   → (Data, HiddenVector, Parameters') 
                   → (Data, ?, Parameters') 
                   → (Data, HiddenVector', Parameters') 
                   →                  ...           

但是,对每个数据武断地认定用的是A还是B骰子是不好的,对于HiddenVector,可以将其转变为HiddenMatrix,其中在一列中,每个数是该条件概率的占比 

计算参数(bias)的过程也可以推导为 

(4)The expectation maximization algorithm

 对于一般的聚类问题,HiddenMatrix的计算就难以使用条件概率的占比,

HiddenMatrix每一列的值,其实是对每个数据点属于哪一类进行打分那么,当然是离某一个Center越近,这个打分应该越高

  • 牛顿打分法:将每个Center看成恒星,数据看成行星,那么当然是离恒星越近,引力越大,利用Newtonian inverse-square law of gravitation打分:

  • 利用统计物理学的打分方法效果更好

 

HiddenMatrix的计算方法同上

 

三、Introduction to distance-based clustering

类似于进化树的构建

 

可以完成前两类的聚类,但是第三类不行 

 

转载于:https://www.cnblogs.com/lokwongho/p/9978701.html

matlab开发-用Lloydsalgorithm绘制图片 matlab开发-用Lloydsalgorithm绘制图片。用加权Lloyd算法点画图像 立即下载

相关推荐

soft-kmeans:使用Python轻松实现Soft K-Means

软K均值 Soft K-Means算法的实现 要求 Python3. Numpy matplotlib 可视化结果 可视化3个集群的结果

Lloyd’s 算法 和 K-Means算法

在讲Lloyd’s 算法之前先介绍Voronoi图 在数学中,Voronoi图是基于到平面的特定子集中的点的距离将平面划分成区域。预先指定一组点(称为种子,站点或生成器),并且对于每个种子,存在相应的区域,该区域由更接近该种子的所有点组成,而不是任何其他点。这些区域称为Voronoi细胞。 在最简单的情况下,如图所示,我们在欧几里德平面上给出了一组有限的点{p1,...,pn}。在这种情况...

weixin_30294709的博客 4396

lloyd:用于分配2D点的约束Lloyd迭代

劳埃德算法 该软件包提供Lloyd算法的Python实现,可用于在空间中分布点。 使用此算法,可以在二维空间内稍微重新排列点,以最大程度地减少重叠点的数量,同时保留整体点的分布,从而可以大大提高数据可视化的可用性。 背景 是一种在空间中分布点的算法。 在每次迭代期间,该算法都会构建一个,该将每个点放置在不同的单元格中,然后将每个点置于其单元格的中心。 通过运行算法的几次迭代,可以在空间中越来越均匀地分布点。 下图显示了劳埃德算法如何在空间中分配点: 用法 该软件包可以通过pip安装: pip install lloyd 安装软件包后,可以通过构建模型,在该模型上调用lloyd.relax(

K-Means的三种迭代算法

K-Means是机器学习算法中一个比较经典的聚类算法 具体的实现方式主要有三种:Lloyd(Forgy),Hartigan-Wong和MacQueen Lloyd算法 Lloyd算法也可以称作Forgy或者Lloyd-Forgy,是最为经典简单的K-means迭代算法,其步骤如下: 1. 随机选取K个点作为初始的中心点 2. 计算每个点与K个中心点的K个距离(假如有N个点,就有N*...

joeland209的博客 2万+

K-Means使用详解(scikit-learn)

    K-means算法是最经典的聚类算法,本文对scikit-learn中的kmeans进行说明,以便以后使用。    要使用kmeans算法的话,首先需要进行import:from sklearn.cluster import KMeans    scikit-learn中,通过KMeans进行对象的新建,并传入算法参数进行参数设置。    传参详解    1、n_clusters : 聚类...

qq_34104548的博客 2万+

笔记 Bioinformatics Algorithms Chapter1

Chapter1 WHERE IN THE GENOME DOES DNA REPLICATION BEGIN 一、 ·聚合酶启动结构域会结合上游序列的一些位点,这些位点有多个,且特异,并且分布在两条链上。通过计算,找到出现频率最高的k-mer可能为为聚合酶结合位点:dnaA BOX。 但是如何定位Ori的大概位置呢? ·DNA链复制的不对称性,其导致突变速率的不...

weixin_30241919的博客 247

笔记 Bioinformatics Algorithms Chapter2

Chapter2 WHICH DNA PATTERNS PLAY THE ROLE OF MOLECULAR CLOCKS 寻找模序 一、 转录因子会结合基因上游的特定序列,调控基因的转录表达,但是在不同个体中,这个序列会有一些差别。本章讲述用贪婪、随机算法来寻找这个序列:寻找模序。 二、一些概念: 1. Score、Profile 的含义如图 根据pr...

weixin_30693683的博客 345

读书笔记 Bioinformatics Algorithms Chapter5

Chapter5 HOW DO WE COMPARE DNA SEQUENCES Bioinformatics Algorithms-An_Active Learning Approach http://bioinformaticsalgorithms.com/ 一、 1983年,Russell Doolitte 将血小板源生长因子[platelet derive...

weixin_30500473的博客 440

An Introduction to Bioinformatics Algorithms - III - Chapter5 Greedy Algorithm

Biological Problem: Rearrangement often happened in mammalian evolutionary history. For example, human X chromosome

Coraline_second_year的专栏 1581

An Introduction to Bioinformatics Algorithms - II - page79 -114

Finally step into the world of Algorithm...

Coraline_second_year的专栏 873

INTRODUCTION TO BIOINFORMATICS

INTRODUCTION TO BIOINFORMATICS 这套教程源自Youtube,算得上比较完整的生物信息学领域的视频教程,授课内容完整清晰,专题化的讲座形式,细节讲解比国内的京师大学堂的Mooc教程好过10000倍.下面是视频的快速链接还有文档讲义哦,很好的东东,链接分享给国内的朋友们. =课程主页:http://...

Tsingke 148

An Introduction to Bioinformatics Algorithms - I - page1-78

6/24 give me example what is pseudocode; 6/25 biological algorithm is even more complicated than computer algorithm; how to solve change problem. 6/28. Use Fibonacci to illustrate the difference betwe

Coraline_second_year的专栏 975

Algorithms In Bioinformatics (Ch 1,2) 第二章课后题 2.7.7

题目描述 Consider the follwing alignment: A C - G G T T A T - - C T G G - - A T C ans the following score matrix. A C G T A 1 C ...

weixin_35338624的博客 363

Bioinformatics:生物信息学算法的Python实现

Bioinformatics:生物信息学算法的Python实现 项目介绍 Bioinformatics 是一个开源项目,它提供了基于 Python 3 的生物信息学算法实现。该项目受到了《Bioinformatics Algorithms: an Active Learning Approach》一书以及 Rosalind.info 平台的启发。项目涵盖了从 DNA 复制起始点的寻找,到基因组组装...

gitblog_01123的博客 893

Lloyd’s algorithm与K-Means

zjpp2580369的博客 2407

lloyds matlab,Lloyd算法

Lloyd's AlgorithmRuns Lloyd's algorithm on the particles at xy positions (Px,Py) within the boundary polygon crs for numIterations iterations.showPlot = true will display the results graphically.Lloyd...

weixin_39817176的博客 1285

数据挖掘十大经典算法(2) The k-means algorithm

k-means algorithm算法是一个聚类算法,把n的对象根据他们的属性分为k个分割,k   假设有k个群组Si, i=1,2,...,k。μi是群组Si内所有元素xj的重心,或叫中心点。   k平均聚类发明于1956年, 该算法最常见的形式是采用被称为劳埃德算法(Lloyd algorithm)的迭代式改进探索法。劳埃德算法首先把输入点分成k个初始化分组,可以是随机的或者使用一些

天边那颗星 1332

【作业】Lloyd-Max算法

weixin_43878172的博客 1601
上一篇: 冯志霞201771010107《面向对象程序设计(java)》第十二周学习总结
下一篇: Android学习——AlertDialog
weixin_30485379
博客等级 码龄11年 135粉丝 2411原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值