这个问题我得不到满意的答复。据我所知,TensorFlow是一个数值计算库,经常用于深度学习应用程序,Scikit-learn是一个通用机器学习框架。但它们之间的确切区别是什么,TensorFlow的目的和功能是什么?我可以把它们放在一起使用吗?这有什么意义吗?
wb1gzix01#
你的理解非常到位,尽管非常,非常基本。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这将需要一段时间来完成每一件事,但如果你做到了最后,你会学到一吨!!!最后,你可以从下面的链接获得Scikit-Learn的2,600多页用户指南。https://scikit-learn.org/stable/_downloads/scikit-learn-docs.pdf
9fkzdhlc2#
Tensorflow是一个用于构建神经网络的库。scikit-learn包含现成的算法。TF可以处理各种数据类型:表格、文本、图像、音频。scikit-learn旨在处理表格数据。你可以使用这两个包。但是如果你只需要经典的多层实现,那么scikit-learn中提供的MLPClassifier和MLPRegressor是一个非常好的选择。我比较了TF和Scikit-learn中实现的MLP,没有显著差异,scikit-learn MLP在CPU上的工作速度比TF快2倍。您可以在my blog post中阅读比较的详细信息。下面是性能比较的散点图:
MLPClassifier
MLPRegressor
wgmfuz8q3#
两者都是第三方机器学习模块,而且都很擅长。Tensorflow是两者中更受欢迎的一个。Tensorflow通常更多地用于深度学习和神经网络。SciKit learn是更通用的机器学习。虽然我不认为我遇到过任何人同时使用两者,但没有人说你不能。
ccrfmcuu4#
Scikit learn或者更一般地说,如果你在代码中使用sklearn,它是一个机器学习库,带有开箱即用的模型。如果您知道如何使用这些模型以及您需要什么样的模型来满足您的需求,您可以在您的项目中使用这些模型。这更适合数据科学家和机器学习用户,他们希望使用库中已经预构建的模型,如决策树或随机森林算法。您可以导入内置模型并在代码中使用它们。Sklearn更易于使用,也是一个快速实现ML解决方案的流行库。然而,Tensorflow更像是一个机器学习/深度学习库,在这里,你可以使用Tensor从头开始自己制作整个模型。从头开始,如中所示,您可以创建模型的体系结构并提供其参数,如:1.会有多少隐藏层1.每层有多少个神经元,从1到10到1000甚至更多。1.输入值和输出值是什么,它们的矩阵大小。1.它将使用什么样的学习规则,用于分析和评估模型的指标。1.神经网络评估,实验,然后将它们移植到其他用途。你基本上设计自己的神经网络,它是一个基本的神经网络,也是一个深度神经网络,这取决于它的复杂程度。Tensorflow还可以让你完全控制你的ML模型,以实现适当的可视化,并查看你的模型的架构(这是我喜欢它的地方)。简而言之,sklearn更受数据科学家欢迎,而Tensorflow(沿着PyTorch)在ML工程师或深度学习工程师或MLMaven中更受欢迎。
4条答案
按热度按时间wb1gzix01#
你的理解非常到位,尽管非常,非常基本。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
这将需要一段时间来完成每一件事,但如果你做到了最后,你会学到一吨!!!最后,你可以从下面的链接获得Scikit-Learn的2,600多页用户指南。
https://scikit-learn.org/stable/_downloads/scikit-learn-docs.pdf
9fkzdhlc2#
Tensorflow是一个用于构建神经网络的库。scikit-learn包含现成的算法。TF可以处理各种数据类型:表格、文本、图像、音频。scikit-learn旨在处理表格数据。
你可以使用这两个包。但是如果你只需要经典的多层实现,那么scikit-learn中提供的
MLPClassifier
和MLPRegressor
是一个非常好的选择。我比较了TF和Scikit-learn中实现的MLP,没有显著差异,scikit-learn MLP在CPU上的工作速度比TF快2倍。您可以在my blog post中阅读比较的详细信息。下面是性能比较的散点图:
wgmfuz8q3#
两者都是第三方机器学习模块,而且都很擅长。Tensorflow是两者中更受欢迎的一个。
Tensorflow通常更多地用于深度学习和神经网络。
SciKit learn是更通用的机器学习。
虽然我不认为我遇到过任何人同时使用两者,但没有人说你不能。
ccrfmcuu4#
Scikit learn或者更一般地说,如果你在代码中使用sklearn,它是一个机器学习库,带有开箱即用的模型。如果您知道如何使用这些模型以及您需要什么样的模型来满足您的需求,您可以在您的项目中使用这些模型。
这更适合数据科学家和机器学习用户,他们希望使用库中已经预构建的模型,如决策树或随机森林算法。
您可以导入内置模型并在代码中使用它们。Sklearn更易于使用,也是一个快速实现ML解决方案的流行库。
然而,Tensorflow更像是一个机器学习/深度学习库,在这里,你可以使用Tensor从头开始自己制作整个模型。从头开始,如中所示,您可以创建模型的体系结构并提供其参数,如:
1.会有多少隐藏层
1.每层有多少个神经元,从1到10到1000甚至更多。
1.输入值和输出值是什么,它们的矩阵大小。
1.它将使用什么样的学习规则,用于分析和评估模型的指标。
1.神经网络评估,实验,然后将它们移植到其他用途。
你基本上设计自己的神经网络,它是一个基本的神经网络,也是一个深度神经网络,这取决于它的复杂程度。
Tensorflow还可以让你完全控制你的ML模型,以实现适当的可视化,并查看你的模型的架构(这是我喜欢它的地方)。
简而言之,sklearn更受数据科学家欢迎,而Tensorflow(沿着PyTorch)在ML工程师或深度学习工程师或MLMaven中更受欢迎。