为了能更好的掌握机器学习,自己边学习边自己写一写算法。
为了验证自己算法实现的准确性,我会和scikit-learn的对应算法进行对比。恩,水平有限,尽力分析下为什么scikit-learn的对应算法会比自己实现的朴素算法好。
希望可以对于算法本身和scikit-learn的实现有一定的深度理解。。希望吧
代码用Python3在jupyter notebook(ipython notebook)上写的。代码+图的完整实现我放在GitHub上了:地址如下
https://github.com/lixintong1992/Machine_Learning
求求各位在GitHub上star我。。。
Ridge Regression
岭回归是一种改良的最小二乘估计法,实质上是一种改良的最小二乘估计法,通过放弃最小二乘法的无偏性,以损失部分信息、降低精度为代价获得回归系数更为符合实际、更可靠的回归方法,对病态数据的拟合要强于OLS。本质是在自变量信息矩阵的主对角线元素上人为地加入一个非负因子
岭回归形式
由于直接套用线性回归可能产生过拟合,我们需要加入正则化项,如果加入的是L2正则化项,就是Ridge回归
Ew^=(y−Xw^)T(y−Xw^)+αw^w^T E w ^ = ( y − X w ^ ) T ( y − X w ^ ) + α w