C++游侠随机森林的Python绑定
skranger的Python项目详细描述
^ tt1}$提供了C++ {0}林实现的scikit-learn兼容python绑定,ranger,使用Cython。在
skranger的最新版本使用ranger的0.12.1版本。在
使用
有两个sklearn兼容类,RangerForestClassifier和RangerForestRegressor。还有一个RangerForestSurvival类,它旨在与scikit-survivalAPI兼容。在
RangeForestClassifier
RangerForestClassifier预测器使用ranger的ForestProbability类来启用predict和predict_proba方法。在
^{pr2}$RangerForestRegressor
RangerForestRegressor预测器使用ranger的ForestRegression类。它还支持使用predict_quantiles方法的分位数回归。在
fromsklearn.datasetsimportload_bostonfromsklearn.model_selectionimporttrain_test_splitfromskranger.ensembleimportRangerForestRegressorX,y=load_boston(return_X_y=True)X_train,X_test,y_train,y_test=train_test_split(X,y)rfr=RangerForestRegressor()rfr.fit(X_train,y_train)predictions=rfr.predict(X_test)print(predictions)# [26.27401667 8.96549989 24.82981667 27.92506667 28.04606667 45.4693# 21.89681787 40.30345 11.53959613 19.13675 15.88567273 16.69713567# ...# 20.29025364 26.21245833 23.79643333 14.03546362 21.24893333 34.8825# 21.22463333]# enable quantile regression on instantiationrfr=RangerForestRegressor(quantiles=True)rfr.fit(X_train,y_train)quantile_lower=rfr.predict_quantiles(X_test,quantiles=[0.1])print(quantile_lower)# [22. 5. 21.88 23.08 23.1 35.89 10.85 31.5 7.04 14.5 11.7 10.9# 8.1 28.38 7.2 19.6 29.1 13.1 24.94 21.09 15.6 11.7 10.41 14.5# ...# 18.9 21.4 9.43 8.7 26.46 18.99 7.2 19.27 18.5 21.19 18.99 18.88# 14.07 21.87 22.18 9.43 17.28 29.6 18.2 ]quantile_upper=rfr.predict_quantiles(X_test,quantiles=[0.9])print(quantile_upper)# [30.83 12.85 29.01 33.1 33.1 50. 29.75 50. 15. 23. 19.96 21.4# 20.53 50. 13.35 25. 48.5 19.6 46. 26.6 23.7 20.1 17.8 21.4# ...# 26.78 28.1 17.86 27.5 46.25 24.4 16.74 24.4 28.7 29.1 24.4 25.# 25. 31.51 28. 20.8 26.7 42.13 24.24]
牧场森林生存
RangerForestSurvival预测器使用ranger的ForestSurvival类,并且有一个类似于scikit-survival包中的RandomSurvivalForest的接口。在
fromsksurv.datasetsimportload_veterans_lung_cancerfromsklearn.model_selectionimporttrain_test_splitfromskranger.ensembleimportRangerForestSurvivalX,y=load_veterans_lung_cancer()# select the numeric columns as featuresX=X[["Age_in_years","Karnofsky_score","Months_from_Diagnosis"]]X_train,X_test,y_train,y_test=train_test_split(X,y)rfs=RangerForestSurvival()rfs.fit(X_train,y_train)predictions=rfs.predict(X_test)print(predictions)# [107.99634921 47.41235714 88.39933333 91.23566667 61.82104762# 61.15052381 90.29888492 47.88706349 21.25111508 85.5768254# ...# 56.85498016 53.98227381 48.88464683 95.58649206 48.9142619# 57.68516667 71.96549206 101.79123016 58.95402381 98.36299206]chf=rfs.predict_cumulative_hazard_function(X_test)print(chf)# [[0.04233333 0.0605 0.24305556 ... 1.6216627 1.6216627 1.6216627 ]# [0.00583333 0.00583333 0.00583333 ... 1.55410714 1.56410714 1.58410714]# ...# [0.12933333 0.14766667 0.14766667 ... 1.64342857 1.64342857 1.65342857]# [0.00983333 0.0112619 0.04815079 ... 1.79304365 1.79304365 1.79304365]]survival=rfs.predict_survival_function(X_test)print(survival)# [[0.95855021 0.94129377 0.78422794 ... 0.19756993 0.19756993 0.19756993]# [0.99418365 0.99418365 0.99418365 ... 0.21137803 0.20927478 0.20513086]# ...# [0.87868102 0.86271864 0.86271864 ... 0.19331611 0.19331611 0.19139258]# [0.99021486 0.98880127 0.95299007 ... 0.16645277 0.16645277 0.16645277]]
许可证
skranger在GPLv3下授权。在
发展
在本地开发时,建议安装已{TT20} $,^ {TT21}$和C++编译器。克隆后,运行make setup。这将设置ranger子模块,从.tool-versions安装python和poetry,使用poethy安装依赖项,将ranger源代码复制到skranger中,然后在本地virtualenv中构建和安装skranger。在
若要格式化代码,请运行make fmt。这将对.py文件运行isort和black。在
要运行测试和检查覆盖率,请运行make test。在
要在进行更改后就地重建,请运行make build。在
要创建python包工件,请运行make dist。在
要生成和查看文档,请运行make docs。在
- 项目
标签: