原理
在机器学习当中,代价函数最小值不一定是我们的最优结果,因为其中存在过拟合的问题,也就是我们的模型完美得契合了我们得训练集,完美得有点变态。而对于测试集来说,效果就没有那么理想。那么如何解决过拟合问题呢?我们可以在代价函数当中添加一些正则项,从而使得代价函数在梯度下降的时候,不会过分得追求最小值。而正则项,我们选择的是的平方项之和,在实际得运用中,效果还是很不错的
问题
为预测制造工厂的微芯片是否通过了质量保证(QA)。 在QA期间,每个微芯片都经过各种测试以确保其正常工作。
假设你是工厂的产品经理,你在两个不同的测试中有一些微芯片的测试结果。 从这两个测试,你想确定是否应该接受或拒绝芯片。 为了帮助您做出决定,您可以在过去的微芯片上获得测试结果的数据集。
数据
可以看到,这不是简单的线性分类,而是一个较为复杂的非线性问题
现在我们来看看我们的模型进行学习后的效果图
看看,这是人做得事情嘛,这界限画的也太完美了吧!!记住,这是反例,这就是过拟合产生的效果图。经过我一番调参,最后生成的效果图如下
这样是不是清晰多了?
补充
我们如何解决非线性问题呢?这就需要我们进行特征映射,将简单的特征x1,x2经过映射,变换为高阶的式子,在这里我选择了6阶,即常数项,x1,x2,......
,这样再进行相同的操作即可完成分类。
实现
需要导入的库
数据可视化
加载数据
特征映射
决策函数
代价函数
梯度函数
求最小值
主函数
小结
hhh,总算做了点有意义的事情,不再是做那些简单的线性问题。现在我们已经可以使用机器学习去解决一些简单的现实问题了,加油!