python - 八度和python之间的混淆
问题描述
最近我完成了 Andrews Ng 在 coursera 上的 ML 课程。这是一门很棒的课程。在整个课程中,我一直在使用八度音阶。但是,与 octave 相比,python 更受欢迎。所以,我现在开始学习python了。我正在使用python实现线性回归。在那我什么都不做。只需调用线性回归的预定义函数。但是,在八度音程中,我曾经从头开始编写代码。我必须使用梯度下降算法找到参数。但是,python中没有这样的东西。我参考了以下链接: https ://towardsdatascience.com/linear-regression-python-implementation-ae0d95348ac4
我的问题是,我们不会使用梯度下降之类的算法来学习参数 Theta 吗?一切都是在python中预定义的吗?
谢谢。
解决方案
Python 是一种编程语言,就像 Octave 一样。因此,可以在 Octave 中完成的所有事情也可以使用 Python 完成。如果您想Linear Regression
使用 Python 从头开始实现算法以验证您的理解,当然可以这样做(我也做过)。为什么止步于线性回归,您可以在 Python 中实现SVM
,Decision Trees
甚至Deep Neural Networks
从头开始。这是获得对这些算法的具体理解的好方法。
然而,多年来,所有这些都在 Python 中的 Sklearn 等库中实现。因此,随着数据复杂性和数量的增加,您可能希望使用这些库或框架之一。为什么?因为这些都是高度优化的实现。要获得高级感 - 使用简单的列表和 for 循环实现线性回归,然后使用 Numpy 对其进行矢量化,您将看到性能上的差异。
所以总结一下——如果你很好奇,请继续从头开始实现算法以获得扎实的理解。随着复杂性和数据量的增加,开始使用库和框架。希望这可以帮助。
推荐阅读
- string - 带有几行包含“#”和特定文本的正则表达式
- c - 将 double 转换为 printf 的类似 %g 的字符串,长度最短且不损失任何精度
- sql - 仍然混淆选择列、分组依据和连接的规则
- google-cloud-platform - 项目的谷歌云区域(个人/官方)
- java - 如何使用 for 循环在 textView.setText 中实现递减计数器?
- python - 我如何将字符串索引转换为整数索引
- r - 如何在数据框中的 R 中使用 str_extract_all 而不返回列表?
- python - 凯撒密码 - ASCII 字符的环绕方法通过教科书更令人困惑
- c# - 我的脚本没有激活 UI 也没有播放动画
- python - 我应该如何找到最适合可能的对数散点图的线?