一个用于梯度增强的小型机器学习库
starboost的Python项目详细描述
这是什么?
这是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。