对线性回归、逻辑回归、各种回归的概念学习

回归问题的条件/前提:

1) 收集的数据

2) 假设的模型,即一个函数,这个函数里含有未知的参数,通过学习,可以估计出参数。然后利用这个模型去预测/分类新的数据。


1. 线性回归

假设 特征 和 结果 都满足线性。即不大于一次方。这个是针对 收集的数据而言。
收集的数据中,每一个分量,就可以看做一个特征数据。每个特征至少对应一个未知的参数。这样就形成了一个线性模型函数,向量表示形式:

clip_image005


这个就是一个组合问题,已知一些数据,如何求里面的未知参数,给出一个最优解。 一个线性矩阵方程,直接求解,很可能无法直接求解。有唯一解的数据集,微乎其微。

基本上都是解不存在的超定方程组。因此,需要退一步,将参数求解问题,转化为求最小误差问题,求出一个最接近的解,这就是一个松弛求解。


求一个最接近解,直观上,就能想到,误差最小的表达形式。仍然是一个含未知参数的线性模型,一堆观测数据,其模型与数据的误差最小的形式,模型与数据差的平方和最小:

clip_image006

这就是损失函数的来源。接下来,就是求解这个函数的方法,有最小二乘法,梯度下降法。


http://zh.wikipedia.org/wiki/%E7%BA%BF%E6%80%A7%E6%96%B9%E7%A8%8B%E7%BB%84

最小二乘法

是一个直接的数学求解公式,不过它要求X是列满秩的,

clip_image008

梯度下降法

分别有梯度下降法,批梯度下降法,增量梯度下降。本质上,都是偏导数,步长/最佳学习率,更新,收敛的问题。这个算法只是最优化原理中的一个普通的方法,可以结合最优化原理来学,就容易理解了。


2. 逻辑回归

逻辑回归与线性回归的联系、异同?

逻辑回归的模型 是一个非线性模型,sigmoid函数,又称逻辑回归函数。但是它本质上又是一个线性回归模型,因为除去sigmoid映射函数关系,其他的步骤,算法都是线性回归的。可以说,逻辑回归,都是以线性回归为理论支持的。

只不过,线性模型,无法做到sigmoid的非线性形式,sigmoid可以轻松处理0/1分类问题。


另外它的推导含义:仍然与线性回归的最大似然估计推导相同,最大似然函数连续积(这里的分布,可以使伯努利分布,或泊松分布等其他分布形式),求导,得损失函数。

\begin{align}J(\theta) = -\frac{1}{m} \left[ \sum_{i=1}^m y^{(i)} \log h_\theta(x^{(i)}) + (1-y^{(i)}) \log (1-h_\theta(x^{(i)})) \right]\end{align}

逻辑回归函数

f(t) = \frac{e^t}{e^t+1} = \frac{1}{1+e^{-t}},  表现了0,1分类的形式。

应用举例:

是否垃圾邮件分类?

是否肿瘤、癌症诊断?

是否金融欺诈?


3. 一般线性回归

线性回归 是以 高斯分布 为误差分析模型; 逻辑回归 采用的是 伯努利分布 分析误差。

而高斯分布、伯努利分布、贝塔分布、迪特里特分布,都属于指数分布。

clip_image040

而一般线性回归,在x条件下,y的概率分布 p(y|x) 就是指 指数分布.

经历最大似然估计的推导,就能导出一般线性回归的 误差分析模型(最小化误差模型)。


softmax回归就是 一般线性回归的一个例子。

有监督学习回归,针对多类问题(逻辑回归,解决的是二类划分问题),如数字字符的分类问题,0-9,10个数字,y值有10个可能性。

而这种可能的分布,是一种指数分布。而且所有可能的和 为1,则对于一个输入的结果,其结果可表示为:

\begin{align}h_\theta(x^{(i)}) =\begin{bmatrix}p(y^{(i)} = 1 | x^{(i)}; \theta) \\p(y^{(i)} = 2 | x^{(i)}; \theta) \\\vdots \\p(y^{(i)} = k | x^{(i)}; \theta)\end{bmatrix}=\frac{1}{ \sum_{j=1}^{k}{e^{ \theta_j^T x^{(i)} }} }\begin{bmatrix}e^{ \theta_1^T x^{(i)} } \\e^{ \theta_2^T x^{(i)} } \\\vdots \\e^{ \theta_k^T x^{(i)} } \\\end{bmatrix}\end{align}
参数是一个k维的向量。

而代价函数:
\begin{align}J(\theta) = - \frac{1}{m} \left[ \sum_{i=1}^{m} \sum_{j=1}^{k}  1\left\{y^{(i)} = j\right\} \log \frac{e^{\theta_j^T x^{(i)}}}{\sum_{l=1}^k e^{ \theta_l^T x^{(i)} }}\right]\end{align}
是逻辑回归代价函数的推广。


而对于softmax的求解,没有闭式解法(高阶多项方程组求解),仍用梯度下降法,或L-BFGS求解。


当k=2时,softmax退化为逻辑回归,这也能反映softmax回归是逻辑回归的推广。


线性回归,逻辑回归,softmax回归 三者联系,需要反复回味,想的多了,理解就能深入了。


4. 拟合:拟合模型/函数

由测量的数据,估计一个假定的模型/函数。如何拟合,拟合的模型是否合适?可分为以下三类

合适拟合

欠拟合

过拟合


看过一篇文章(附录)的图示,理解起来很不错:

 欠拟合:
逻辑回归欠拟合-我爱公开课-52opencourse.com


合适的拟合
逻辑回归合适的拟合-我爱公开课-52opencourse.com

过拟合
逻辑回归过拟合-我爱公开课-52opencourse.com

过拟合的问题如何解决?

问题起源?模型太复杂,参数过多,特征数目过多。

方法: 1) 减少特征的数量,有人工选择,或者采用模型选择算法

http://www.cnblogs.com/heaad/archive/2011/01/02/1924088.html (特征选择算法的综述)

     2) 正则化,即保留所有特征,但降低参数的值的影响。正则化的优点是,特征很多时,每个特征都会有一个合适的影响因子。


5. 概率解释:线性回归中为什么选用平方和作为误差函数?

假设模型结果与测量值 误差满足,均值为0的高斯分布,即正态分布。这个假设是靠谱的,符合一般客观统计规律。

数据x与y的条件概率:

clip_image016

若使 模型与测量数据最接近,那么其概率积就最大。概率积,就是概率密度函数的连续积,这样,就形成了一个最大似然函数估计敲打。对最大似然函数估计进行推导,就得出了求导后结果: 平方和最小公式


6. 参数估计 与 数据的关系

拟合关系


7. 错误函数/代价函数/损失函数:

线性回归中采用平方和的形式,一般都是由模型条件概率的最大似然函数 概率积最大值,求导,推导出来的。

统计学中,损失函数一般有以下几种:

1) 0-1损失函数

L(Y,f(X))={1,0,Yf(X)Y=f(X)

2) 平方损失函数

L(Y,f(X))=(Yf(X))2

3) 绝对损失函数

L(Y,f(X))=|Yf(X)|

4) 对数损失函数

L(Y,P(Y|X))=logP(Y|X)

损失函数越小,模型就越好,而且损失函数 尽量 是一个凸函数,便于收敛计算。

线性回归,采用的是平方损失函数。而逻辑回归采用的是 对数 损失函数。 这些仅仅是一些结果,没有推导。


8. 正则化:

为防止过度拟合的模型出现(过于复杂的模型),在损失函数里增加一个每个特征的惩罚因子。这个就是正则化。如正则化的线性回归 的 损失函数:

正则化正式的定义-我爱公开课-52opencourse.com

lambda就是惩罚因子。

正则化是模型处理的典型方法。也是结构风险最小的策略。在经验风险(误差平方和)的基础上,增加一个惩罚项/正则化项。

线性回归的解,也从

θ=(XTX)1XTy


转化为

不可逆后的正规方程-我爱公开课-52opencourse.com

括号内的矩阵,即使在样本数小于特征数的情况下,也是可逆的。


逻辑回归的正则化:

正则化逻辑回归Cost Function-我爱公开课-52opencourse.com


从贝叶斯估计来看,正则化项对应模型的先验概率,复杂模型有较大先验概率,简单模型具有较小先验概率。这个里面又有几个概念。

什么是结构风险最小化?先验概率?模型简单与否与先验概率的关系?


经验风险、期望风险、经验损失、结构风险

期望风险(真实风险),可理解为 模型函数固定时,数据 平均的 损失程度,或“平均”犯错误的程度。 期望风险是依赖损失函数和概率分布的。

只有样本,是无法计算期望风险的。

所以,采用经验风险,对期望风险进行估计,并设计学习算法,使其最小化。即经验风险最小化(Empirical Risk Minimization)ERM,而经验风险是用损失函数来评估的、计算的。

对于分类问题,经验风险,就训练样本错误率。

对于函数逼近,拟合问题,经验风险,就平方训练误差。

对于概率密度估计问题,ERM,就是最大似然估计法。


而经验风险最小,并不一定就是期望风险最小,无理论依据。只有样本无限大时,经验风险就逼近了期望风险。

如何解决这个问题? 统计学习理论SLT,支持向量机SVM就是专门解决这个问题的。

有限样本条件下,学习出一个较好的模型。

由于有限样本下,经验风险Remp[f]无法近似期望风险R[f] 。因此,统计学习理论给出了二者之间的关系:R[f] <= ( Remp[f] + e )

而右端的表达形式就是结构风险,是期望风险的上界。而e = g(h/n)是置信区间,是VC维h的增函数,也是样本数n的减函数。

VC维的定义在 SVM,SLT中有详细介绍。e依赖h和n,若使期望风险最小,只需关心其上界最小,即e最小化。所以,需要选择合适的h和n。这就是结构风险最小化Structure Risk Minimization,SRM.

SVM就是SRM的近似实现,SVM中的概念另有一大筐。就此打住。


1范数,2范数 的物理意义:

范数,能将一个事物,映射到非负实数,且满足非负性,齐次性,三角不等式。是一个具有“长度”概念的函数。

1范数为什么能得到稀疏解?

压缩感知理论,求解与重构,求解一个L1范数正则化的最小二乘问题。其解正是 欠定线性系统的解。

2范数为什么能得到最大间隔解?

2范数代表能量的度量单位,用来重构误差。

以上几个概念理解需要补充。


9. 最小描述长度准则:

即一组实例数据,存储时,利用一模型,编码压缩。模型长度,加上压缩后长度,即为该数据的总的描述长度。最小描述长度准则,就是选择 总的描述长度最小的模型。

最小描述长度MDL准则,一个重要特性就是避免过度拟合现象。

如利用贝叶斯网络,压缩数据,一方面, 模型自身描述长度 随模型复杂度的增加而增加 ; 另一方面, 对数据集描述的长度随模型复杂度的增加而下降。因此, 贝叶斯网络的 MD L总是力求在模型精度和模型复杂度之间找到平衡。当模型过于复杂时,最小描述长度准则就会其作用,限制复杂程度。

奥卡姆剃刀原则:

 如果你有两个原理,它们都能解释观测到的事实,那么你应该使用简单的那个,直到发现更多的证据。

   万事万物应该尽量简单,而不是更简单。


11. 凸松弛技术:

将组合优化问题,转化为易于求解极值点的凸优化技术。凸函数/代价函数的推导,最大似然估计法。


12. 牛顿法求解 最大似然估计

前提条件:求导迭代,似然函数可导,且二阶可导。

迭代公式:
clip_image036

若是 向量形式,

clip_image037 

H就是 n*n 的hessian矩阵了。

特征:当靠近极值点时,牛顿法能快速收敛,而在远离极值点的地方,牛顿法可能不收敛。 这个的推导?

这点是与梯度下降法的收敛特征是相反的。


线性与非线性:

线性,一次函数;非线性,输入、输出不成正比,非一次函数。

线性的局限性:xor问题。线性不可分,形式:

x  0

0  x

而线性可分,是只用一个线性函数,将数据分类。线性函数,直线。

线性无关:各个独立的特征,独立的分量,无法由其他分量或特征线性表示。


核函数的物理意义:

映射到高维,使其变得线性可分。什么是高维?如一个一维数据特征x,转换为(x,x^2, x^3),就成为了一个三维特征,且线性无关。一个一维特征线性不可分的特征,在高维,就可能线性可分了。


逻辑回归logicalistic regression 本质上仍为线性回归,为什么被单独列为一类?

其存在一个非线性的映射关系,处理的一般是二元结构的0,1问题,是线性回归的扩展,应用广泛,被单独列为一类。

而且如果直接应用线性回归来拟合 逻辑回归数据,就会形成很多局部最小值。是一个非凸集,而线性回归损失函数 是一个 凸函数,即最小极值点,即是全局极小点。模型不符。

非凸函数-我爱公开课-52opencourse.com


若采用 逻辑回归的 损失函数,损失函数就能形成一个 凸函数。


凸函数-我爱公开课-52opencouse.com



多项式样条函数拟合

多项式拟合,模型是一个多项式形式;样条函数,模型不仅连续,而且在边界处,高阶导数也是连续的。好处:是一条光滑的曲线,能避免边界出现震荡的形式出现(龙格线性)
http://baike.baidu.com/view/301735.htm


以下是几个需慢慢深入理解的概念:

无结构化预测模型


结构化预测模型

什么是结构化问题?


adaboost, svm, lr 三个算法的关系。

三种算法的分布对应 exponential loss(指数 损失函数), hinge loss, log loss(对数损失函数), 无本质区别。应用凸上界取代0、1损失,即凸松弛技术。从组合优化到凸集优化问题。凸函数,比较容易计算极值点。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/387350.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

redis的源码编译安装+发布订阅+RDB持久化

redis的源码编译安装发布订阅RDB持久化转载于:https://www.cnblogs.com/zwq-/p/10420455.html

Shell基础1

0 Shell基础 0.1 Shell是什么 0.1.1 Shell是什么 Shell是一个命令行解释器&#xff0c;它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序&#xff0c;用户可以用Shell来启动、挂起、停止甚至编写一些程序。 硬件 <-内核 <- Shell命令解释器<-外层应…

centos7自带数据库MariaDB重启和修改密码

1&#xff1a;MariaDB和mysql差不多是mysql的一个分支&#xff0c;完全兼容mysql的命令。 2&#xff1a;centos 7 中自带MariaDB&#xff0c; 需要在centos中安装mysql的时候就需要多注意了。 3&#xff1a;启动 停止 重启 MariaDB systemctl start mariadb.service #启动Maria…

Shell基础2

0.12 数值运算与运算符 aa11 bb22 cc$aa$bb echo $cc #1122&#xff0c;因为变量默认是字符串类型 1、declare声明变量类型 declare /- 选项 变量名 选项&#xff1a; - 给变量设定类型属性 取消变量的类型属性 -i 将变量声明为整数型 -x 将变量声明为环境变量 …

XGBoost入门及实战

kaggle比赛必备算法XGBoost入门及实战 xgboost一直在kaggle竞赛江湖里被传为神器&#xff0c;它在对结构化数据的应用占据主导地位&#xff0c;是目前开源的最快最好的工具包&#xff0c;与常见的工具包算法相比速度提高了10倍以上&#xff01; XGBoost is an implementation o…

几个常用算法的适应场景及其优缺点

机器学习算法太多了&#xff0c;分类、回归、聚类、推荐、图像识别领域等等&#xff0c;要想找到一个合适算法真的不容易&#xff0c;所以在实际应用中&#xff0c;我们一般都是采用启发式学习方式来实验。通常最开始我们都会选择大家普遍认同的算法&#xff0c;诸如SVM&#x…

p1012拼数题解

#include<iostream> #include<algorithm> using namespace std; bool cmp(string b,string a) {return ba>ab;}//灵魂在这 int main() {string a[21];int n;cin>>n;for(int i1;i<n;i)cin>>a[i];sort(a1,an1,cmp);for(int i1;i<n;i)cout<&l…

常见算法及问题场景——图

最短路径 现实场景 1、一批货从北京到广州的的最快&#xff0c;或最省钱的走法。 把路线中各城市当作图的顶点&#xff0c;各城市之间的花费时间&#xff0c;或金钱当作边的权重&#xff0c;求两点之间的最短路径。 2、在城市群中建一个仓储基地&#xff0c;建在什么位置可以…

EF ++属性会更新实体

var lastBaby await _babyRepository.FirstOrDefaultAsync(); lastBaby.sort; -- sort原本为1 -- 最终会生成一条语句更新sort字段 exec sp_executesql NSET NOCOUNT ON;UPDATE [Babies] SET [BirthOrder] p0, [LastModificationTime] p1WHERE [Id] p2;SELECT ROWCOUNT; ,N…

分类算法应用场景实例二十则

1 O2O优惠券使用预测 以优惠券盘活老用户或吸引新客户进店消费是O2O的一种重要营销方式。然而随机投放的优惠券对多数用户造成无意义的干扰。对商家而言&#xff0c;滥发的优惠券可能降低品牌声誉&#xff0c;同时难以估算营销成本。个性化投放是提高优惠券核销率的重要技术&am…

Shell03

查看字符数的方法&#xff1a; seq -s " " 100 #以空格为分隔符&#xff0c;输出从1到100 seq 100 #以换行为分隔符 charsseq -s " " 100 echo $chars echo ${#chars} #统计字符数 echo $(expr length "$chars") #统计字符数 echo $cha…

luogu P3244 [HNOI2015]落忆枫音

传送门 md这题和矩阵树定理没半毛钱关系qwq 首先先不考虑有环,一个\(DAG\)个外向树个数为\(\prod_{i2}^{n}idg_i(\)就是\(indegree_i)\),因为外向树每个点入度为一,对于一个点有入度个父亲可选,然后乘法原理起来就是答案 现在可能加一条边会有环,那么答案可以考虑总方案减不合法…

EM算法 案例量则

例子一&#xff1a;理论&#xff1a; 简版&#xff1a;猜&#xff08;E-step&#xff09;,反思&#xff08;M-step&#xff09;,重复&#xff1b; 啰嗦版&#xff1a; 你知道一些东西&#xff08;观察的到的数据&#xff09;&#xff0c; 你不知道一些东西&#xff08;观察不到…

远程拷贝代码 指定端口

将本地testdir拷贝到远程服务器tmp目录下 scp -r -p 9022 testdir xiaoming192.168.0.2:/tmp/ 转载于:https://www.cnblogs.com/sea-stream/p/10436199.html

C#编写TensorFlow人工智能应用 TensorFlowSharp

TensorFlowSharp入门使用C#编写TensorFlow人工智能应用学习。 TensorFlow简单介绍 TensorFlow 是谷歌的第二代机器学习系统&#xff0c;按照谷歌所说&#xff0c;在某些基准测试中&#xff0c;TensorFlow的表现比第一代的DistBelief快了2倍。 TensorFlow 内建深度学习的扩展支持…

简单的MVC与SQL Server Express LocalDB

M模式&#xff1a; 类&#xff0c;表示数据的应用程序和使用验证逻辑以强制实施针对这些数据的业务规则。V视图&#xff1a; 应用程序使用动态生成 HTML 响应的模板文件。C控制器&#xff1a; 处理传入的浏览器请求的类中检索模型数据&#xff0c;然后指定将响应返回到浏览器的…

马尔可夫链 (Markov Chain)是什么鬼

作者&#xff1a;红猴子链接&#xff1a;https://www.zhihu.com/question/26665048/answer/157852228来源&#xff1a;知乎著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。马尔可夫链 &#xff08;Markov Chain&#xff09;是什么鬼 它是随机…

malloc/free 和 new/delete

(本文参考于网上&#xff09; 首先两者都可用于申请动态内存和释放内存&#xff61; 对于非内部数据类型的对象而言&#xff0c;只用malloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数&#xff0c;对象在消亡之前要自动执行析构函数。由于malloc/free是库…

主题模型-LDA浅析

个性化推荐、社交网络、广告预测等各个领域的workshop上都提到LDA模型&#xff0c;感觉这个模型的应用挺广泛的&#xff0c;会后抽时间了解了一下LDA&#xff0c;做一下总结&#xff1a; &#xff08;一&#xff09;LDA作用 传统判断两个文档相似性的方法是通过查看两个文档共…

dorado-SplitSpanel控件

1.这是一个界面布局控件 2.分为SideControl边区域和MainControl主区域 3.常用属性 3.1 collapsed&#xff1a;打开页面时&#xff0c;边区域是否显示 3.2 position&#xff1a;边区域占总的大小 转载于:https://www.cnblogs.com/ergougougou/p/10438752.html