【机器学习实战】极大似然法

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

http://baike.baidu.com/link?url=3Ej1VIItwWd35sXeoRWRhcJkJLCFvzPzNIoTkAfai8ZIS4Ppcch4_maQ25FjNCU1Eplsp4k3oPKLyv6VIsPhsq


一、

最大似然法是一种具有理论性的点估计法,基本思想是,当从模型总体随机抽取N组样本观测值后,最合理的参数估计量应该使得从模型中抽取N组样本观测值的概率最大。


二、

离散型:

假如一个罐子,里面有黑白两种颜色的球,数目不知,比例不知。我们想知道罐中黑白比例。不能把全部拿出。我们随机取出一个球,并记录颜色。若100此实验,70次白球。

设白球比例为P,则黑球为1-P。

P(Xi|M) = P(x1,x2,x3,...,x100 | M) = P(x1|M) * P(x2|M) * ... * P(x100|M) = P^70 * (1-P)^30

求Max{P^70 * (1-P)^30} ==> 对P求导=0

70*P^69*(1-P)^30 + P^70 * [-(1-P)^29 * 30] = 0 ===> P= 0.7


连续型:X~N(a,b^2)(正态分布);a,b是未知参数,x1,x2,x3....xn来自X的一个样本值。求a,b的极大似然估计值

X的概率密度函数为:

f(x;a,b^2) = 1/Math.sqrt(2*pi)*b  *  e^{-1 / 2b^2   * (x-a)^2} 

似然函数为:

L(a,b^2)=∏1/Math.sqrt(2*pi)*b  *  e^{-1 / 2b^2   * (x-a)^2}

求对数

lnL(a,b^2) = ln{1/Math.sqrt(2*pi)*b  *  e^{-1 / 2b^2   * (x1-a)^2}} + ... + ln{1/Math.sqrt(2*pi)*b  *  e^{-1 / 2b^2   * (xn-a)^2}}

==>n*(0-1/2 * ln(Math.sqrt(2*pi) * b)^2) + -1/(2b^2) * (x-a)^2

==>n*(0-1/2*ln2pi -1/2lnb^2) - 1/(2b^2) * ∑(xi-a)^2

==>-n/2*ln2pi - n/2 * lnb^2 - 1/(2b^2) * (xi-a)^2


求偏导

lnL(a,b^2) 对a求偏导==>  - 1/(2b^2) * 和(xi - a) * 2 * (-1) = 0 ==> (xi - a)  = 0 ==> 和xi = na ==>a=xi/n ==> 即a 等于 x样本的均值


lnL(a,b^2) 对b^2求偏导==> -n / (2b^2) -  (xi-a)^2 * (-1) * 1/(2b^2)^2 = 0 ==> n*b^2 - (xi-a)^2 =0 ==> b^2 = 1/n * ∑(xi-a)^2


三、逻辑回归


逻辑函数:

g(z) = 1 / (1+e^(-z))

估计函数:

h(x) = g(theta^T * x) = 1 / [1 + e^(-theta^T * x)]

由于二值分类很像二项分布。

P(y=1|x;theta) = h(x)

P(y=0|x;theta) = 1 - h(x)

===> 由上式推导成一般表达式:

P(y|x;theta) = [h(x)]^y * [1- h(x)]^(1-y)

验证 y = 0 => P(y=0|x;theta) = [h(x)]^0 *  [1- h(x)]^(1-0) = 1 * [1 - h(x)] = 1 - h(x)

验证 y = 1 => P(y=1|x;theta) = [h(x)]^1 *  [1- h(x)]^(1-1) = h(x) * 1 = h(x)


似然估计函数:

L(theta) = ∏ P(y|x;theta)  = ∏  [h(x)]^y * [1- h(x)]^(1-y)

求对数

ln L(theta) = ∑{y*lnh(x) + (1-y)ln[1-h(x)]}

采用梯度上升法:



转载于:https://my.oschina.net/u/204498/blog/644421

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

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

相关文章

机器学习的练功方式(九)——线性回归

文章目录致谢9 线性回归再相遇9.1 再遇9.1.1 概述9.1.2 矩阵和向量9.1.3 矩阵加减乘除9.1.3.1 矩阵——矩阵加减9.1.3.2 矩阵——标量加减乘9.1.3.3 矩阵——向量相乘9.1.3.4 矩阵——矩阵相乘9.1.3.5 矩阵的逆9.1.3.6 矩阵的转置9.1.4 向量化9.1.5 广义线性模型9.2 正规方程9.…

12个月份统计分组

/** 根据月份来统计trade里面的入账,支出,总盈利*/public function countMonth(){$in array();$out array();$res array();$year date("Y",time());$in_sql SELECT SUM(money) AS mon, FROM_UNIXTIME(cdate, "%m") AS m FR…

idea 调试技巧1

1 多线程调试 开发过多线程应用的朋友应该有体会,有些时候,为了观察多个线程间变量的不同状态,以及锁的获取等,就会想到在代码里加个断点debug一下。 在IDE里断点停下来的时候,可以切换到另外的线程中,跑其…

SQL server 复习一

第一天 下面我们从最基础的开始: 在运行里面输入:services.msc 一、启动服务 二、数据库登录的两种身份验证方式 另外一种身份验证方式就是SQL Server身份验证. sa不能使用的时候可以这样的操作: 1.用windows登录,然后在“实例”右键“属性”…

[分享]iOS开发-实现view底部控件随着键盘的弹出而上移的效果

首先说一下思路:想要达到底部控件随着键盘的弹出而上移的效果,那么我们必然需要的到键盘在弹出时的高度,以及原点坐标。说白了我们的大致思路就是,用view的高度-键盘弹出时的高度,得到的值就是底部控件与vi…

深度学习修炼(二)——数据集的加载

文章目录致谢2 数据集的加载2.1 框架数据集的加载2.2 自定义数据集2.3 准备数据以进行数据加载器训练致谢 Pytorch自带数据集介绍_godblesstao的博客-CSDN博客_pytorch自带数据集 2 数据集的加载 与sklearn中的datasets自带数据集类似,pytorch框架也为我们提供了数…

Css3之基础-5 Css 背景、渐变属性

一、CSS 背景概述背景属性的作用- 背景样式可以控制 HTML 元素的背景颜色、背景图像等 - 背景色- 设置单一的颜色作为背景- 背景图像- 以图片作为背景- 可以设置图像的位置、平铺、尺寸等二、CSS 背景属性背景色 background-color - 属性用于为元素设置背景色- 接受任何合法的颜…

机器学习的练功方式(十)——岭回归

文章目录十 岭回归10.1 岭回归的接口10.2 岭回归处理房价预测十 岭回归 岭回归是线性回归的改进,有时候迫不得已我们的参数确实不能少,这时候过拟合的现象就可能发生。为了避免过拟合现象的发生,既然不能从减少参数上面下手,那我…

OpenCV修养(一)——引入

文章目录1 引入1.1 OpenCV是啥1.2 OpenCV——Python1 引入 1.1 OpenCV是啥 OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。 它轻量级而且高…

被解放的姜戈08 远走高飞

作者:Vamei 出处:http://www.cnblogs.com/vamei 转载请先与我联系。 之前在单机上实现了一个Django服务器(被解放的姜戈07 马不停蹄),现在我们可以把这个服务器推上一个云平台。这里我选择使用阿里云。 看着复仇的火焰…

OpenCV修养(二)——OpenCV基本操作

文章目录2 OpenCV基本操作2.1 IO操作2.2 图像基本操作2.2.1 图像绘制2.2.1.1 绘制直线2.2.1.2 绘制圆形2.2.1.3 绘制矩形2.2.1.4 添加文字2.2.1.5 试手2.2.2 获取/修改图像的像素点2.2.3 获取图像属性2.2.4 图像通道拆分/合并2.2.5 色彩空间改变2.2.6 边界填充2.3图像算数操作2…

ylbtech-LanguageSamples-Porperties(属性)

ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-Porperties(属性)1.A,示例(Sample) 返回顶部“属性”示例 本示例演示属性为何是 C# 编程语言必不可少的一个组成部分。它演示了如何声明和使用属性。有关更多信息,请参见属性(C# 编…

Altium Designer敷铜的规则设定

InPolygon 这个词是铺铜对其他网络的设置,铺铜要离其他网络远点,因为腐蚀不干净会对 电路板有影响... 问题一:: 如下图所示,现在想让敷铜与板子边界也就是keepoutlayer的间距小一点,比如0.2MM。而与走线的间距比较大,比如0.8mm。要怎么设置规…

OpenCV修养(三)——图像处理(上)

文章目录致谢3 图像处理(上)3.1 几何变换3.1.1 图像缩放3.1.2 图像平移3.1.3 图像旋转3.1.4 仿射变换3.2 图像阈值3.3 图像平滑3.3.1 图像噪声3.3.1.1 椒盐噪声3.3.1.2 高斯噪声3.3.2 均值滤波3.3.3 方框滤波3.3.4 高斯滤波3.3.5 中值滤波3.3.6 小结3.4 …

机器学习的练功方式(十一)——逻辑回归

文章目录致谢11 逻辑回归11.1 引入11.2 激活函数11.3 损失函数11.4 梯度下降11.5 案例:癌症分类预测致谢 逻辑回归为什么用Sigmoid? - 知乎 (zhihu.com) 逻辑回归中的损失函数的解释_yidiLi的博客-CSDN博客_逻辑回归损失函数 11 逻辑回归 逻辑回归也被称…

【百度地图API】如何制作一张魔兽地图!!——CS地图也可以,哈哈哈

【百度地图API】如何制作一张魔兽地图!!——CS地图也可以,哈哈哈 原文:【百度地图API】如何制作一张魔兽地图!!——CS地图也可以,哈哈哈摘要: 你玩魔兽不?你知道如何做一张魔兽地图不…

linux系统分两种更普遍的包,rpm和tar,这两种安装包如何解压与安装

2019独角兽企业重金招聘Python工程师标准>>> RPM软件包管理器&#xff1a;一种用于互联网下载包的打包及安装工具&#xff0c;它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。rpm -ivh xxxx.rpm <-安装rpm包 -i install的意思 -v view 查看更详细的…

C++类的数组元素查找最大值问题

找出一个整型数组中的元素的最大值。 1 /*找出一个整型数组中的元素的最大值。*/2 3 #include <iostream>4 using namespace std;5 6 class ArrayMax //创建一个类7 {8 public :9 void set_value(); 10 void max_value(); 11 void sh…

C++从0到1的入门级教学(二)——数据类型

文章目录2 数据类型2.1 简单变量2.2 基本数据类型2.2.1 整型2.2.2 实型&#xff08;浮点型&#xff09;2.2.3 字符型2.2.4 布尔类型2.3 sizeof关键字2.4 类型转换2.5 转义字符2.6 重新谈及变量2.6.1 字面值常量2.6.2 变量2.6.3 列表初始化2.7 数据的输入2 数据类型 2.1 简单变…

深度学习修炼(三)——自动求导机制

文章目录致谢3 自动求导机制3.1 传播机制与计算图3.1.1 前向传播3.1.2 反向传播3.2 自动求导3.3 再来做一次3.4 线性回归3.4.1 回归3.4.2 线性回归的基本元素3.4.3 线性模型3.4.4 线性回归的实现3.4.4.1 获取数据集3.4.4.2 模型搭建3.4.4.3 损失函数3.4.4.4 训练模型3.5 后记致…