在机器学习中,咱们训练了一个模型,可能会发现这个模型获得的数据与实际数据误差太大。这时,一般咱们会在以下办法中选择去优化咱们的算法。算法
获得更多的训练集;微信
减少特征的数目;机器学习
尝试去增长特征;编辑器
增长多项式;函数
增大 λ;学习
减少 λ。测试
以上这些步骤一般会花费你大量的时间,并且毫无目的地选择极可能会没有效果。flex
为了防止以上的事情发生,减小让你抓狂的概率,维护世界的和平,咱们须要用到机器学习诊断法(Machine learning diagnostic)去决定如何优化咱们的算法。优化
咱们在训练机器学习模型时,常常会遇到过拟合问题。但什么时候是过拟合呢?这就须要咱们来发现,一种方法是经过画出函数图像,例以下面这幅图就能看出是一个过拟合。lua
事实上咱们拟合的函数常常有不少个特征,致使函数图像很难画出,须要另外一种方法——评估假设(Evaluating a Hypothesis)。具体怎么操做呢?咱们一块儿来看一下。
咱们拥有以下数据集,须要把这些数据集随机按 7:3 的比例划分为两类:训练集和测试集。训练集用来训练模型,测试集用来对模型的准确性进行评估。
对于线性回归来讲,咱们就用测试集的代价函数来评估。
对于逻辑回归这种分类问题,咱们除了能够用测试集的代价函数去解决之外,还能够用测试偏差来计算。
对于这个函数,咱们能够这么理解。若是预测结果与原结果不一致,函数值就为 1,也就是出现偏差;不然函数值为 0。最后求测试偏差求平均值获得最终结果。
对于机器学习,咱们可能选择各类次数的多项式做为模型。可是如何肯定多项式的次数才是一个使人头痛的问题。
咱们用 d 来表示选择模型多项式的次数:
选择完成后,咱们会先用数据集训练出参数集 θ,根据参数集 θ 计算出对应的代价函数,比较代价函数以后,选择一个最优的多项式做为模型。
这时候,咱们的数据集就不能按照以前的原则进行划分了,要划分红 3 部分:训练集(60%)、交叉验证集(20%)和测试集(20%)。
首先咱们经过训练集训练出参数集 θ,而后根据交叉验证集选择出最优的多项式模型,最后经过测试集去评估假设。
ps. 本篇文章是根据吴恩达机器学习课程整理的学习笔记。若是想要一块儿学习机器学习,能够关注微信公众号「SuperFeng」,期待与你的相遇。