当前位置: 首页 > 编程日记 > 正文

Machine Learning——DAY1

监督学习:分类和回归

非监督学习:聚类和非聚类

1.分类和聚类的区别:

分类(Categorization or Classification)就是按照某种标准给对象贴标签(label),再根据标签来区分归类。

聚类是指事先没有“标签”而通过某种成团分析找出事物之间存在聚集性原因的过程。

2.回归和分类的区别:

当我们试图预测的目标变量是连续的时,例如在我们的住房例子中,我们把学习问题称为回归问题。当y只能取一小部分离散值时(例如,考虑到居住区域,我们想预测一个住宅是房子还是公寓),我们称之为分类问题。

单个特征:

成本函数:

的添加是为了以后便于计算

梯度下降法:

学习速率ɑ选择不能太大也不能太小。

拿线性回归拟合为例,则梯度下降过程如下:

多个特征

hypothesis function(假设函数)

可理解为第i个样本的第0个属性值为1,这样设置是为了便于θ’X的矩阵运算

(试着将θ理解为平衡各个特征的权重)

(统计学习方法.李航中上标下标表示的意思与这里相反)

梯度下降法:

Feature Scaling(特征缩放):

它可以使得梯度下降的速度加快从而优化梯度下降法

μi表示所有样本的第i个属性(特征)的平均值

Si表示所有样本第i个属性(特征)中(最大值-最小值),或者叫standard deviation(标准差)

Polynomial Regression(多项式回归)

当数据用线性拟合不太好时可以考虑用多项式回归,例如二次三次多项式甚至平方根

正规方程法

Normal Equations 的由来

假设我们有m个样本。特征向量的维度为n。因此,可知样本为{(x(1),y(1)), (x(2),y(2)),... ..., (x(m),y(m))},其中对于每一个样本中的x(i),都有x(i)={x1(i), xn(i),... ...,xn(i)}。令 H(θ)=θ0 + θ1x1 +θ2x2+... + θnxn,则有

若希望H(θ)=Y,则有

X · θ = Y

我们先来回忆一下两个概念:单位矩阵 和 矩阵的逆,看看它们有什么性质。

1)单位矩阵E

AE=EA=A

2)矩阵的逆A-1

要求:A必须为方阵

性质:AA-1=A-1A=E

再来看看式子 X · θ = Y

若想求出θ,那么我们需要做一些转换:

step1:先把θ左边的矩阵变成一个方阵。通过乘以XT可以实现,则有

XTX · θ = XTY

step2:把θ左边的部分变成一个单位矩阵,这样就可以让它消失于无形了……

(XTX)-1(XTX) · θ = (XTX)-1XTY

step3:由于(XTX)-1(XTX) = E,因此式子变为

Eθ = (XTX)-1XTY

E可以去掉,因此得到

θ = (XTX)-1XTY

这就是我们所说的Normal Equation了。

Normal Equation VS Gradient Descent

Normal Equation 跟 Gradient Descent(梯度下降)一样,可以用来求权重向量θ。但它与Gradient Descent相比,既有优势也有劣势。

优势:

Normal Equation可以不在意x特征的scale。比如,有特征向量X={x1, x2}, 其中x1的range为1~2000,而x2的range为1~4,可以看到它们的范围相差了500倍。如果使用Gradient Descent方法的话,会导致椭圆变得很窄很长,而出现梯度下降困难,甚至无法下降梯度(因为导数乘上步长后可能会冲出椭圆的外面)。但是,如果用Normal Equation方法的话,就不用担心这个问题了。因为它是纯粹的矩阵算法。

劣势:

相比于Gradient Descent,Normal Equation需要大量的矩阵运算,特别是求矩阵的逆。在矩阵很大的情况下,会大大增加计算复杂性以及对计算机内存容量的要求。

什么情况下会出现Normal Equation不可逆,该如何应对?

1)当特征向量的维度过多时(如,m <= n 时)

解决方法:① 使用regularization方式

     or ②delete一些特征维度

2)有redundant features(也称为linearly dependent feature)

例如, x1= size in feet2

    x2 = size in m2

    feet和m的换算为 1m≈3.28feet所以,x1 ≈ 3.282 * x2, 因此x1和x2是线性相关的(也可以说x1和x2之间有一个是冗余的)

解决方法:找出冗余的特征维度,删除之。

梯度下降法和正规方程法的优劣比较:

转载于:https://www.cnblogs.com/oceantang/p/7117883.html

相关文章:

Java的注解

一、注解的概念&#xff1a; 注解并不是一开始就有的&#xff0c;JDK5之前是没有注解的&#xff0c;JDK5及其以后JDK版本才开始支持Java注解&#xff01; Java注解&#xff08;Annotation&#xff09;也叫做元数据&#xff0c;以注解名在代码中存在&#xff0c;它是一种在源代码…

activemq的学习,第一篇

本地的activemq的地址&#xff1a; http://localhost:8161/admin/ win10的启动avtivemq E:\Program Files\ActiveMQ\apache-activemq-5.15.3\bin\win64 win64里面的activemq.bat 消息队列的学习 学习地址2 这是spring集合activemq的地址&#xff1a;github pom.xml引入的依赖&a…

CS Tip 16: 利用注释

译自: http://soup.co.za/weblog/archive/2006/04/07/CS-Tip-16_3A00_-Commenting-out-controls.aspx 当您在修改皮肤时您可以修改任何HTML标记&#xff0c;但是除了带有runat"Server"的除外&#xff0c;删除掉将会产生错误 如果您不想某个控件显示在页面上您可以注释…

今天没有浪费时间,我努力了

7月12日经过暴雨洗礼过的清晨&#xff0c;我晚起了一会&#xff0c;我伧促的洗了把脸&#xff0c;瞪起朦胧胧的双眼&#xff0c;迈着疲惫步子&#xff0c;重复着这条凌乱的街道&#xff0c;10分钟多一点&#xff0c;我就到了公交站点&#xff0c;像往常一样&#xff0c;挤上了8…

动态规划——洛谷_P1057传球游戏

题目&#xff1a; 题目描述 上体育课的时候&#xff0c;小蛮的老师经常带着同学们一起做游戏。这次&#xff0c;老师带着同学们一起做传球游戏。游戏规则是这样的&#xff1a;n个同学站成一个圆圈&#xff0c;其中的一个同学手里拿着一个球&#xff0c;当老师吹哨子时开始传球&…

多线程1(进程、[创建]线程与生命周期)

一、进程与线程 什么是进程&#xff1f;我们先说说什么是程序&#xff1f; 程序&#xff08;Program&#xff09;是为实现特定目标或解决特定问题而用计算机语言&#xff08;比如Java、C等&#xff09;编写的命令序列的集合。 进程&#xff08;process&#xff09;就是指一个程…

网络操作系统第四章

1. 磁盘的数据结构包括哪些内容&#xff1f; 答&#xff1a;分区&#xff0c;卷&#xff0c;磁盘分区&#xff0c;主分区&#xff0c;扩展分区&#xff0c;逻辑分区&#xff0c;逻辑驱动器&#xff0c;引导分区。 2. 什么是基本磁盘和动态磁盘&#xff1f; &#xff08;…

广播风暴系列专题(一)广播风暴:发现-端口

近日防火墙经常地检测到"svchost UDP/连入192.168.1.255/137 192.168.1.66/137 1055656/1065732 UDP_WAIT 过滤 8:48:31 C:\WINDOWS\system32\svchost.exe";"services UDP/连出 192.168.1.21/137 192.168.1.255/137 920736/913476 UDP_WAIT 过滤 11:46:3…

显示一个顶层的提示信息

vb里常作&#xff0c;大概的思路就是显示一个顶层的窗体&#xff0c;提示暂时不要动。c&#xff03;里更简单了MsgDlg msgnewMsgDlg(); msg.TopMosttrue; msg.Show(); System.Windows.Forms.Application.DoEvents();

ArcGIS Engine开发-TOCControl中实现图层的拖放

TOCControl非常好&#xff0c;不用写一行代码就可以将整个地图的图层信息况显示出来&#xff1b;TOCControl也非常坏&#xff0c;提供的接口非常少&#xff0c;我认为有用的只有三个&#xff1a;HitTest,SetBuddyControl,Update&#xff0c;而且Update方法一执行&#xff0c;整…

多线程2(常用的方法:join、interrupt、currentThread、isAlive、setDaemon...)

常用的方法&#xff1a; 1、join()方法&#xff1a;join()方法&#xff1a;执行该方法的线程进入阻塞状态&#xff0c;直到调用该方法的线程结束后再由阻塞状态转为就绪状态。 示例&#xff1a; package venus;import java.util.Date;public class Test {public static void m…

Oracle总结第二篇【视图、索引、事务、用户权限、批量操作】

前言 在Oracle总结的第一篇中&#xff0c;我们已经总结了一些常用的SQL相关的知识点了…那么本篇主要总结关于Oralce视图、序列、事务的一些内容… 在数据库中&#xff0c;我们可以把各种的SQL语句分为四大类… &#xff08;1&#xff09;DML&#xff08;数据操纵语言&#xff…

物联网应用介绍

•物联网的研究背景&#xff08;概念 | 本质 | 特征 | 发展现状&#xff09;物联网是新一代信息技术的高度集成和综合运用&#xff0c;已成为全球新一轮科技革命与产业变革的核心驱动和经济社会绿色、智能、可持续发展的关键基础与重要引擎。国家十三五规划纲要明确提出“积极推…

Oracle使用手册(三)---存储过程与触发器

--存储过程/**//*--1.过程的语法结构--参见:http://newland.cnblogs.com/archive/2006/04/05/367531.html--2.执行存储过程begin 存储过程名;end;--创建好的存储过程可以被任何程序调用*/--3.带参数的存储过程/**//* 参数类型 在PL/SQL过程中&#xff0c;可以有3种类型的…

数据结构之【线性表】(顺序表、链表的基本操作实现)

概念线性表&#xff1a;是N个数据元素的有限序列。 顺序表&#xff1a;用一组地址连续的存储单元依次存储【线性表 】的数据元素。&#xff08;区别于有序表&#xff1a;表中的数据元素存在非递增或非递减有序&#xff09; 链表&#xff1a;用一组任意的存储单元来存储【线性表…

基于android的天气预报的设计与实现

目录 应用开发技术及开发平台介绍应用需求分析应用功能设计及其描述应用UI展示①开发技术&#xff1a; 本系统是采用面向对象的软件开发方法&#xff0c;基于Android studio开发平台&#xff0c;以Android作为本系统的开发语言实现音乐播放器预定的需求功能。 ②平台介绍 硬件平…

敏捷开发有感!

http://sd.csdn.net/n/20060913/94713.html1.我们最优先要做的是通过尽早的&#xff0c;持续的交付有价值的软件来使客户满意。有一篇文章分析了对于公司构建高质量产品方面有帮助的软件开发实践&#xff0c;其中一个实践表明尽早的交付具有部分功能的系统和系统质量之间具有很…

ng 表单提交验证

http://www.runoob.com/try/try.php?filenametry_ng_validate 转载于:https://www.cnblogs.com/alvin553819/p/7127226.html

Infragistics NetAdvantage 2006 Volume 2 CLR 2.0曲折安装

上个月看到Infragistics NetAdvantage 2006 Volume 2 CLR 2.0(新特性)新鲜出炉&#xff0c;就一直想安装试用。昨天qq上得知已经有人在使用了&#xff0c;赶紧google一个down下来。经过漫长下载等待&#xff0c;满怀希望安装&#xff0c;哪想到快完成的时候居然报错&#xff0c…

数据结构之【栈】的基本操作C语言实现

引题&#xff1a; 很多人都把【栈】描述成【弹匣】&#xff0c;但我总感觉有点不恰当&#xff0c;因为弹匣从上端【装弹】之后&#xff0c;子弹总是在匣的上层&#xff1b;而元素【进栈】之后&#xff0c;总在栈的下面。 我觉得还是描述成【从下往上向书箱里一层…

编码小记(未整理-持续更新)

----------------基本概念-------------------------------一.位&#xff1a; 计算机存储信息的最小单位&#xff0c;称之为位&#xff08;bit&#xff09;&#xff0c;音译比特&#xff0c;二进制的一个“0”或一个“1”叫一位。 二.字节 字节&#xff08;Byte&#xff09;是一…

使用locate 的正则查询 查找所有main.c

locate支持正则查询的功能&#xff0c; 只需输入locate -r 正则表达式 即可。 现在我想查找所有main.c怎么做&#xff1f; 打开终端&#xff0c;输入shell&#xff1a; locate -r main.c$ PS&#xff1a;$表示结束字符串结束。转载于:https://www.cnblogs.com/the-one/p…

My Favorites

AJAX "Atlas" Control Toolkit HomePage "Atlas" Client Class Library "Atlas" Server Class Library ASP.NET AJAX Roadmap http://www.ajaxian.com 被成为AJAX第一站 . http://www.ajaxmatters.com/ 不仅有讨论XMLHttpRequest 的文…

数据库事务初探

使用事务级别要慎重: 因为事务级别越高&#xff0c;数量越多、限制性更强的锁就会被运用到数据库记录或者表中。同时&#xff0c;更多的锁被运用到数据库和它们的覆盖面越宽&#xff0c;任意两个事务冲突的可能性就越大。 如果有一个冲突&#xff08;例如两个事务试图获取同一个…

数据结构之【队列】的基本操作C语言实现

直接上图&#xff1a; 循环队列的声明&#xff1a; 0、循环队列的声明 循环队列的基本操作&#xff1a; 1、InitQueue(&Q)&#xff08;构造一个空队列&#xff09; 2、DestroyQueue(&Q)&#xff08;销毁队列Q&#xff09; 3、ClearQueue(&Q)&#xff08;清空队列Q&…

在python3环境安装builtwith模块

1、安装命令&#xff1a; pip install builtwith 如果在命令行提示如下错误&#xff1a; Fatal error in launcher: Unable to create process using " 使用如下命令&#xff1a; python3 -m pip install builtwith 2、导入模块会出现错误提示&#xff1a; 原因&#xff1…

kettle组件-输出

1&#xff1a;删除连接数据库&#xff1a;新建连接数据库&#xff0c;或者应用转换中已经定义好的数据库。目标模式&#xff1a;指什么现在还不明确&#xff0c;集群模式&#xff1f;子服务器模式&#xff1f;--要写入数据的表的Schema名称。允许表名中包含“.”是很重要的。目…

NGOSS的一点简单概念

NGOSS&#xff08;Next Generation Operational Support Systems&#xff09;是由TMF&#xff08;Tele Management Forum&#xff09;提出的&#xff0c;他用于电信领域&#xff0c;是构建下一代OSS/BSS系统的框架。TMF提供了技术中立构架&#xff08;TNA&#xff09;作为NGOSS…

Windows Mobile 5.0 设备的目录变化

自定义铃声的默认两个存放位置&#xff1a;1. Application Data\Sounds &#xff08;不是Storage下的Application Data了&#xff09;。2. 外存储设备的根目录。

第二周期的第一次站立会议

今天&#xff1a;对这一阶段的任务进行了分配&#xff0c;我就自己的任务内容搜集了一些资料&#xff0c;尝试了编程。明天&#xff1a;继续进行编程。遇到的问题&#xff1a;编程方面有些许的困难。转载于:https://www.cnblogs.com/guantianhuan/p/10051436.html