使用最大似然法来求解线性模型(1)

在Coursera机器学习课程中,第一篇练习就是如何使用最小均方差(Least Square)来求解线性模型中的参数。本文从概率论的角度---最大化似然函数,来求解模型参数,得到线性模型。本文内容来源于:《A First Course of Machine Learning》中的第一章和第二章。

 

先来看一个线性模型的例子,奥林匹克百米赛跑的男子组历年数据如下:

 

 

所谓求得一个线性模型就是:给定一组数据(上图中的很多点),如何找到一条合适的直线,让这条直线能够更好地“匹配”这些点。

一种方式就是使用最小二乘法,通过最小化下面的代价函数J(θ)求得一条直线方程--即线性模型。

 

其中,hθ(x)是待求解的线性模型(本例中就是一条直线),y(i)是样本x(i)对应的实际值,hθ(x(i))是线性模型在样本x(i)上的预测值。我们的目标就是让实际值与预测值二者尽可能地接近--二者之间的“差”尽可能地小,这样我们的预测结果就越准确,我们的线性模型也越好(不考虑overfitting)

最小二乘法就是最小化J(θ)这个函数,解出θ,代入hθ(x),得到一条直线(hθ(x)就是直线方程)。而这条直线,就是我们的线性模型了。

 

对于这种方式而言,我们的模型就是一条直线,在我们的模型中(直线)没有能够反映真实值与预测值之间的误差的因子。把模型稍微修改一下:

从原来的:(这里的w就相当于上面的θ,t 就是hθ(x),只是为了统一 一下《A First Course of Machine Learning》中用到的符号)

t=wT*x

改成:

t=wT*x+ξ

其中,ξ 用来表示“误差”---noise,x是训练样本数据,w是模型的参数。

 

这样,我们的新模型表达式:t=wT*x+ξ 就可以显示地表示 noise 了(不仅仅是一条直线表达式了)。那现在问题还是:怎样求得一个“最好的” w 和 ξ,得到“最好的”模型?

 

现在不是用上面的最小二乘法了求解w 和 ξ 了,而是用最大似然函数法---(见使用最大似然法来求解线性模型(2)-为什么是最大化似然函数?)

 

原文:http://www.cnblogs.com/hapjin/p/6623127.html

转载于:https://www.cnblogs.com/hapjin/p/6623127.html

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

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

相关文章

.net aspose.words 域加载图片_使用Python批量替换csdn文章的图片链接

欢迎大家关注我的微信公众号“IT工匠”获取更多资源(涉及算法、数据结构、java、深度学习、计算机网络、python、Android等互联网技术资料)。前言笔者之前的写作习惯一直是在本地(MacTyporaIpac)写好之后将markdown代码粘贴到csdn,图片是Ipac自动上传到微博匿名图床…

Spring积累总结

1.spring 的优点: 1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦 2.可以使用容易提供的众多服务,如事务管理,消息服务等 3.容器提供单例模式支持 4.容器提供了AOP技术,利用它很容易实现如权限拦截&#xff0…

什么是公钥和私钥?

公钥和私钥是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),将其中的一个向外界公开,称为公钥;另一个自己保留,称为私钥。通过这种算法得到的密钥对能保证在世界范围内是唯一的。使用这个密钥对的时候,如果用其…

基恩士上位机链路通讯_基恩士PLC通讯源码

基恩士PLC KV7000,8000还是比较好用的,那如何和上位机通讯,我把源码写出来了。采用上位链路通讯,基恩士官方给我们留了8501端口,这个端口有意思刚好是我生日。基恩士的资料我觉得做的特别好,能快速写源代码得益于官方资料特别详细…

第二次作业+105032014101

1、测试帖链接 http://www.cnblogs.com/ELPSY/p/6605831.html 2、提出的建议 该代码基本符合编码规则所需的正确性、稳定性、可读性的要求。 程序出现错误的地方在对于2月份日期的判定上,以“2000 2 30”的输入语句符合年月日的三个输入条件,但是这并不…

fastq质量值_fastq 数据格式解析

概念介绍Read 读段Read 中文翻译: 读段,来自测序仪的raw data一个Read 可能由多个片段组成, Read的索引是测序时的顺序Sequencing quality 测序质量测序仪在测序的时候,每次测出来的结果可能都不一样(仪器误差 序列长度等各方面因…

画像分析(3-3)标签建模-模型管理-新建关系

1、关系是什么 关系,是实体与实体之间所发生的连接,通常表示某一种行为/一个事实,如成交、搜索、出行。从数据表的角度来看,这样的表通常被称为”事实表“,往往是有多个联合主键(或是说都是外键&#xff09…

二进制、八进制、十进制、十六进制之间的转换

在计算机语言中常用的进制有二进制、八进制、十进制和十六进制,十进制是最主要的表达形式。 对于进制,有两个基本的概念:基数和运算规则。 基数:基数是指一种进制中组成的基本数字,也就是不能再进行拆分的数字。二进…

myeclipse mysql 乱码_MyEclipse与mysql增改查现乱码解决方案绝对有效

设置MyEclipse文件编码。且跟mysql的连接编码一致set names gbk; SET character_set_clientutf8;SET character_set_connectionutf8;SET character_set_resultsutf8;show variables like %char%;SET character_set_clientutf8;SET character_set_connection utf8;SET character…

poj3723Conscription

题目链接&#xff1a;http://poj.org/problem?id3723 建图时将女生编号都加n&#xff08;男生数目&#xff09;&#xff0c;求最大生成树。 1 #include <cstdio>2 #include <cstring>3 #include <algorithm>4 using namespace std;5 const int maxn100001;6…

JAVA基础知识之字节和字符

一、字节的概念 1、计算机中的数据都是以二进制的形式进行存储和交换的&#xff0c;字节本质就是二进制&#xff0c;因此字节是最基本的储存单位 2、一个字节本质就是8位二进制&#xff0c;因此1个字节最小的值是0&#xff0c;最大的值是11111111&#xff0c;转换十进制…

mysql 8小时问题_Mysql经典的“8小时问题”

假设你的数据库是mysql&#xff0c;如果数据源配置不当&#xff0c;将可能发生经典的“8小时问题”。原因是mysql在默认情况下&#xff0c;如果发现一个连接的空闲时间超过8小时&#xff0c;将会在数据库端自动关闭这个连接。而数据源并不知道这个连接已经关闭了&#xff0c;当…

【BZOJ 2753】 2753: [SCOI2012]滑雪与时间胶囊 (分层最小树形图,MST)

2753: [SCOI2012]滑雪与时间胶囊 Time Limit: 50 Sec Memory Limit: 128 MBSubmit: 2457 Solved: 859Description a180285非常喜欢滑雪。他来到一座雪山&#xff0c;这里分布着M条供滑行的轨道和N个轨道之间的交点&#xff08;同时也是景点&#xff09;&#xff0c;而且每个景…

SortedMap接口实现排序

SortedMap接口主要提供有序的Map实现。SortedMap接口是排序接口&#xff0c;只要是实现了此接口的子类&#xff0c;都属于排序的子类&#xff0c;TreeMap也是此接口的一个子类 Map的主要实现有HashMap,TreeMap,HashTable,LinkedHashMap。 TreeMap实现了SortedMap接口&#xf…

mysql漏洞包_MySQL npm包中的本地文件泄露漏洞

“A pure node.js javascript Client implementing the MySQL protocol.”漏洞在某次安全评估中&#xff0c;Synacktiv专家无意中发现某个应用可以从另一台MySQL服务器中读取敏感数据&#xff0c;而该应用程序正是使用了mysql的npm软件包。该npm软件包所支持的LOAD DATA LOCAL命…

C# 对象与JSON串互相转换

DoNet2.0 需要借助于Newtonsoft.Json.dll 1 代码2 3 using System;4 using System.IO;5 using System.Text;6 using Newtonsoft.Json;7 8 namespace OfflineAcceptControl.UCTools9 { 10 public class JsonTools 11 { 12 // 从一个对象信息生成Json串 13 …

mysql 日期查询今天_Mysql 日期查询今天、昨天、近7天、近30天、本月、上一月、本季...

今天select * from 表名 where to_days(时间字段名) to_days(now());昨天SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) < 1近7天SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) < date(时间字段名)近30天SELECT * FROM 表名 whe…