第一课 回归问题与应用

本系列是七月算法机器学习课程笔记

文章目录

  • 1 不同类型的学习
  • 2 基本术语与概念
  • 3 线性回归模型
    • 3.1 什么是线性回归
    • 3.2 损失函数
    • 3.3 最小化损失函数-梯度下降
    • 3.4 学习率有什么影响
    • 3.5 过拟合与欠拟合
  • 4 逻辑回归
    • 4.1 为什么要有逻辑回归
    • 4.2 什么是逻辑回归
    • 4.3决策边界
      • 线性边界判定
      • 非线性边界判定
    • 4.4 损失函数
    • 4.5 多分类问题
  • 5 混淆矩阵评判标准

1 不同类型的学习

机器学习:监督学习、无监督学习、强化学习
按照问题类型分:
聚类问题:相似用户分析、新闻聚类
分类问题(选择题) 情感分类、垃圾邮件、图像内容与识别
回归(回答类问题) 房价、票房值、
强化学习:研究如何根据环境而行动

2 基本术语与概念

数据集:训练集、测试集
样本=示例=样例
特征 属性、属性值
属性空间 样本空间
特征向量
标记 label 输出空间

3 线性回归模型

3.1 什么是线性回归

有监督 学习,输出是连续值
假定输入与输出之间是线性关系:f:x->y
例如体重与身高可能就是线性关系,房屋的价格与面积是线性关系

单变量线性回归:f=ax+bf=ax+bf=ax+b
多变量线性回归:f(x)=θ0+θ1x1+θ2x2=∑i=0nθixi=θTXf(x)=\theta_0+\theta_1x_1+\theta_2x_2=\sum_{i=0}^n\theta_ix_i=\theta_TXf(x)=θ0+θ1x1+θ2x2=i=0nθixi=θTX

3.2 损失函数

数据驱动=数据+模型
模型=假设函数
当数据确定的时候,x将不再是未知数,而参数是未知数,所以方程可以写为:h(θ)=∑i=0nθixih(\theta)=\sum_{i=0}^n\theta_ix_ih(θ)=i=0nθixi

损失函数
在监督学习中优化=损失函数 + 优化算法
我们要找到最好的参数θ\thetaθ,如何衡量呢?用损失函数定义
损失函数:定义了当前状况下与标准答案差异情况的函数。
J(θ0,θ1,θ2...θn)=12m∑i=1m(hθ(x(i))−y(i))2J(\theta_0,\theta_1,\theta_2...\theta_n)=\dfrac{1}{2m}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})^2J(θ0,θ1,θ2...θn)=2m1i=1m(hθ(x(i))y(i))2
在这里插入图片描述

3.3 最小化损失函数-梯度下降

损失函数是一个凸函数,J(θ0,θ1,θ2...θn)=12m∑i=1m(hθ(xi)−yi)2J(\theta_0,\theta_1,\theta_2...\theta_n)=\dfrac{1}{2m}\sum_{i=1}^m(h_\theta(x^i)-y^i)^2J(θ0,θ1,θ2...θn)=2m1i=1m(hθ(xi)yi)2
可以使用梯度下降的方式找损失函数的最小值。这就如同将一个小球在一个碗里,让它滚落到碗底。这里涉及到两个问题:一个是最开始小球放哪:初始位置,另外一个是小球从哪个方向滚。
初始位置不重要,放哪里都行。
滚的方向:在一条曲线中变化最快的方向是梯度方向,在开始点梯度方向是函数值增加的方向,所以滚的方向是负梯度方向。(这块内容需要用数学补充)

在多维情况下 梯度方向垂直于等高线。每次迈进一小步,直到山底。
在这里插入图片描述

参数迭代函数:

θ0:=θ0−α1m∑i=1m(hθ(x(i))−y(i))\theta_0 :=\theta_0 -\alpha\dfrac{1}{m}\sum_{i=1}^m(h_{\theta}(x^{(i)})-y^{(i)})θ0:=θ0αm1i=1m(hθ(x(i))y(i))

θ1:=θ1−α1m∑i=1m(hθ(x(i))−y(i)).x1(i)\theta_1 :=\theta_1 -\alpha\dfrac{1}{m}\sum_{i=1}^m(h_{\theta}(x^{(i)})-y^{(i)}).x_1^{(i)}θ1:=θ1αm1i=1m(hθ(x(i))y(i)).x1(i)

3.4 学习率有什么影响

学习率小,梯度下降慢,训练时间长
学习率大,会跨越最低点,形成振荡

3.5 过拟合与欠拟合

欠拟合:模型参数不够,表现不好。类似于一个孩子智商不够,学习不好一样。
过拟合:模型参数太多,不用学习,只是记忆答案,但遇到新的问题就不会了。类似于一个孩子智商太高,背会了所有练习题的答案。但是不会做新题。

对应的解决方法是:正则化
正则化:用来控制参数θ\thetaθ的幅度, 限制参数θ\thetaθ的搜索空间。这样损失函数就变成了:J(θ0,θ1,θ2...θn)=12m∑i=1n(hθ(xi)−yi)2+λ2∑j=1nθj2J(\theta_0,\theta_1,\theta_2...\theta_n)=\dfrac{1}{2m}\sum_{i=1}^n(h_\theta(x^i)-y^i)^2+\dfrac{\lambda}{2 }\sum_{j=1}^{n}\theta_j^2J(θ0,θ1,θ2...θn)=2m1i=1n(hθ(xi)yi)2+2λj=1nθj2

4 逻辑回归

4.1 为什么要有逻辑回归

现在问个问题是:希望根据肿瘤大小,判断病人是否患有癌症。
根据线性回归建模:可以设置阈值0.5,根据这个阈值算出一个肿瘤大小的分割线。
在这里插入图片描述
上面看似没有问题。如果有一些肿瘤尺寸很大的样本加入之后,这条线的斜率发生变化。此时再以0.5作为阈值,那么有些样本就会被错误的分类。也就是说线性回归用于分类问题的时候,特征值的范围会严重影响分类效果。
在这里插入图片描述

4.2 什么是逻辑回归

神奇的sigmoid函数:sigmoid函数也叫s曲线。
S(x)=11+e(−x)S(x)=\dfrac{1}{1+e^{(-x)}}S(x)=1+e(x)1
它的导函数是S(x)′=S(x)(1−S(x))S(x)'=S(x)(1-S(x))S(x)=S(x)(1S(x))

sigmoid函数能够把任意值转换到(0,1)范围内。我们可以将上面线性回归模型计算的值,作为入参送入sigmoid函数,得到一个(0,1)范围的值。

4.3决策边界

所有分类问题都是要找到一条决策边界。怎么用线性回归找到可以拟合出决策边界呢?

线性边界判定

假设函数hθ(x)=g(θ0+θ1x1+θ2x2)h_\theta(x)=g(\theta_0+\theta_1x_1+\theta_2x_2)hθ(x)=g(θ0+θ1x1+θ2x2),假定θ0=−3\theta_0=-3θ0=3θ1=1\theta_1=1θ1=1,θ2=1\theta_2=1θ2=1,那么当−3+x1+x2>0-3+x_1+x_2>03+x1+x2>0的时候,所有的点是在直线上方的,再看sigmoid函数,当输入值>0的时候,值是>0.5的。那么就可以理解图中x的概率是>0.5的。同理,图中圆圈的概率是<0.5的。我们就可以基于0.5给出一条决策边界。

非线性边界判定

假设函数hθ(x)=g(θ0+θ1x1+θ2x2+θ3x12+θ4x22)h_\theta(x)=g(\theta_0+\theta_1x_1+\theta_2x_2+\theta_3x_1^2+\theta_4x_2^2)hθ(x)=g(θ0+θ1x1+θ2x2+θ3x12+θ4x22),假定θ0=−1\theta_0=-1θ0=1θ1=0\theta_1=0θ1=0,θ2=0\theta_2=0θ2=0,θ3=1\theta_3=1θ3=1,θ4=1\theta_4=1θ4=1,也就是说函数变为:hθ(x)=g(−1+x12+x22)h_\theta(x)=g(-1+x_1^2+x_2^2)hθ(x)=g(1+x12+x22)。对于x12+x22−1=0x_1^2+x_2^2-1=0x12+x221=0可以形成这样一条圆形的曲线。x12+x22−1>0x_1^2+x_2^2-1>0x12+x221>0表示圆外面的x点,x12+x22−1<0x_1^2+x_2^2-1<0x12+x221<0表示圆内的○点。将其送入sigmoid函数,可以得到对应的概率。

4.4 损失函数

在逻辑回归中使用同样的损失函数发现好多凹凸点,不再是个凸函数。
在这里插入图片描述

因为hθ(x)h_\theta(x)hθ(x)表示的是概率。对于正样本(y=1)来说,hθ(x)h_\theta(x)hθ(x)越大越好,那么log(hθ(x))log(h_\theta(x))log(hθ(x)),越大越好,推理出−log(hθ(x))-log(h_\theta(x))log(hθ(x)),越小越好。
对于负样本(y=0)来说,hθ(x)h_\theta(x)hθ(x)越小越好,所以那么1−hθ(x)1-h_\theta(x)1hθ(x)越大越好,log(1−hθ(x))log(1-h_\theta(x))log(1hθ(x)),越大越好,推理出−log(1−hθ(x))-log(1-h_\theta(x))log(1hθ(x)),越小越好。

加log函数是因为在计算损失函数的时候多个样本的损失会相乘,概率相乘在大数据量下会发生溢出。加上log,将乘法改为加法,解决溢出问题。

所以得到损失函数为:

Cost(hθ(x),y)=−log(hθ(x))Cost(h_\theta(x),y)=-log(h_\theta(x))Cost(hθ(x),y)=log(hθ(x)), if y=1
Cost(hθ(x),y)=−log(1−hθ(x))Cost(h_\theta(x),y)=-log(1-h_\theta(x))Cost(hθ(x),y)=log(1hθ(x)), if y=0

最后的数学公式:
J(θ)=−1m[∑i=1my(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i)))]J(\theta)=-\dfrac{1}{m}[\sum_{i=1}^my^{(i)}log(h_\theta(x^{(i)})) +(1-y^{(i)})log(1-h_\theta(x^{(i)}))]J(θ)=m1[i=1my(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))]

加上正则化项之后变为:

J(θ)=−1m[∑i=1my(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i)))]+λ2m∑j=1nθj2J(\theta)=-\dfrac{1}{m}[\sum_{i=1}^my^{(i)}log(h_\theta(x^{(i)})) +(1-y^{(i)})log(1-h_\theta(x^{(i)}))]+\dfrac{\lambda}{2m}\sum_{j=1}^n\theta_j^2J(θ)=m1[i=1my(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))]+2mλj=1nθj2

解决损失韩式同样用梯度下降

4.5 多分类问题

上面谈到的是二分类。在解决多分类问题的时候可以采用 one vs one 和 one vs rest两种方法。

5 混淆矩阵评判标准

参考链接混淆矩阵评价指标_一文搞懂分类算法中常用的评估指标。

ROC曲线

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

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

相关文章

[推荐] TechNet 广播 SQL Server 2000完结篇

TechNet中文网络广播在之前已经推出了SQL Server 2000的基础系列和管理专家系列&#xff0c;使广大听众认识并掌握了SQL Server 2000的管理技巧。本次系列作为前两次系列课程的完结篇&#xff0c;将会从性能调优及维护的角度为广大听众提供了一道实用而精致的大餐&#xff0c;本…

spring mvc学习(28):get乱码解决

get请求乱码情况 编写一个RegistServlet处理用户的Get请求数据 View Code 运行结果发现输入中文提交后显示结果为乱码&#xff1a; jsp页面中 <meta http-equiv"content-type" content"text/html; charsetUTF-8">通知浏览器以utf-8解码 get请求…

第二课 决策树与随机森林

本系列是七月算法机器学习课程笔记 文章目录1 从LR到决策树1.1 决策树1.2 决策树的终止条件1.3 决策树划分依据1.3.1 信息熵1.3.2 信息增益1.3.3 ID3模型1.3.4 信息增益率1.3.5 基尼指数1.3.6 信息熵与基尼指数1.3.7 连续值属性2 回归树2.1 回归树构建方法3 从决策树到随机森林…

spring mvc学习(27):处理数据模型--从表单到controller传输数据续

创建maven项目就不说了&#xff0c;需要的找我前面的博客 pom.xml文件 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http…

第三课 SVM

本系列是七月算法机器学习课程笔记 文章目录1 问题2 key idea 13 key idea 24 key idea 35 key idea46 拉格朗日乘子求解7 核函数的发现学习SVM不要先看数学公式&#xff0c;这样把SVM的精华都丢掉了。学习SVM学习作者是如何构建出这样一个算法的过程。1 问题 无论线性分类、逻…

spring mvc学习(29):modelandview向页面传输数据

创建maven项目就不说了&#xff0c;需要的找我前面的博客 pom.xml文件 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http…

RESTORE DATABASE命令还原SQLServer 2005 数据库

今天在sqlServer20005 的management studio里使用bak文件还原数据库的时候,总是失败!Restore failed for Server ADANDELI. (Microsoft.SqlServer.Smo)An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfoThe bac…

第一百一十九期:支付宝历年双十一背后的技术揭秘

和过去10年一样&#xff0c;2019年天猫双11又创造了一个全新的纪录。这个数字背后&#xff0c;是数代支付宝工程师们殚精竭虑、不断突破技术难关。 作者&#xff1a;蚂蚁金服科技 自从有了双十一这个电商节日&#xff0c;很多技术人的生命轨迹都改变了&#xff0c;这种年度高…

第五课 机器学习中的特征工程

本系列是七月算法机器学习课程笔记 文章目录1 特征工程与意义2 数据与特征处理2.1数据采集2.2 数据清洗2.3 数据采样2.4 特征处理2.4.1 数值型2.4.2 类别型2.4.3 时间型2.4.3 文本型2.4.4 统计特征3 特征选择3.1 为什么做特征选择3.2 特征选择的方法3.2.1 过滤型3.2.2 包裹型3.…

局域主机做服务器,安装DNN,外网访问的解决办法

局域主机做服务器,安装DNN&#xff0c;外网访问的解决办法 问题&#xff1a; 如图&#xff1a;局域网主机IIS安装了DotNetNuke 4.0.x版本&#xff0c;设置虚拟目录为&#xff1a;dnn &#xff0c;安装好之后&#xff0c;内网用户通过http://192.168.19.9/dnn访问是没问题…

第一百二十期:终于有篇看的懂的B树文章了!

索引&#xff0c;相信大多数人已经相当熟悉了&#xff0c;很多人都知道 MySQL 的索引主要以 B 树为主&#xff0c;但是要问到为什么用 B 树&#xff0c;恐怕很少有人能把前因后果讲述完整。本文就来从头到尾介绍下数据库的索引。 作者&#xff1a;安静的boy 索引&#xff0c;…

csharp:Nhibernate Procedure with CreateSQLQuery and GetNamedQuery

<?xml version"1.0" encoding"utf-8"?> <hibernate-mapping assembly"Domain" namespace"Domain" xmlns"urn:nhibernate-mapping-2.2"><class name"DuCardType" table"DuCardType" la…

第六课 多算法组合与模型调优

本系列是七月算法机器学习课程笔记 文章目录1 前序工作流程1.1 数据处理1.2 特征工程1.3 模型选择1.4 交叉验证1.5 寻找最佳超参数2 模型优化2.1 模型状态2.2 模型优化12.3 模型优化22.4 模型优化32.5 模型优化4&#xff1a;模型融合2.5.1 bagging2.5.2 staking2.5.3 adaboost2…

第一百二十一期:当新闻报道用上AR 技术,能为读者带来什么?

「有一种名为记忆宫殿的记忆术&#xff0c;要点就是在人脑内建立起虚拟的空间场景&#xff0c;并把各种信息与空间产生联系。如果我们也能为每一起新闻建立起空间的概念&#xff0c;显然也会给读者带来更深刻的印象。」 作者&#xff1a;木斯 大部分新闻都拥有不同的切入视角…

第七章 scikit-learn与机器学习实战

文章目录1 scikit-learn2 一个项目实战2.1 项目目标2.2 划定问题2.3 选择性能指标2.4 核实假设2.5 获取数据2.6 数据探索和可视化、发现规律2.7 为机器学习算法准备数据2.8 选择并且训练模型2.9 模型微调2.10 测试集上测试1 scikit-learn 导航页与算法指南 API&#xff1a;数据…

Erlang注册进程名称-tut16.erl

作 w3cschool erlang 的练习 --------- 1 -module(tut16).2 3 -export([start/0, ping/1, pong/0]).4 5 %% Erlang 注册进程名称6 7 %% ping 进程必须通过某种途径 获得 pong 进程的进程标识符后 8 %% 才能将消息发送给 pong 进程9 10 %% Erlang 提供了 为每个进程提供一个名称…

第一百二十二期:大数据分析:红包先抢好,还是后抢好

本文用matlab程序&#xff0c;模拟微信给10个人发红包&#xff0c;设定次数1亿次&#xff0c;统计每个人抢到的红包&#xff0c;最佳手气和最差手气次数&#xff0c;用以分析红包是应该先抢还是后抢? 作者&#xff1a;景因分析 本文用matlab程序&#xff0c;模拟微信给10个人…

Linux重定向的理解

1 /*2 重定向的实例3 dup2函数4 5  利用filefd来代替STDOUT(标准输出流)&#xff0c;write写入filefd的数据&#xff0c;重定向写出到STDOUT中&#xff1b;6 */7 8 #include <stdio.h>9 #include <sys/stat.h> 10 #include <string.h> 11 #include …

spring mvc学习(30):sessionatrribute存储session数据

创建maven项目就不说了&#xff0c;需要的找我前面的博客 pom.xml文件 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http…

验证码

金讯教育有一节课讲的是验证码;代码如下&#xff1a; html: <label><input type"text" /><span id"yz" style" background:url(1.png) -10px -15px;width:80px;font-style: italic; height: 20px;border: 1px solid black;display: in…