C++游侠随机森林的Python绑定

skranger的Python项目详细描述


actionstravisrtdpypipyversions

^ tt1}$提供了C++ {0}林实现的scikit-learn兼容python绑定,ranger,使用Cython。在

skranger的最新版本使用ranger0.12.1版本。在

安装

skrangerpypi上提供,可以通过pip安装:

pip install skranger

使用

有两个sklearn兼容类,RangerForestClassifierRangerForestRegressor。还有一个RangerForestSurvival类,它旨在与scikit-survivalAPI兼容。在

RangeForestClassifier

RangerForestClassifier预测器使用ranger的ForestProbability类来启用predictpredict_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]]

许可证

skrangerGPLv3下授权。在

发展

在本地开发时,建议安装已{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。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
javaelk:如何在Kibana中按异常类对stacktrace进行分组   java两个组件使用MigLayout相互重叠   java Hibernate标准获取关联实体的列表,而不是父实体的列表   从Java关闭另一个应用程序,但不是由当前Java应用程序启动   java使用OGNL获取参数   java如何在SSLEngine中启用密码TLS\U DHE\U RSA\U和\U AES\U 256\U GCM\U SHA384   在Java中有效地比较两个列表<Object[]>   java杀死挂起的线程   在java中从指定模式前后的字符串中提取子字符串   存储整数的java HashMap替代方案   java如何使用LibGDX加载特定于语言的资产?   java如何使用JSON响应从维基百科读取结构化数据   java无法连接到Spark Master:原因是:[已解除关联]   java如何配置Elastic beanstalk classic负载平衡器以使用CLI终止HTTPS   java筛网中的奥斯汀大于int   java PircBot在每个用户上迭代一组命令   java将带有Jackson的hashmap编组为XML的错误结构   testng中的java设置testfailure给出了正回报   java如何在IntelliJ中正确配置Eclipse项目?