0%

支持向量机(support vector machines, SVM)是一种二类分类模型,其很好的解决了感知机中模型有多解的问题,其基本模型是定义在特征空间上的间隔最大的线性模型

从历史上来讲SVM可谓是无人不知,但我第一次了解其是在一篇用SVM来在血液RNA表达数据中寻找生物标志物的文献(尴尬。。。),当时由于一连串看不懂的SVM术语,使我放弃了那篇文献方法部分的阅读。。。由于最近想从头开始了解下机器学习的一点知识,所以决定好好梳理下SVM实现的基本思路,了解其使用条件以及应用场景,不然可能连基本的调参都看不懂。。。下面是我摘抄的笔记(主要结合《统计学习方法》以及各个博客文章),不涉及公式推导(可参照网上大神们的资料),最后以代码形式整理下SVM的思路

Read more »

逻辑斯蒂回归(logistic regression)是一个非常常见的统计学分类方法,虽然其名字中带有回归两个字,但是其主要还是用于解决二分类的问题;至于逻辑斯蒂这个绕口的名字,则是来源于逻辑斯蒂分布

Read more »

决策树(decision tree)是一种基本的分类与回归方法;其分类决策模型是一种对类进行分类的树形结构,由节点和有向边组成;节点除了根节点外,又分为内部节点和叶节点,前者表示一个特征,后者表示一个类

Read more »

朴素贝叶斯属于生成模型,属于贝叶斯分类的算法,以贝叶斯定理为基础,因此如需看懂其公式推导方式,则需要了解什么是先验概率、条件概率以及后验概率;同时了解什么是条件概率公式,什么是全概率公式,进而可以推导出什么是贝叶斯公式

Read more »

Consensus Clustering(一致性聚类),无监督聚类方法,是一种常见的癌症亚型分类研究方法(如乳腺癌中的PAM50),可根据不同组学数据集将样本区分成几个亚型,从而发现新的疾病亚型或者对不同亚型进行比较分析(Justification for using consensus clustering(wiki))

Read more »

之前看到一个公众号文章分享了Github上的一个资源玩游戏一样学 Git 分支,这个 GitHub 热门别再错过了,才发现自己对于Git的理解只停留在:其是一个仓库,然后pull and push,over;因此正好借助着这个闯关学习Git资源,就试着玩玩,从头了解下如何用Git进行版本控制

Read more »

k近邻(KNN)算法是一种简单易于实现的监督机器学习方法,可用于解决分类和回归问题(这里取决于KNN算法最后返回值的处理方法)

  • 分类问题:返回值为k个训练标签中占大多数的类
  • 回归问题:返回值为k个训练标签对应值的平均值
    Read more »

面向对象

Python从设计之初就已经是一门面向对象的语言;面向对象能有效提高编程的效率,通过封装技术,消息机制可以像搭积木的一样快速开发出一个全新的系统。面向对象是指一种程序设计范型,同时也是一种程序开发的方法。对象指的是类的集合。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。

Read more »

感知机(perceptron)是二类分类的线性分类模型,属于判别模型,是支持向量机(SVM)的基础,两者都是属于监督学习的一种分类器,而后者在生物信息学处理分类问题中应用非常广泛(尤其是在生物标记物biomarker研究以及癌症预后等研究中)

Read more »

FCM(Fuzzy C-Means)算法是一个模糊聚类算法,是对早期硬K-means聚类的一种改性,克服了硬聚类的非此即彼的分类缺点。

FCM属于软聚类,它允许一个数据点可以属于多个类,FCM的价值函数跟K-means非常相似,但其引入了隶属度的概念,使得每个数据点用值在[0,1]的隶属度来确定其属于各个组的程度,其结果是每个数据点对聚类中心的隶属程度(membership),取值在0-1之间,并进行归一化使得总和等于1;因此FCM的思想是使得被划分到同一组下的数据点之间相似性最大,而不同组之间的相似度最小

Read more »

最近在看到CNV的时候,发现一些检测CNV的分析方法都是基于隐马尔可夫模型(HMM),而HMM在生物信息学中也应用广泛。如早期的DNA序列分析(对一家族序列建立HMM模型),还有预测DNA编码区域(对已知或者指定序列进行训练从而构建HMM模型),以及CNV分析(在Segmentation中利用HMM模型预估CNV数目,确定相应区域的拷贝数)等等

HMM是生物信息学中比较流行的机器学习和模式识别方法,它具有对模型中的一些隐性参数进行识别和优化的能力,使得这种模型具有很强的鲁棒性,并且可以随着训练深入进一步提高识别精度,同时这种自适应的模型能够有效地实现检测过程中的参数优化

因此整理下<<统计学习方法>>的隐马尔可夫模型和一些网上资料

Read more »

最近看了一些Galaxy的一些官方文档,学习下如何在Galaxy这个开源生信云平台上构建一些分析工具,最后不是太令人满意;整体上Galaxy还是很好的一个平台工具,其开源平台再加上开发者们提供的开源分析流程能很好的搭建一些生信分析流程,其也设定好了一个前段-后端的框架,用户可以通过注册并登陆,以及保存数据集以及分析的输入/输出文件,也可以通过html文件设定登陆界面等等

Read more »

现在CNV分析方法有很多,但是随着NGS成本的降低,高深度的测序下背景下,read count(depth)方法逐渐变为各个分析软件的主流。最近在看GATK的CNV分析方法,其中在创建PoN(PanelofNormals)和denoise过程都使用了PCA(Principal Component Analysis)的奇异值分解(Singular Value Decomposition, SVD)方法,因此有比较对PCA思路做个梳理以及了解下常见的如何使用PCA来降噪(denoise)

Read more »

继续整理shiny的几个用法

Download two or more plots in one download button

最近遇到的一个问题:如何在Shiny上通过download按钮同时下载多张图片。网上也有人提了相同的问题,但是没有给出合适的解决办法

Read more »

本来只是单纯想用Mutect2来重复下文献的分析过程,结果变成了Mutect2的使用笔记。。GATK的Mutect2相关文档非常详细,思路及理念也讲的很清楚,FAQ也很完善https://gatkforums.broadinstitute.org/gatk/discussions/tagged/mutect2,是个很好的学习过程

Read more »

最近学Python的一部分原因是我想用Python的docx包来写一个自动化生成word报告的脚本(需求产生动力),本来是打算用rmarkdown来出报告的,其对网页版支持比较好(样式也好看),对PDF支持也不错(毕竟可以依靠latex),但是对于word的可操作性并是不很好(可能使用的比较粗糙);最后听人说Python的docx包不错,专门对于window下的word进行操作,所以尝试下

Read more »

字符串

Python将字符串、列表和元组都当做序列,因此可对序列操作的函数都适用于以上三者,因此在Perl中常用的索引、切片等操作都适用于字符串,这相比Perl就方便多了,如:

"Hello"[1]
Read more »

shinythemes

使用shinythemes包,可以给shiny app设置一个Bootstrap theme,使其看起来更加美观

所有的theme均来自于http://bootswatch.com/,现在这个包里所包含的theme有大约16种,我们可以在ui.R里写入shinythemes::themeSelector()来调用一个theme选择器,你可以在选择器的下拉框中依次查看每个theme的效果,示例代码展示网站:https://gallery.shinyapps.io/117-shinythemes/

如果确定选择某个theme后,则在ui.R中用下述代码调用

theme = shinytheme("cerulean")

有从上述Bootstrap网站中下载的主题(未包含在shinytheme包),可以将bootstrap.css放在www文件夹下,然后再用theme参数调用theme = bootstrap.css

Read more »