【发布时间】:2020-07-28 16:12:08
【问题描述】:
这个问题我无法得到满意的答案。据我了解,TensorFlow 是一个用于数值计算的库,常用于深度学习应用程序中,而 Scikit-learn 是一个用于通用机器学习的框架。
但是它们之间的确切区别是什么,TensorFlow的目的和功能是什么?我可以将它们一起使用吗?这有意义吗?
【问题讨论】:
标签: python tensorflow machine-learning scikit-learn
这个问题我无法得到满意的答案。据我了解,TensorFlow 是一个用于数值计算的库,常用于深度学习应用程序中,而 Scikit-learn 是一个用于通用机器学习的框架。
但是它们之间的确切区别是什么,TensorFlow的目的和功能是什么?我可以将它们一起使用吗?这有意义吗?
【问题讨论】:
标签: python tensorflow machine-learning scikit-learn
Tensorflow 是一个用于构建神经网络的库。 scikit-learn 包含现成的算法。 TF 可以处理多种数据类型:表格、文本、图像、音频。 scikit-learn 旨在处理表格数据。
是的,您可以同时使用这两个软件包。但是如果你只需要经典的多层实现,那么 scikit-learn 中的 MLPClassifier 和 MLPRegressor 是一个很好的选择。我比较了 TF 与 Scikit-learn 中实现的 MLP,没有显着差异,scikit-learn MLP 在 CPU 上的工作速度比 TF 快 2 倍。您可以在my blog post阅读比较的详细信息。
性能比较散点图下方:
【讨论】:
您的理解非常准确,尽管非常非常基础。 TensorFlow 更像是一个低级库。基本上,我们可以将 TensorFlow 视为可用于实现机器学习算法的乐高积木(类似于 NumPy 和 SciPy),而 Scikit-Learn 带有现成的算法,例如分类算法,如 SVM、随机森林、逻辑回归等等。如果我们想实现深度学习算法,TensorFlow 真的很出色,因为它允许我们利用 GPU 进行更有效的训练。 TensorFlow 是一个低级库,允许您使用一组简单的运算符(如“add”、“matmul”、“concat”等)构建机器学习模型(和其他计算)。
到目前为止还有意义吗?
Scikit-Learn 是一个更高级别的库,其中包含多种机器学习算法的实现,因此您可以在一行或几行代码中定义一个模型对象,然后使用它来拟合一组点或预测一个值。
Tensorflow 主要用于深度学习,而 Scikit-Learn 用于机器学习。
这是一个链接,向您展示如何使用 TensorFlow 进行回归和分类。我强烈建议下载数据集并自己运行代码。
https://stackabuse.com/tensorflow-2-0-solving-classification-and-regression-problems/
当然,您可以使用 Scikit-Learn 进行许多不同类型的回归和分类,而无需 TensorFlow。如果有机会,我建议阅读 Scikit-Learn 文档。
https://scikit-learn.org/stable/user_guide.html
通关一切都需要一段时间,但如果你坚持到最后,你会学到很多东西!!!最后,您可以从以下链接获取 2,600 多页的 Scikit-Learn 用户指南。
https://scikit-learn.org/stable/_downloads/scikit-learn-docs.pdf
【讨论】:
两者都是第 3 方机器学习模块,并且都很擅长。 TensorFlow 是两者中比较流行的。
Tensorflow 通常更多地用于深度学习和神经网络。
SciKit learn 是更通用的机器学习。
虽然我不认为我遇到过任何人同时使用这两种方法,但没有人说你不能。
【讨论】: