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;主干突变的理论依据在于广泛认知肿瘤是一个进化过程产物,不断的通过细胞克隆、自然选择,从而产生一个具有多样性的复杂体,因此被认为是从一个单细胞微进化而来的

Wordpress迁移到hexo(ECS)

从开始写博客至今已经2年有余;最开始选择博客系统的时候,由于wordpress操作比较简单,并且云虚拟机也比较便宜(其实这个才是重点。。。那时还不知道有Github。。。),所以就选择wordPress来搭建我第一个博客~

后来接触的事物多了,逐渐也了解到了多个博客系统,如:

  • Hexo,基于node.js的静态博客生成系统,使用markdown来写作,有多种丰富的插件和主题可供选择,文档完善,可以搭建在Github上(这个是重点,省钱省事。。。)
  • Hugo,基于Go的静态网站生成器,操作上跟Hexo比较类似,也可以搭建在Github上;网页生成速度上比Hexo快上很多(这个是很多人选择Hugo的原因之一)
  • Halo,基于Java的博客系统,这个跟wordpress比较类似,有完善的后台系统,上手管理容易,可搭建在各个服务器上
  • Wordpress,操作简单,插件丰富,主题可选度较高,搭建方便(一般虚拟机都已预安装好),我曾经戏说wordpress的操作就类似小时候的QQ空间。。点点点就好了。。。

R包-创建统计汇总表

统计汇总表是一个非常有用的数据展示方法,比如临床分析中,临床三线表就是一个典型的例子

一般在处理数据时,如果想对数据集做点简单统计,Hmisc包的describe函数会比较好用;如果想将统计汇总结果以html形式作为最终展示,这是可以参照这篇博文(写得非常的帮!!!)– How to Easily Create Descriptive Summary Statistics Tables in R Studio – By Group,因此分享一下,该文章总共归纳了9个用于创建汇总表的R包:

|