为什么在实际应用中,大家普遍使用TensorFlow或者PyTorch,很少有人使用Scikit学习机器学习模型?
1 1785
1
该提问暂无详细描述
收藏
2020-12-31 13:17 更新 天明 •  1290
共 1 个回答
高赞 时间
1

神经网络仅仅在几年前才推出,有两种类型:MLPClassizer和MLPRepressor。MLP用于多层感知器,仅名称就足以透露出这不是最好的实现。Scikit learn不支持GPU,而且神经网络根本无法扩展,没有人会在生产中使用这个。
流行的梯度增强算法的实现也是没有用的。它是一种非常缓慢的实现方式,被称为GradientBoostingClassifier和GradientBoostingRegressor,这让XGBoost、LightGBM和CatBoost等库很难堪。目前,scikit学习团队正在开发一个新的梯度增强实现,他们大量借鉴了LightGBM和XGBoost。

随机森林的实现已经足够好了,但是在几乎所有的机器学习任务中,通过梯度增强来实现的性能通常会更好。
采用非线性核函数的SVM的实现速度也非常慢,而且通常是没有用的。
Naive Bayes也是可以的,但它不是一种能在实际生产中使用的模型。
逻辑回归实际上是有用的。如果需求是一个简单的分类器,训练速度快且易于解释,那么它可能在生产中是一个很好的选择。我的意思是,大多数人很难把这样一个非常简单的算法弄错。
线性回归算法也很好,比如OLS等。对于需要可解释性的简单任务,它们很有用处。

我个人比较喜欢scikitlearn的辅助函数,比如预处理、交叉验证、超参数调优等等,但它通常不是一个库,所以当涉及到模型训练时,不太适合任务量比较大的工作。

收藏
2020-12-31 13:49 更新 Lisa •  1796