配置Spotfire-Statistics-Services

这是我整理的关于Spotfire的第三篇文章,主要记录下如何在Spotfire中安装Spotfire Statistics Services服务;由于网上相关资料比较少,而官方文档有些细节没写清楚,因此折腾了好久,因此记录下大致的过程。。。希望能帮助到大家,节省点时间哈(虽然用Spotfire的人真的不多)~

Use R in Spotfire

上篇 Spotfire ironpython示例小结 主要整理了关于Spotfire中关于如何使用Ironpython来拓展Spotfire使用范围,即通过脚本来控制分析及展示的过程

这篇文章主要整理下关于Spotfire中TERR脚本使用注意事项,TERR是一个集成在Spotfire中的一个R版本,代码的函数以及R包的用法大部分都跟Open R(常见的R版本)一样,唯一需要注意的是如何将其结果输出到Spotfire的一些文档属性或者可视化图形中

Prognostic-and-predictive

在肿瘤研究中,bioinformatics是一个很好的用于寻找biomarker的方法,其中会涉及到两个概念:预后生物标记物(prognostic biomarker)和预测生物标记物(predictive biomarker);最近在一个biomarker探索性研究中把两者搞混了,经推荐看了一篇文章(预后因素?预测因素?一字之差,谬之千里),以及结合研究数据才把两者搞清楚,因此粗略的做个记录

Scikit-learn Pipeline and ColumnTransformer

Pipeline

Pipeline可以用来简化构建变换和模型链的过程

Pipeline的好处:

  1. 构建好Pipeline后,只需要一次fitpredict,即可避免对每一个estimators都调用一遍fittransform
  2. 如果使用grid search,即一次历遍所有estimators的参数
  3. 避免测试集的信息泄露到交叉验证训练集中(典型的就是在做交叉验证前做了scale,这样会leaking statistics)

Categorical Feature Encoding

记录来自Kaggle的一次playground competition(Categorical Feature Encoding Challenge);备注,Kaggle比赛分类以下几种类型,摘抄自知乎回答

  • Getting Started(面向初学者),非常适合入门级的参赛者用来练手,但没有奖牌或奖金,只能看到自己的排名
  • Playground(面向初学者),项目难度比Getting Started稍难,主要是一些趣味性的比赛,看创意而不是解决具体的研究问题,奖励可能是奖金、荣誉,不能获得奖牌
  • Featured(面向竞赛者),是Kaggle上主要的竞赛类型,为解决商业问题而设立的比赛,奖金高竞争激烈,有金银铜牌奖励,对参赛选手的能力有一定的要求
  • Research(面向竞赛者),致力于解决科研界学术界的前沿问题,偏向于实验性质,较难;竞争没那么激烈,通常也有奖金和金银铜牌,但有的比赛只给荣誉奖励,或者是提供参加顶会的机会
  • Recruitment(面向求职者),赞助商为招聘数据科学家而设立的比赛,奖励就是赞助商提供的工作机会
  • Annual,不是严格意义上的比赛,每年两次,一次是美国大学篮球锦标赛期间的三月机器学习比赛,一次是圣诞节期间的圣诞主题优化比赛
  • Limited participation,通常是私人赛或邀请赛,例如只有master级别及以上才能参加的Master’s Competition

Jupyter notebook远程访问设置

最近在Kaggle中学习一些关于ML的方法,其提供的 kernel是一个很好的工具,非常类似于Jupyter notebook

kaggle Kernel本质上是一种jupyter笔记本,可以在浏览器中直接运行代码,并提供免费的gpu

但是遇到一个问题:如果某个训练的模型需要跑N个小时,kernel有时会由于一些原因(可能网络,也可能是无法长时间待机)导致断开;待重开打开后,模型又要重新跑了(而且是该notebook里所有代码都要重新跑)。。。

如果将代码拿到本机上跑,则太占用资源(CPU/内存),有时由于配置不够的原因,导致模型训练速度大大拉长。。

这时我才想起来可以在服务器上安装个Jupyter notebook,然后本机远程连接即可,只要网络不出问题,即可长时间的待机运行代码

Scikit-learn Grid Search

在机器学习模型中,需要人工选择的参数称为超参数。比如SVM的Ckernelgamma,随机森林的n_estimators,人工神经网络模型中的隐藏层层数和每层的节点个数等等

对于各个分类器,各个参数及其对应值都通过get_params()获取

最常用的方法就是网格搜索(grid search),从而获得最佳的cross-validation的score,其中可分为:

  • GridSearchCV
  • RandomizedSearchCV

Scikit-learn Feature selection

机器学习(周志华):有用的属性称为“相关特征”(relevant feature),没用的属性称为“无关特征”(irrelevant feature)。从给定特征值集合中选择出相关特征子集的过程,称为“特征选择”(feature selection)

之前对于数据的处理一直比较喜欢用R,但是Python的scikit-learn库对于机器学习又比较的友好,因此打算多学点scikit-learn库;其实个人觉得很多方法R或者Python都能实现,原理都是一样的,只是在于哪个实现的更快更熟练罢了

sklearn.feature_selection是用于feature筛选(增加模型的精确度)或者降维(提高在高维数据中的性能)的模块

文献阅读-Identification of trunk mutations in gastric carcinoma

文章:Identification of trunk mutations in gastric carcinoma: a case study

这个不知道啥时候写的一篇文献总结。。。怀念下以前看文献的时光~

文章背景

这是一篇proof-of-concept研究,通过最近几年的大规模测序研究,大家发现对于癌症是一个heterogeneous disease,肿瘤内异质性(Intratumor heterogeneity (ITH))使得肿瘤内存在着许多不同肿瘤突变的细胞,这对于精准医疗、靶向治疗以及免疫治疗是一个急迫需要解决的问题。因此作者想从肿瘤细胞的主干突变(trunk mutations)入手,来研究ITH;主干突变的理论依据在于广泛认知肿瘤是一个进化过程产物,不断的通过细胞克隆、自然选择,从而产生一个具有多样性的复杂体,因此被认为是从一个单细胞微进化而来的

|