一个用于梯度增强的小型机器学习库

starboost的Python项目详细描述


logo
build_statustest_coveragelicense


如果你在找文档,请查看website

这是什么?

这是starboost,一个实现渐变增强的python库。梯度boosting是一种用于有监督学习的有效且流行的机器学习算法。

scikit learn不是已经这样做了吗?

实际上,scikit学习implements gradient boosting,但唯一受支持的弱学习者是决策树。本质上,梯度增强可以用于其他弱学习者而不是决策树。

xgboost/lightgbm/catboost怎么样?

所提到的库是梯度增强决策树(gbrt)的最新技术。他们实现了一个特定版本的梯度提升,这是为决策树量身定做的。StarBoost的目的不是和他们竞争。相反,它的目标是实现一个通用的梯度增强算法,适用于任何弱学习者。

starboost的一个重点是保持代码的可读性和注释性,而不是在一堆混乱的代码下混淆算法。

什么是弱学习者?

弱学习者是任何可以从标记数据中学习的机器学习模型。它之所以被称为“弱”,是因为它通常作为合奏的一部分(例如梯度增强)效果更好。例如线性模型、径向基函数、决策树、遗传规划、神经网络等。理论上,你甚至可以用梯度增强作为弱学习者。

是否与scikit learn兼容?

是的,是的。

如何安装?

除非有任何奇怪的python设置,否则您只需运行pip install starboost

如何使用它?

下面的代码片段展示了starboost的一个非常基本的用法。请查看examples directory以获得全面的示例。

fromsklearnimportdatasetsfromsklearnimporttreeimportstarboostassbX,y=datasets.load_boston(return_X_y=True)model=sb.BoostingRegressor(base_estimator=tree.DecisionTreeRegressor(max_depth=3),n_estimators=30,learning_rate=0.1)model=model.fit(X,y)y_pred=model.predict(X)

您可以找到运行基准here的源代码。

你下一步打算做什么?

  • 记录进度
  • 处理样本重量
  • 实现更多的损耗功能
  • 提高速度
  • 牛顿推进(考虑到来自海森的信息)
  • 学习排名

顺便问一下,为什么叫“starboost”?

正如您可能已经知道的,在编程中,星符号*通常指的是“一切”的概念。这个想法是starboost可以用于任何弱学习者,而不仅仅是决策树。

许可证

麻省理工学院的执照。有关详细信息,请参见LICENSE file

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

推荐PyPI第三方库


热门话题
HTTP标头的java InputStream未终止   java测试SpringWebListener   具有定义的替换编号Java的regex ReplaceAll   在java中使用contains()方法   java在选择查询中使用JoinColumn字段   具有用户的java Start-stop demon不是以给定用户启动   java glBufferData生成GL\u无效\u操作   java中循环代码的循环   Java位无符号移位(>>>>)会产生奇怪的结果   java HQL使用点分隔符从select获取结果   条纹、弹簧、玩耍(或?):使用哪种高性能Java框架?   广播接收机中的java停止服务   java回收器视图占据整个屏幕。不在上面显示我的UI元素   java使MySQL查询更快   java MappedByteBuffer查询   java递归算法问题