这是基于作业的任务,我选择了机器学习作为我的主题。我还在读高中,所以对微积分了解不多。
我的最终目标是尝试使用机器学习算法来预测股票价值。但我想在不复制和分析现有代码的情况下理解我在做什么,这些代码执行我所需的功能。
这也不仅仅是与编程相关,更多的是关于理论部分的担忧?我阅读了关于线性回归的文章,并观看了斯坦福大学在其YouTube上的讲座。但我不明白。这些是我主要的困惑:
- 线性回归和梯度下降是不同的算法,还是一起使用的一组算法,用于预测或分类事物?
- y = mx + c 和 f(x) = ϴ0 + ϴx 是一样的吗?我可以用这个计算什么?
- 这个方程出现在线性回归部分,那么它到底做了什么?
回答:
我将尝试回答你提出的所有三个问题。
首先,让我将机器学习分类成一些类别。
- 回归 – 预测连续值输出(例如,股票预测)
- 分类 – 预测离散值输出(例如,垃圾邮件分类)
现在,回归也可以分类为线性回归或多项式回归。线性回归是最简单的。这是它的工作原理。
假设我有这些数据。
这些是房价与房屋大小对比的图表。现在我想找到一条直线,最好地拟合这些数据。也许我会试试这条线。
我会尝试越来越多的线条,看看哪条线真正最适合数据。现在,为了得到不同的线条,我会改变参数,如a
和b
在y=a+bx
中。这回答了你的第二个问题,这个方程代表了一条你试图拟合到数据的直线。
但是,我如何决定哪条线比另一条线更适合?我将计算一些值,这些值代表我的线在正确预测我的数据中所有x
值的y
值时所犯的错误。这实际上被称为成本函数。我可以选择这样的成本函数:(如果看不懂可以忽略)。
但基本上我想让我的成本函数(代表错误的值)最小化,梯度下降就是这样一种可以最小化我的成本函数的算法。梯度下降实际上可以最小化任何一般的函数,因此它不仅仅用于线性回归,但它在线性回归中仍然很流行。这回答了你的第一个问题。
这就是你在第三个问题中问的。这行代码实际上在最小化成本函数的同时调整你的拟合线(称为假设)。