最近有人问我一个问题,我数学不好,代码基础薄弱,英语一般般,如何入门当今最为前沿的机器学习领域?均方差损失,MSE,平方损失函数,二次代价函数都是什么意思?
这个问题问得好,诸如学好数学,多敲代码,攻克专八这类标准回答我就不多说了。我们这回用Python实战教程案例,分分钟带你入门。
下面我们通过机器学习的入门模型——线性回归,从数学说起,以代码着手,一步步推导出可以应用于实践的模型。
线性回归的数学原理
首先,先看一张图:
图是我们在初中学习过的直角坐标系二维平面,上面遍布着一些点。从整体趋势看,y随x的增大而增大。如果曾经你和我一样,数学每次考试都是90的话,那么接下来,我相信你会情不自禁地做一件事:
没错,我们会以(0,0)和(10,10)为两点,画出一条贯穿其中的线,从视觉上,这条红线正好把所有点一分为二,其对应的数学表达式为:
y=x
而这就是我们线性回归所要做的事:找到一组数学表达式(图中的红线),用来反映数据(图中的点)的变化规律。
目标有了,问题也来了:
贯穿图中密密麻麻点的线有无数条,为什么不是y=2x,y=x+1,偏偏是y=x呢?
我们又是通过何种方法去找到这条线呢?
先解决第一个问题,上天书:
这个式子就是第一个问题的解,没见过的符号太多,看不懂是吧?那么我来翻译一下:
- 先求出(每个点的Y值-以每个点的X值通过函数求出的Y值)的平方
- 求和;
- 乘以1/2
再通俗点:
把每个点的实际y值与它通过某个函数求出的y值的差的平方加起来,再乘以1/2。
而文章开篇中的均