这套笔记是跟着七月算法四月机器学习班的学习而记录的,主要记一下我再学习机器学习的时候一些概念比较模糊的地方,具体课程参考七月算法官网:
1 线性回归
概念:一般做连续值变量的预测,如股票价格走势等
对于预测阶段
举例来说:
房子的面积与价格的关系如下表所示:
可以得到如下图:
可以近似画出右边的直线。
对于多个变量的情况。
总体来说,线性回归做的事情就是在给定一些数据集的情况下,能够学习到一个线性函数f去拟合给定数据
1.1 线性回归ide损失函数:
在回归问题中,我们希望找到一个函数,使得其尽可能好的拟合给定数据,因此,其损失函数就是使得拟合的误差最小。
在假设变量只有一个的情况下,画出损失函数的图:
我们的目标是:最小化损失函数:
求解方法;
梯度下降法: 沿着负梯度方向逐步逼近最低点;
假设有n个特征
1.2 回归与欠/过拟合
对于上图需要说明的是,x和x^2可以看做是两个不同的特征。
通俗点说,欠拟合就是模型想的太少,过拟合就是模型想的太多,对于过拟合的情况,模型的泛化能力太差而很难用与测试数据。
1.3 正则化
在原来的损失函数的后面,加入参数的平方和(L2正则项)
2. 逻辑回归
线性回归无法解决的问题;
在这种情况下,如果使用线性回归,一部分样本点就会被错分,因此,引入sigmoid函数:
sigmoid函数可以把任意一个值映射到【0,1】之间。
1.1 判定边界: -- 逻辑回归的目的就是在寻找判定边界
所谓的判定边界,就是g(x)里面,x=0表示的部分。在过sigmoid后,即h(x) = 0.5。
2.2 损失函数
首先看一下线性回归的损失函数
但是,这个损失函数无法用在逻辑回归中,因为逻辑回归的y值只有0和1,其损失函数是非凸的:
逻辑回归的损失函数具有如下形式:
其损失函数分别为:
则这个损失函数可以写为:
加上正则项
这个函数是一个凸函数,可以使用梯度下降求最优解
3. 关于样本处理
3.1 样本量太大怎么办?
离散化后用one-hot编码处理成0,1值
如果要用连续值,注意做scaling
3.2样本的平衡
对样本分布敏感
下采样(样本量足的情况下),上采样(样本数量不太足)
修改loss function,给不同权重
采样后的predict结果,用作排序OK,用作判定请还原
4 关于特征处理
4.1 离散化
映射到高维空间,用linear的LR(快,且兼具更好的分割性)
稀疏化,0,1向量内积乘法运算速度快,计算结果方便存储,容易扩展;
离散化后,给线性模型带来一定的非线性
模型稳定,收敛度高,鲁棒性好
在一定程度上降低了过拟合风险
4.2 通过组合特征引入个性化因素
uuid + tag
uuid + cluster_id...
4.3 注意特征的频度
区分特征重要度
可以产出层次判定模型
4.4 聚类/Hash
增强了极度稀疏的特征表达力
减小了模型,加速运算
5. 关于算法调优
假设只看模型
选择合适的正则化(L1, L2, L1+L2) L2准确度高而训练时间长。L1可以做稀疏化处理。
正则化系数C
收敛的阈值e,迭代轮数
调整loss function给定不同权重
Bagging或其他方式的模型融合
最优化算法选择( ‘newton-cg’, ‘lbfgs’, ‘liblinear’, ‘sag’)
小样本liblinear,大样本sag,多分类‘newton-cg’和‘lbfgs’(当然你也可以用liblinear和sag的one-vs-rest)
参考资料:
七月算法:机器学习四月班:http://www.julyedu.com/
图片来自于课程PPT
本文详细介绍了机器学习中的线性回归和逻辑回归,包括概念、损失函数及正则化等内容,并探讨了样本处理、特征处理及算法调优的方法。

1186

被折叠的 条评论
为什么被折叠?



