机器学习 正则化解决过拟合问题

原理

    在机器学习当中,代价函数最小值不一定是我们的最优结果,因为其中存在过拟合的问题,也就是我们的模型完美得契合了我们得训练集,完美得有点变态。而对于测试集来说,效果就没有那么理想。那么如何解决过拟合问题呢?我们可以在代价函数当中添加一些正则项,从而使得代价函数在梯度下降的时候,不会过分得追求最小值。而正则项,我们选择的是θ^n 的平方项之和,在实际得运用中,效果还是很不错的

问题

    为预测制造工厂的微芯片是否通过了质量保证(QA)。 在QA期间,每个微芯片都经过各种测试以确保其正常工作。

    假设你是工厂的产品经理,你在两个不同的测试中有一些微芯片的测试结果。 从这两个测试,你想确定是否应该接受或拒绝芯片。 为了帮助您做出决定,您可以在过去的微芯片上获得测试结果的数据集。

数据


    可以看到,这不是简单的线性分类,而是一个较为复杂的非线性问题

    现在我们来看看我们的模型进行学习后的效果图


    看看,这是人做得事情嘛,这界限画的也太完美了吧!!记住,这是反例,这就是过拟合产生的效果图。经过我一番调参,最后生成的效果图如下


    这样是不是清晰多了?

补充

    我们如何解决非线性问题呢?这就需要我们进行特征映射,将简单的特征x1,x2经过映射,变换为高阶的式子,在这里我选择了6阶,即常数项,x1,x2,x1^2 ......x2^6     ,这样再进行相同的操作即可完成分类。

实现

需要导入的库


数据可视化


加载数据


特征映射


决策函数


代价函数


梯度函数


求最小值


主函数


小结

    hhh,总算做了点有意义的事情,不再是做那些简单的线性问题。现在我们已经可以使用机器学习去解决一些简单的现实问题了,加油!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容