最近在看吴恩达的机器学习视频课程,之前也看过但是当时因为很多数学推导放弃了,这次再看,发现自己竟然能看进去了。可能心态有了变化,不是那么急功近利了。
最开始讲的就是线性回归算法的求解过程。
求解一个机器学习问题,首先得分清楚是什么问题,是分类问题?回归问题?还是聚类问题等等。
这里是回归问题,案例是房价预测。 然后为啥是线性回归,是因为我们通过数据可视化以后发现测试数据能通过一条直线拟合。 这个分析问题的过程很重要,远远比写代码来得重要。
确定了是线性回归问题以后,我们就可以用算法来解决了。常用的解决线性回归问题的方法主要是梯度下降和正规方程。前者是工程解法,后者是数学解法。
正规方程比较直观,但是他的局限性在于当特征数量特别多的时候,矩阵求逆会花费特别多的时间。当特征量在百万级别的时候可能需要换一种算法来解题了。
工程解法也能解决问题,但是需要人为设置学习率,还需要设置结束迭代的条件,这些步骤可能需要探索才能得到。虽然繁琐,但是在特征特别多的情况下效果也比较好。
我的感悟是,不要过分关注代码怎么实现,而是更多关注算法的理论知识。