很过数据是没有线性关系的==》非线性 =》多项式模拟非线性曲线
添加的特征是原来特征的线性组合==》解决非线性问题=》数据集升维 (PCA降维) 有时升维有时降维
=》x^2 x 虽然是同一特征 但我们把它x^2当做是另一个特征
Pipeline 创建多项式回归: 通过增加特征 依然使用使用线性回归
多项式回归拟合非线性:
一个二次曲线 ==》过拟合 100次太复杂了 训练集上好 在验证集 和 测试集不好欠拟合 1次不够
学习狗的图片:
有眼睛的是狗:只学习一部分特征 欠拟合
四爪 眼睛 ... 斑点 :所有符合的基础上又加上了 斑点 斑点只是一部分狗才有 可过拟合学出了斑点特征 太细节的特征
泛化能力:由此及彼能力 根据训练得到的曲线 面对新的数据的能力
最终的模型最终能力不是拟合训练集 而是更好的拟合 测试集 新数据 =》
train valitation test
欠拟合:训练 测试上dou不好 过拟合 :训练上低 测试上高
为了防止 验证集中有极端数据 防止关于验证集的过拟合 ==》交叉验证
评价模型准确度更加靠谱:
==》每次都要训练k个模型 才确定一组参数 比正常多耗时K倍
M个样本分为 m分 用其中一份作为验证集 其他用于训练
高偏差:模型太偏离原问题 ==》 一些数据可能原本就不是线性的 如果非要用线性拟合的话就容易高偏差 》特征取得不好
我们假设数据是符合某个模型的一旦不符合极易出现高偏差 degree越小越简单 degree越大形状越奇怪引入的方差越大
高方差:泛化能力差 KNN 多依赖于数据==》非参数学习 k越小模型越复杂 方差可能越大
偏差 和 方差是可以避免的 不可避免的误差如 数据中有噪音
偏差:
1.用名字预测成绩 选取特征 离目标是高度不相关的
2.欠拟合
方差:过拟合 学习的过度 分的太细
1.降低模型复杂度
2.过拟合可能学到的太多的噪音数据
3.增加样本量 深度学习的条件是数据规模要足够的大 不然不如简单地模型
4.使用验证集 防止模型针对测试数据集过拟合
假设数据来源可靠 特征明显 ==》机器学习算法 主要考虑方差
模型正则化 :系数越大曲线越陡峭==》让theta平方和小 theta0不在其中 theta0是截距
阿尔法是一个新的超参数=》决定theta平方和(尽可能小) 占整的损失函数的多少
阿尔法=0相当于没有加入正则化==》阿尔法无穷大 MS额E比重就比较小 此时的优化任务变为让每一个theta变小
我们要做的是要在预测准确度和让每个theta尽量小 两件事之间做一个平衡
方法:
岭回归
LASSO回归
岭回归过分 =》阿尔法取值过大就变成 是theta平方和最小 =》小到一定程度 为零 就成为了 线性函数 甚至平行于X轴
lasso回归:选择怎么表达theta最小上不一样 有降维作用
因为不想像回归逐渐的走每个theta都是有数值的
lasso |x|导数 = x/|x| 非0即+-1沿着某一个方向一直走 直到一个theta为零换方向 继续直到直到最小值点
最后theta有可能很多维度上 达到零 (下面图有走的过程)
lasso回归缺点:有可能错误的将有用的特征前参数为0 使有用特征降掉 极易将某些元素化为0 一般从计算准确度上来讲还是岭回归比较好
优点:如果特征特别大 用多项回归degree要100 特征数非常多 此时使用lasso 也是非常好的 起到降维的作用 模型特征变小
选择顺序 岭回归 》 弹性网 》 lasso回归
无论是岭回归还是LASSO回归 两种模型正则化 都是在原始的损失函数后面添加一项 为了减小学习到的theta 使得模型的泛化能力变强 使模型系数不那么大 函数图像不那么怪