首页 > 解决方案 > 八度和python之间的混淆

问题描述

最近我完成了 Andrews Ng 在 coursera 上的 ML 课程。这是一门很棒的课程。在整个课程中,我一直在使用八度音阶。但是,与 octave 相比,python 更受欢迎。所以,我现在开始学习python了。我正在使用python实现线性回归。在那我什么都不做。只需调用线性回归的预定义函数。但是,在八度音程中,我曾经从头开始编写代码。我必须使用梯度下降算法找到参数。但是,python中没有这样的东西。我参考了以下链接: https ://towardsdatascience.com/linear-regression-python-implementation-ae0d95348ac4

我的问题是,我们不会使用梯度下降之类的算法来学习参数 Theta 吗?一切都是在python中预定义的吗?

谢谢。

标签: pythonmachine-learningoctave

解决方案


Python 是一种编程语言,就像 Octave 一样。因此,可以在 Octave 中完成的所有事情也可以使用 Python 完成。如果您想Linear Regression使用 Python 从头开始​​实现算法以验证您的理解,当然可以这样做(我也做过)。为什么止步于线性回归,您可以在 Python 中实现SVMDecision Trees甚至Deep Neural Networks从头开始。这是获得对这些算法的具体理解的好方法。

然而,多年来,所有这些都在 Python 中的 Sklearn 等库中实现。因此,随着数据复杂性和数量的增加,您可能希望使用这些库或框架之一。为什么?因为这些都是高度优化的实现。要获得高级感 - 使用简单的列表和 for 循环实现线性回归,然后使用 Numpy 对其进行矢量化,您将看到性能上的差异。

所以总结一下——如果你很好奇,请继续从头开始实现算法以获得扎实的理解。随着复杂性和数据量的增加,开始使用库和框架。希望这可以帮助。


推荐阅读