机器学习---线性回归、多元线性回归、代价函数

1. 线性回归

回归属于有监督学习中的一种方法。该方法的核心思想是从连续型统计数据中得到数学模型,然后

将该数学模型用于预测或者分类。该方法处理的数据可以是多维的。

回归是由达尔文的表兄弟Francis Galton发明的。Galton于1877年完成了第一次回归预测,目的是

根据上一代豌豆的种子(双亲)的尺寸来预测下一代豌豆种子(孩子)的尺寸(身高)。Galton在

大量对象上应用了回归分析,甚至包括人的身高。他得到的结论是:如果双亲的高度比平均高度

高,他们的子女也倾向于平均身高但尚不及双亲,这里就可以表述为:孩子的身高向着平均身高回

归。Galton在多项研究上都注意到了这一点,并将此研究方法称为回归。

比如:有一个房屋销售的数据如下

如果来了一个新的面积,假设在销售价钱的记录中没有的,怎么处理?

解决方法:用一条曲线去尽量准的拟合这些数据,然后如果有新的输入过来,我们可以在将曲线上

这个点对应的值返回。如果用一条直线去拟合,可能是下面的样子:

常用概念和符号:

房屋销售记录表:训练集(training set)或者训练数据(training data),是我们流程中的输入数

据,一般称为x;

房屋销售价钱:输出数据,一般称为y;

拟合的函数(或者称为假设或者模型):一般写做y=h(x)

训练数据的条目数(#training set):一条训练数据是由一对输入数据和输出数据组成的输入数据

的维度n(特征的个数,#features);

这个例子的特征是两维的,结果是一维的。然而回归方法能够解决特征多维,结果是一维多离散值

或一维连续值的问题识别结果。

注意:

(1)因为是线性回归,所以学习到的函数为线性函数,即直线函数

(2)因为是单变量,因此只有一个x;

单变量线性回归模型:

正向线性关系:

负向线性关系:

 无关系:

y^=b0+b1x

这个方程叫做估计线性方程(estimated regression line)。

其中,b0是估计线性方程的纵截距,b1是估计线性方程的斜率,y^是在自变量x等于一个给定值

的时候,y的估计值。

线性回归例子:

汽车卖家做电视广告数量与卖出的汽车的数量:

 

假设有一周广告数量为6,则预估卖出的汽车数量为5*6+10=40。 

代数推导:

矩阵推导:

 

2. 多元线性回归

简单线性回归与多元线性回归的区别:

1.与简单线性回归区别(simple linear regression):多个自变量x

2.多元回归模型

y=β0+β1x1+β2x2+…+βpxp+e

其中:β1, β2 … βp是参数值,e是误差值

3.多元回归方程

E(y)=β0+β1x1+β2x2+…+βpxp

4.估计多元回归方程

y_hat=b0+b1x1+b2x2+…+bpxp

一个样本用来计算β0,β1,β2.....βp的点估计b0,b1,b2.....bp

比如:一家快递公司送货

x1:运输里程   x2:运输次数    y:总运输时间

3. 代价函数

代价函数(有的地方也叫损失函数,Loss Function)在机器学习中的每一种算法中都很重要,因为

训练模型的过程就是优化代价函数的过程,代价函数对每个参数的偏导数就是梯度下降中提到的梯

度,防止过拟合时添加的正则化项也是加在代价函数后面的。一个好的代价函数需要满足两个最基

本的要求:能够评价模型的准确性,对参数可微。

在线性回归中,最常用的代价函数是均方误差(mean squared error),具体形式为:

求参数的方法:

最小二乘法:是一个直接的数学求解公式,但是他要求X是满秩的。

梯度下降法(gradient  descent):

梯度下降原理:将函数比作一座山,我们站在某个山坡上,往四周看,从哪个方向向下走一小步,

能够下降的最快;

方法:

(1)先确定向下一步的步伐大小,我们称为Learning rate;

(2)任意给定一个初始值;

(3)确定一个向下的方向,并向下走预先规定的步伐,并更新初始值;

(4)当下降的高度小于某个定义的值,则停止下降;

梯度下降法的特点:

(1)初始点不同,获得的最小值也不同,因此梯度下降求得的只是局部最小值

(2)越接近最小值时,下降速度越慢;

如果参数初始值就在local minimuml的位置,所以derivative肯定是0,因此参数值不会变化;

如果取到一个正确的α值,则cost function应该越来越小;

随时观察Q值,如果cost function变小了,则ok,反之,则再取一个更小的值。

从上图可以看出,初始值不同,获得的最小值也不同,因此梯度下降求得的只是局部最小值。

下降的步伐大小非常重要,如果过小,就会找到函数最小值的速度非常的慢,如果太大,则可能出

现over shoot the minium 的现象。

 如果learning rate取值之后发现,cost function 增长了,则需要降低learning rate。

def gradientDescent(x,y,theta,alpha,m,numIterations):
    xTrans =x.transpose()
    for i in range(0,numIterations):
        hypothesis=np.dot(x,theta)
        loss=hypothesis-y
        #cost np.sum(loss *2)/(2 m)
        #print("Iteration %d Cost:%f"%(i,cost))
        gradient=np.dot(xTrans,loss)/m
        theta=theta-alpha*gradient
    return theta

 

 

 

 

 

 

 

 

 

 

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【话题】感觉和身边其他人有差距怎么办?也许自我调整很重要

每个人能力有限,水平高低不同,我们身在大环境里,虽然在同一个起跑线上,但是时间久了,你会发现,并越来越感觉到和身边其他人有了差距,慢慢的会有一定的落差感,怎么办呢!通…

接口请求(get、post、head等)详解

一.接口请求的六种常见方式: 1、Get 向特定资源发出请求(请求指定页面信息,并返回实体主体) 2、Post 向指定资源提交数据进行处理请求(提交表单、上传文件),又可能导致新的资源的建…

使用docker 搭建nginx + tomcat 集群

创建3个Tomcat容器,端口分别映射到 8080,8081,8082,使用数据卷挂载,分别将宿主机目录下的 /opt/module/docker/tomcat3/ROOT1/,/opt/module/docker/tomcat3/ROOT2/,/opt/module/docker/tomcat3/ROOT2/ 挂载到 容器内部…

【腾讯云 Cloud studio 实战训练营】搭建Next框架博客——抛开电脑性能在云端编程(沉浸式体验)

文章目录 ⭐前言⭐进入cloud studio工作区指引💖 注册coding账号💖 选择cloud studio💖 cloud studio选择next.js💖 安装react的ui框架(tDesign)💖 安装axios💖 代理请求跨域&#x…

网站无法访问的常见原因

有多种问题可能会阻止用户访问您的网站。本文将解决无法访问网站,且没有错误消息指示确切问题的情况,希望对您有所帮助。 无法访问网站的常见原因有: (1)DNS 设置不正确。 (2)域名已过期。 (3)空白或没有索引文件。 (4)网络连接问题。 DNS 设…

【Spring】(二)从零开始的 Spring 项目搭建与使用

文章目录 前言一、Spring 项目的创建1.1 创建 Maven 项目1.2 添加 Spring 框架支持1.3 添加启动类 二、储存 Bean 对象2.1 创建 Bean2.1 将 Bean 注册到 Spring 容器 三、获取并使用 Bean 对象3.1 获取Spring 上下文3.2 ApplicationContext 和 BeanFactory 的区别3.3 获取指定的…

Python web实战之 Django 的 MVC 设计模式详解

技术栈:Python、Django、HTML、CSS、JavaScript。 概要 在 Web 开发中,MVC(Model-View-Controller)模式是一种非常常见的设计模式,它可以帮助我们更好地管理代码,提高代码的可维护性。今天就介绍如何使用 …

无人机巢的作用及应用领域解析

无人机巢作为无人机领域的创新设备,不仅可以实现无人机的自主充电和电池交换,还为无人机提供安全便捷的存放空间。为了帮助大家更好地了解无人机巢,本文将着重解析无人机巢的作用和应用领域。 一、无人机巢的作用 无人机巢作为无人机技术的重…

卷积神经网络【图解CNN】

文章目录 1.卷积运算2.池化3.全连接层 卷积神经网络可以看作一个函数或者黑箱,输入就是图片的像素阵列,输出就是这个图片是什么? 图片是X,那么就输出‘x’,图片是‘O’,那么就输出O; 在计算机眼中&#xff…

MySQL索引1——基本概念与索引结构(B树、R树、Hash等)

目录 索引(INDEX)基本概念 索引结构分类 BTree树索引结构 Hash索引结构 Full-Text索引 R-Tree索引 索引(INDEX)基本概念 什么是索引 索引是帮助MySQL高效获取数据的有序数据结构 为数据库表中的某些列创建索引,就是对数据库表中某些列的值通过不同的数据结…

C语言笔试题训练【第一天】

目录 第一题 第二题 第三题 第四题 第五题 大家好,我是纪宁。 从今天开始博主会日更一些经典的C语言笔试题,持续20天左右。题目类型为5道选择题加2道编程题,希望能和大家一起进步。 第一题 1.读程序,下面程序正确的输出是&…

【Java可执行命令】(十二)依赖分析工具jdeps:通过静态分析字节码并提取相关信息来实现依赖分析 ~

Java可执行命令之jdeps 1️⃣ 概念2️⃣ 优势和缺点3️⃣ 使用3.1 语法格式3.2 可选参数&#xff1a;jdeps -dotoutput < dir>3.3 可选参数&#xff1a;jdeps -s3.4 可选参数&#xff1a;jdeps -v3.5 可选参数&#xff1a;jdeps -cp < path>3.6 注意事项&#xff1…

【雕爷学编程】 MicroPython动手做(35)——体验小游戏2

知识点&#xff1a;什么是掌控板&#xff1f; 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片&#xff0c;支持WiFi和蓝牙双模通信&#xff0c;可作为物联网节点&#xff0c;实现物联网应用。同时掌控板上集成了OLED…

TensorRT学习笔记--基于TensorRT部署YoloV3, YoloV5和YoloV8

目录 1--完整项目 2--模型转换 3--编译项目 4--序列化模型 5--推理测试 1--完整项目 以下以 YoloV8 为例进行图片和视频的推理&#xff0c;完整项目地址如下&#xff1a;https://github.com/liujf69/TensorRT-Demo git clone https://github.com/liujf69/TensorRT-Demo.…

iPhone 8 Plus透明屏有哪些场景化应用?

iPhone 8 Plus是苹果公司于2017年推出的一款智能手机&#xff0c;它采用了全新的玻璃机身设计&#xff0c;使得手机更加美观和时尚。 而透明屏则是一种新型的屏幕技术&#xff0c;可以使手机屏幕呈现出透明的效果&#xff0c;给人一种科技感十足的视觉体验。 透明屏是通过使用…

Selenium Chrome Webdriver 如何获取 Youtube 悬停文本

导语 Youtube 是一个非常流行的视频分享平台&#xff0c;有时候我们可能想要爬取一些视频的信息&#xff0c;比如标题、播放量、点赞数等。但是有些信息并不是直接显示在网页上的&#xff0c;而是需要我们将鼠标悬停在某个元素上才能看到&#xff0c;比如视频的时长、上传时间…

Linux NUMA架构(非统一内存访问)

NUMA架构 NUMA Architecture| Non Uniform Memory Access Policy/Model | Numa Node Configuration (CPU Affinity) NUMA架构产生的原因 cpu的高速处理功能和内存存储直接的速度会严重影响cpu的性能。传统的计算机单核架构,cpu通过内存总线(内存访问控制器)直接连接到一…

Ubuntu安装harbor(http模式)并随便上传一个

Ubuntu安装harbor&#xff08;http模式&#xff09; docker和harbor的介绍就免了&#xff0c;都不知道啥东西&#xff0c;还安装搞毛 先安装docker环境 不要问&#xff0c;软件源之类的配置&#xff0c;挨个梭就行 sudo apt update sudo apt install apt-transport-https ca…

【Spring Cloud 三】Eureka服务注册与服务发现

系列文章目录 【Spring Cloud一】微服务基本知识 Eureka服务注册与服务发现 系列文章目录前言一、什么是Eureka&#xff1f;二、为什么要有服务注册发现中心&#xff1f;三、Eureka的特性四、搭建Eureka单机版4.1Eureka服务端项目代码pom文件配置文件启动类启动项目查看效果 E…

uni-app选择器( uni-data-picker)选择任意级别

背景说明 uni-app 官方的插件市场有数据驱动选择器&#xff0c;可以用作多级分类的场景。引入插件后&#xff0c;发现做不到只选择年级&#xff0c;不选择班级&#xff08;似乎&#xff0c;只能到最后子节点了&#xff09;。 需求中&#xff0c;有可能选择的不是叶子。比如&a…
最新文章