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

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第三方库


热门话题
java jstl c:set无法处理jsp文件中的js代码   春季mvc你好!Junit平台v.5.8.1 java出现错误。lang.NoSuchMethodError:org。朱尼特。站台平民util。注释。芬丹符号   java如何结合PowerMock和Robolectric   java打印从列表返回最大值   java正则表达式,用于拆分遵循ABNF格式的字符串   在Java 1.4中,如何在不迭代的情况下将结果集的值插入hashmap?   io Java:带状态的ASCII随机行文件访问   首次尝试在Eclipse之外运行java程序   为什么在Java8Lambda中使用“Collectors.toList()”而不是“Collectors::toList”?   Java为多个值中的一个调用非类方法   charat如何在小于和大于之间查找文本,然后在Java中剥离<>?   从milis创建日期时java不一致   使用Java将字符串与CMD输出进行比较   java Android应用程序可以在调试中工作,但不能发布   java notifyAll()不工作,如何在socket编程中通知所有线程   为什么java没有呢。整数扩展java。朗,朗?   二进制文件上的socketJava http请求无法读取正确的内容长度   java有可能获得100条以上的推文吗?   javaoracle与JDBC的连接