登录
  • #数学|统计

R ‌‌‍‍‌‍‍‌‍‌‌‍‍‌‌‍‌‌‌‌‍‍‌‍‍‌‍‍‌‍‌‍vs Python for decision tree

winddancer
587
5
DS 普遍使用的工具中Python越来越占主导地位。许多原本只有R版本的统计方法也都有了Python的版本。 但是仔细比较会发现, R版本和Python版本在细节处理上有不少差异。 以下举几个decision tree的例子。 由于random forest, gradient boosting 基于decision tree, 所以也都有类似的问题。

Categorical variable

rpart 可以自动处理categorical variable。

sklearn DecisionTreeRegressor/DecisionTreeClassifier 不能, 需要事先在data preprocessing时做one hot encoding。

Missing values in predictors

rpart assume missing not at random, 可以通过surrogate split自动处理missing values in predictors, 这一方法利用了correlation among predictors。

sklearn DecisionTreeClassifier/DecisionTreeRegressor 不能自动处理missing values。 sklearn 有impute module 可以预处理数据,不过值得注意的是SimpleImputer 往往只是使用mean/median 来impute missing values, 这种方式无法利用变量之间的关联性。 如果missing values 比较多的话, 不同的imputation方法对model performance 影响很大。

总结: 许多的统计方法最初都是以R package的方式面世的, python module 作为re-implementation难免会有所不同。 在使用中需要注意细节有很多, 这个帖子讨论的比较有限, 也希望看到有更多这方面的总结。
5条回复
热度排序

发表回复