机器学习算法整理之Logistic Regression (LR) 逻辑斯谛回归 :分类方法(对数线性模型)
sigmoid 函数:f(z)=11+exp(−z)f(z)=\frac{1}{1+exp(-z)}
二分类:
P(Y=1|x)=\frac{1}{1+exp(-w^Tx)}=\frac{exp(w^Tx)}{1+exp(w^Tx)}\\ P(Y=0|x)=\frac{exp(-w^Tx)}{1+exp(-w^Tx)}=\frac{1}{1+exp(w^Tx)},w=(w_1,w_2,\cdots,w_n,b)
对数几率:
概率p,对数几率:log(\frac{p}{1-p})\rightarrow log(\frac{P(Y=1|x)}{P(Y=0|x)})=wx\rightarrow对数线性模型
参数估计:极大似然估计法
似然函数:\prod_{i=1}^mP(Y=1|x))^{y^{(i)}}P(Y=0|x))^{1-y^{(i)}},h_w(x^{(i)})=P(Y=1|x)\\ 对数似然函数:L(w) = \sum_{i=1}^my^{(i)}log(h_w(x^{(i)}))(1-y^{(i)})log(1-h_w(x^{(i)}))\\ 梯度:\frac{\partial L(w)}{\partial w_j}=\sum_{i=1}^m(y^{(i)})-h_w(x^{(i)})x^{(i)}_j\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;
多分类问题softmax回归:
y^{(i)}\in\{1,2,\cdots,k\},P(Y=k|x)=\frac{exp(w_j^Tx)}{1+\sum_{c=1}^kexp(w_c^Tx)}\\ J(w)=-\frac{1}{m}\sum_{i=1}^m\sum_{j=1}^k1\{y^{(i)}=j\}log(\frac{exp(w_j^Tx^{(i)})}{\sum_{c=1}^kexp(w_c^Tx^{(i)})})+\lambda\Omega(w)\\ \frac{\partial J(w)}{\partial w_j}=-\frac{1}{m}\sum_{i=1}^mx^{(i)}(1\{y^{(i)}=j\}-\frac{exp(w_j^Tx^{(i)})}{\sum_{c=1}^kexp(w_c^Tx^{(i)})})+(正则项梯度)
线性回归:
f(xi)=wTxi→w∗=argminw∑mi=1(f(xi)−yi)2→w∗=(xTx)−1(xTy)f(x_i)=w^Tx_i\rightarrow w^*=\arg\min\limits_{w}\sum_{i=1}^m(f(x_i)-y_i)^2\rightarrow w^*=(x^Tx)^{-1}(x^Ty)
线性判别分析LDA:
给定数据集,将样本投影到一条直线上,相同类别距离尽可能近,不同类别尽可能远
二分类:
投影前:\mu_0,\mu_1,\Sigma_0,\Sigma_1\rightarrow投影后: w^T\mu_0,w^T\mu_1,w^T\Sigma_0w,w^T\Sigma_1w\nonumber\\ 同类样本尽可能近:\min w^T\Sigma_0w+w^T\Sigma_1w;异类样本尽可能远:\max\Vert w^T\mu_0-w^T\mu_1\Vert_2^2\\ 学习目标:\max_wJ(w)=\frac{\Vert w^T\mu_0-w^T\mu_1\Vert_2^2}{w^T\Sigma_0w+w^T\Sigma_1w}=\frac{w^T(\mu_0-\mu_1)(\mu_0-\mu_1)^Tw}{w^T(\Sigma_0+\Sigma_1)w}\\ “类内散度矩阵”:S_w=\Sigma_0+\Sigma_1;“类间散度矩阵”:S_b=(\mu_0-\mu_1)(\mu_0-\mu_1)^T\\ \min_wJ(w)=\frac{w^TS_bw}{w^TS_ww}\rightarrow \min w^TS_ww\;\;\;\;s.t.\;w^tS_bw=1\\ 拉格朗日求解:\frac{\partial - w^TS_w+\lambda(w^tS_bw-1)}{\partial w}=0\rightarrow S_bw=\lambda S_ww\rightarrow S_w^{-1}S_bw=\lambda w\\ S_bw=(\mu_0-\mu_1)(\mu_0-\mu_1)^Tw的方向恒为(\mu_0-\mu_1),不妨令S_bw=\lambda(\mu_0-\mu_1)\\ 则:w=S_w^{-1}(\mu_0-\mu_1)实践中通常是对S_w进行奇异值分解S_w=U\Sigma V^T得到S_w^{-1}=V\Sigma^{-1} U^T
当两类数据同先验、满足高斯分布且协方差相等时,LDA可达到最优分类
多分类:
假定存在N个类,第i类样本数为m_i,定义“全局散度矩阵”:S_t=S_b+S_w=\sum_{i=1}^m(x_i-\mu)(x_i-\mu)^T\nonumber\\ 其中S_w=\sum_{i=1}^NS_{w_i};S_{w_i}=\sum_{x\in X_i}(x_i-\mu_i)(x_i-\mu_i)^T;则: S_b=S_t-S_w=\sum_{i=1}^Nm_i(\mu-\mu_i)(\mu-\mu_i)^T\\ 优化目标:\max_W\frac{tr(W^TS_bW)}{tr(W^TS_wW)}其中W\in R^{d\times(N-1)},tr(\cdot)表示矩阵的迹\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\\ S_bW=\lambda S_wW,W的闭式解则是S_w^{-1}S_b的N-1个最大广义特征值对应的特征向量组成的矩阵
优缺点:
分析:解决工业规模问题最流行的算法;得到的是一个与每个观测样本相关的概率列表;逻辑回归在时间和内存需求上相当高效。它可以应用于分布式数据,并且还有在线算法实现,用较少的资源处理大型数据;对于数据中小噪声的鲁棒性很好,并且不会受到轻微的多重共线性的特别影响。严重的多重共线性则可以使用逻辑回归结合L2正则化来解决,不过如果要得到一个简约模型,L2正则化并不是最好的选择,因为它建立的模型涵盖了全部的特征; 当你的特征数目很大并且还丢失了大部分数据时,逻辑回归就会表现得力不从心;
优点:
1.适合需要得到一个分类概率的场景
2.实现效率较高
3.对逻辑回归而言,多重共线性并不是问题,它可以结合L2正则化来解决;
4.逻辑回归广泛的应用于工业问题上
缺点:
1.当特征空间很大时,逻辑回归的性能不是很好;
2.不能很好地处理大量多类特征或变量;
4.对于非线性特征,需要进行转换;
5.依赖于全部的数据特征,当特征有缺失的时候表现效果不好;
6.可能容易欠拟合,分类精度不高。
应用经验
LR < SVM/GBDT/RandomForest ?
LR能以概率的形式输出结果,而非只是0,1判定
- LR的可解释性强,可控度高(你要给老板讲的嘛…)
- 训练快,feature engineering之后效果赞
- 因为结果是概率,可以做ranking model
- 添加feature太简单…
2.关于样本处理
样本量太大怎么办?
- 离散化后用one-hot编码处理成0,1值
- 如果要用连续值,注意做scaling
- 试试spark Mllib
- 试试采样(注意采样方式:日期 or 用户 or 行为)
注意样本的平衡
- 对样本分布敏感
- 下采样(样本量足的情况下),上采样(样本数量不太足)
- 修改loss function,给不同权重
- 采样后的predict结果,用作排序OK,用作判定请还原
3.关于特征处理
离散化
- 映射到高维空间,用linear的LR(快,且兼具更好的分割性)
- 稀疏化,0,1向量内积乘法运算速度快,计算结果方便存储,容易扩展;
- 离散化后,给线性模型带来一定的非线性
- 模型稳定,收敛度高,鲁棒性好
- 在一定程度上降低了过拟合风险
通过组合特征引入个性化因素
注意特征的频度
区分特征重要度可以产出层次判定模型
聚类/Hash
增强了极度稀疏的特征表达力减小了模型,加速运算
4.关于算法调优
假设只看模型
- 选择合适的正则化(L1, L2, L1+L2)
- 正则化系数C
- 收敛的阈值e,迭代轮数
- 调整loss function给定不同权重
- Bagging或其他方式的模型融合
- 最优化算法选择(‘newton-cg’, ‘lbfgs’, ‘liblinear’, ‘sag’)
- 小样本liblinear,大样本sag,多分类‘newton-cg’和‘lbfgs’(当然你也可以用liblinear和sag的one-vs-rest)
机器学习算法整理之Logistic Regression (LR) 逻辑斯谛回归 :分类方法(对数线性模型)相关推荐
- 机器学习算法(三):基于概率论的分类方法:朴素贝叶斯理论与python实现+经典应用(文档分类、垃圾邮件过滤)
算法学习笔记更新,本章内容是朴素贝叶斯,是一个用到概率论的分类方法. 算法简介 朴素贝叶斯是贝叶斯决策的一部分,简单说,就是利用条件概率来完成分类.说起条件概率,猛地一下戳到了笔者的伤口.想当年, ...
- 机器学习算法(一):逻辑回归模型(Logistic Regression, LR)
目录 1 LR 1.1 直观表述 1.2 决策边界(Decision Boundary) 2. 权值求解 2.1 代价函数(似然函数) 2.1.1 为什么损失函数不用最小二乘?即逻辑斯蒂回归损失函数为 ...
- 逻辑回归(Logistic Regression, LR)又称为逻辑回归分析,是分类和预测算法中的一种。通过历史数据的表现对未来结果发生的概率进行预测。例如,我们可以将购买的概率设置为因变量,将用户的
逻辑回归(Logistic Regression, LR)又称为逻辑回归分析,是分类和预测算法中的一种.通过历史数据的表现对未来结果发生的概率进行预测.例如,我们可以将购买的概率设置为因变量,将用户的 ...
- Logistic Regression (LR) 详解
Logistic Regression (LR) 详解 最近忙着准备面试,偶然发现同学Q君在很认真地看LR(Logistics Regression),不由得心生蔑视,这么简单的模型有什么好研究的?结 ...
- 逻辑回归(Logistic Regression, LR)简介
逻辑回归(Logistic Regression, LR)简介 标签(空格分隔): 机器学习 **机器学习最通俗的解释就是让机器学会决策.**对于我们人来说,比如去菜市场里挑选芒果,从一堆芒果中拿出一 ...
- 逻辑回归模型(Logistic Regression, LR)基础
逻辑回归模型(Logistic Regression, LR)基础 逻辑回归(Logistic Regression, LR)模型其实仅在线性回归的基础上,套用了一个逻辑函数,但也就由于这个逻辑函数, ...
- 逻辑回归模型(Logistic Regression, LR)基础 - 文赛平
逻辑回归模型(Logistic Regression, LR)基础 - 文赛平 时间 2013-11-25 11:56:00 博客园精华区 原文 http://www.cnblogs.com/ ...
- ML机器学习算法(一): 基于逻辑回归的分类预测
机器学习算法(一): 基于逻辑回归的分类预测 1 逻辑回归的介绍和应用 1.1 逻辑回归的介绍 逻辑回归(Logistic regression,简称LR)虽然其中带有"回归"两个 ...
- 机器学习算法(一): 基于逻辑回归的分类预测-Task01
基于逻辑回归LR的分类预测 1.逻辑回归的介绍 Logistic Regression 虽然被称为回归,但其实际上是分类模型,并常用于二分类.Logistic Regression 因其简单.可并行化 ...
最新文章
- CoreAnimation —— CATransaction(隐式动画)
- CentOS下的DNS服务器搭建
- HALCON表面划痕检测
- 通过pipeline实现jenkins的ci/cd功能
- 非root用户加入docker用户组省去sudo
- [Diary] 阳 伞
- div文字自动扩充_文字资料扩充
- Struts2的Maven依赖包
- 【python爬虫】报错module requests has no attribute get
- 黄章“官宣”魅族17系列:骁龙865加持 不止一个版本
- C++中有了malloc/free 为什么还要new/delete?
- C++进阶—— helper function 的设计与实现
- 教程|电脑PC微信多开
- 正则表达式-验证QQ号
- 神通数据库connect by用法
- 【产品志】全白色 MATX 方案
- 中式红木装修——优雅传统之美
- 工业互联网企业蘑菇物联获数千万元A轮融资,元禾原点资本领投...
- POJ3069 萨鲁曼的大军(重庆一中高2018级信息学竞赛测验3) 解题报告
- 五个经典漏斗模型,看漏斗思维穿透流程化的本质