机器学习的第一节基本概念的相关学习

news2024/12/23 6:31:33

目录

1.1 决策树的概念

1.2 KNN的概念

1.2.1KNN的基本原理

1.2.2 流程:

1.2.3 优缺点

1.3 深度学习

1.4 梯度下降

损失函数

1.5 特征与特征选择

特征选择的目的

1.6 python中dot函数总结

一维数组的点积:

二维数组(矩阵)的乘法:

多维数组的乘法:


1.1 决策树的概念


        决策树(decision tree)是一种基本的分类与回归方法。决策树模型呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程。它可以认为是if-then规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分布。

        决策树是一种描述对实例进行分类的树形结构,其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果,本质是一颗由多个判断节点组成的树。分类决策树模型是一种树形结构。 决策树由结点和有向边组成。结点有两种类型:内部结点和叶节点。内部结点表示一个特征或属性,叶节点表示一个类。

1.2

1.2 KNN的概念

 K-NearestNeighbor简称KNN,中文名K最近邻,其作用通俗来说就是将数据集合中每一个样本进行分类的方法,机器学习常用算法之一,属于有监督分类算法。

1.2.1KNN的基本原理

如果一个样本在特征空间中的K个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。   

简单理解就是:   简单来说就是设定k值,取样本点范围最近的k个点,其中哪类数量最多则预测的点就为那一类

1.2.2 流程:


1) 计算已知类别数据集中的点与当前点之间的距离
2) 按距离递增次序排序
3) 选取与当前点距离最小的k个点
4) 统计前k个点所在的类别出现的频率
5) 返回前k个点出现频率最高的类别作为当前点的预测分类

  1、K值的选定

        通过交叉验证(将样本数据按照一定比例,拆分出训练用的数据和验证用的数据,比如6:4拆分出部分训练数据和验证数据),从选取一个较小的 K 值开始,不断增加 K 的值,然后计算验证集合的方差,最终找到一个比较合适的 K 值。

1.2.3 优缺点


优点:
1、简单易用,对异常值不敏感
2、重新训练代价低
3、算法复杂度低
4、适合类域交叉样本
5、适用大样本自动分类

特点:非参数的,惰性的算法模型即:不会对数据做出任何假设,而线性回归总会假设一条直线,惰性的意思是没有明确的训练数据过程,或者过程很短不像逻辑回归需要先对数据进行大量的训练

缺点:
1、对内存要求较高
2、类别分类不标准化
3、输出可解释性不强
4、不均衡性
5、计算量较大 
6、惰性学习,预测阶段可能会慢,对不相关的功能和数据规模敏感
 

1.3 深度学习

深度学习是在机器学习之后=要学习的课程,要知道深度学习和神经网络有关系,比如说那个下棋的机器人就用到了神经网络。

  1. 深度学习是机器学习的一个分支(最重要的分支)
  2. 机器学习是人工智能的一个分支

深度学习的概念源于人工神经网络的研究,但是并不完全等于传统神经网络。

不过在叫法上,很多深度学习算法中都会包含"神经网络"这个词,比如:卷积神经网络、循环神经网络。

所以,深度学习可以说是在传统神经网络基础上的升级,约等于神经网络。

1.4 梯度下降

在生活中,我们可以通过一个简单的例子来说明梯度下降的概念。
假设你是一位学生,每天早上需要赶去上学。你发现离学校的距离与你起床的时间之间存在着某种关系。你想找到一个起床时间,使得你花费的时间最短,也就是找到最优的起床时间。
你开始进行实验,每天记录自己起床的时间和到达学校所需的时间。你建立了一个简单的模型,假设到达学校的时间与起床时间之间存在线性关系,即到达学校的时间等于起床时间乘以一个参数k,再加上一个常数b,即到达学校的时间等于k * 起床时间 + b。
现在的问题是,如何通过梯度下降算法来找到最优的起床时间,使得到达学校的时间最短。
首先,你需要收集一些数据,包括起床时间和到达学校的时间。假设你收集了一周的数据。
然后,你需要定义一个损失函数,用于衡量到达学校时间与实际记录之间的差距。可以选择均方误差作为损失函数,即将每天的差距平方后求和再除以天数。
接下来,你随机初始化起床时间参数k和常数b的值。
然后,通过梯度下降算法进行迭代更新。根据梯度下降算法的原理,你需要计算损失函数对于起床时间参数k和常数b的偏导数,并根据学习率进行参数的更新。
在每次迭代中,你将根据实际数据计算损失函数,并通过梯度下降算法不断调整起床时间的参数k和常数b,使得损失函数逐渐减小,直到收敛到一个最优解。
最后,当损失函数收敛到一个较小的值时,你就找到了最优的起床时间,使得到达学校的时间最短。
通过这个例子,你可以理解梯度下降算法在寻找最优解的过程中的应用。在生活中,我们可以通过这种迭代、优化的方式来改进自己的决策和行为,以获得更好的结果。

损失函数

在机器学习和优化问题中,损失函数(Loss Function)是用来衡量模型预测值与真实值之间的差距或误差的函数。它是模型训练中的关键组成部分,用于评估模型的性能并指导参数的优化。

1.5 特征与特征选择

在机器学习中,将属性称为“特征(Feature)”,对当前学习任务有用的属性称为“相关特征(Relevant Feature)”,没有什么用的属性称为“无关特征(Irrelevant Feature)”。从给定的特征集合中选择出相关特征子集的过程,称为“特征选择(Feature Selection)”

特征选择是一个重要的数据预处理过程。在现在的机器学习中,获得数据之后通常先进行特征选择,此后再训练学习器。

特征选择过程必须确保不丢失重要特征,否则后续学习过程会因为重要信息的缺失而无法获得好的性能。给定数据集,若学习任务不同,则相关特征很可能不同。

另外,有一类特征称为“冗余特征(Redundant Feature)”,它们所包含的信息能从其它特征中推演出来。那么,去除冗余特征会减轻学习过程的负担。

特征选择的目的


在机器学习的实际应用中,特征数量往往较多,其中可能存在不相关的特征,特征之间也可能存在相互依赖,容易导致如下的后果:

特征个数越多,分析特征、训练模型所需的时间就越长。
特征个数越多,容易引起“维度灾难”,模型也会越复杂,其推广能力会下降。
特征选择能剔除不相关(irrelevant)或冗余(redundant )的特征,从而达到减少特征个数,提高模型精确度,减少运行时间的目的。另一方面,选取出真正相关的特征简化了模型,使研究人员易于理解数据产生的过程。

特征选择主要有两个目的:

减少特征数量、降维,避免维度灾难,这样能使模型泛化能力更强,减少过拟合,缩短模型训练时间。
增强对特征和特征值之间的理解

两个特征的时候还有图像,三个特征的时候就没有图像了,是一个面,四个特征得靠推导

降维就是降特征

1.6 python中dot函数总结

在NumPy中,dot函数用于计算两个数组的点积(内积)或矩阵乘法。dot函数的用法有一些细微的差别,取决于输入的数组是一维数组、二维数组(矩阵)还是多维数组。

一维数组的点积:

在这个例子中,dot函数计算了两个一维数组a和b的点积,即14 + 25 + 3*6 = 32。

二维数组(矩阵)的乘法:

在这个例子中,dot函数计算了两个二维数组(矩阵)A和B的矩阵乘法

多维数组的乘法:

  1. 在这个例子中,dot函数计算了两个三维数组的乘法。

需要注意的是,dot函数在进行矩阵乘法时,要求第一个数组的列数与第二个数组的行数相等

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

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

相关文章

结构体对齐原理及在STM32中的设计原则和实现

在嵌入式系统开发中,结构体作为一种常见的数据组织方式,在内存中的布局方式对于程序性能和内存占用具有重要影响。本文将深入探讨单片机C语言中的结构体对齐原理、重要性以及不同的对齐方式,并通过示例演示结构体对齐如何影响内存占用、访问性…

SpringBoot:一个注解就能帮你下载任意对象

一 前言 下载功能应该是比较常见的功能了,虽然一个项目里面可能出现的不多,但是基本上每个项目都会有,而且有些下载功能其实还是比较繁杂的,倒不是难,而是麻烦。 如果我说现在只需要一个注解就能帮你下载任意的对象&…

纪念我的第一个稍微有用一点的python代码的成功——利用最近邻插值法实现图像的放大

一、技术来源: 插值算法 | 最近邻插值法_哔哩哔哩_bilibili 感谢这位的技术分享,讲解得通俗易懂 二、一些磕磕绊绊: 1.首先,pycharm的使用,通过file创建一个新的项目(最好可以记住文件路径&am…

Java9-17新特性

文章目录 一、简介二、新特性接口私有方法(JDK9)String存储结构的变化(JDK9)快速创建只读集合(JDK9、10)文本块(JDK13、14、15)更直观的 NullPointerException 提示(JDK1…

exe软件监控看门狗使用说明

作为物联网数据采集解决方案专业提供商,数采物联网 小编daq-iot在这里做以下内容介绍,并诚挚的欢迎大家讨论和交流。 1.软件概述 本软件功能用途:监控电脑或服务器exe程序运行,在exe程序由于异常或其他原因退出后,自动启动exe程序&#xff0…

goroutine的一点东西

前面的两篇,从相对比较简单的锁的内容入手(也是干货满满),开始了go的系列。这篇开始,进入更核心的内容。我们知道,go应该是第一门在语言层面支持协程的编程语言(可能是我孤陋寡闻),goroutine也完全算的上是go的门面。g…

文件属性查看和修改学习

这个是链接,相当于快捷方式,指向usr/bin这个目录,链接到这个目录

NRF52832一主多从ble_app_multilink_central

下载官方SDK后打开路径:nRF5SDK153059ac345\nRF5_SDK_15.3.0_59ac345\examples\ble_central\ble_app_multilink_central\pca10040\s132\arm5_no_packs 下的工程文件,确定把log开启 编译后下载完程序(要下载协议栈,这里用6.1.1的)&#xff0c…

FPGA原理与结构——时钟IP核原理学习

一、前言 在之前的文章中,我们介绍了FPGA的时钟结构 FPGA原理与结构——时钟资源https://blog.csdn.net/apple_53311083/article/details/132307564?spm1001.2014.3001.5502 在本文中我们将学习xilinx系列的FPGA所提供的时钟IP核,来帮助我们进一…

实现带头双向循环链表

🌈带头双向循环链表 描述:一个节点内包含两个指针,一个指向上一个节点,另一个指向下一个节点。哨兵位指向的下一个节点为头节点,哨兵位的上一个指向尾节点。 结构优势:高效率找尾节点;高效率插入…

RabbitMQ工作模式-主题模式

主题模式 官方文档参考:https://www.rabbitmq.com/tutorials/tutorial-five-python.html 使用topic类型的交换器,队列绑定到交换器、bingingKey时使用通配符,交换器将消息路由转发到具体队列时,会根据消息routingKey模糊匹配&am…

[学习笔记] fhq Treap 平衡树

fhq Treap 也叫无旋Treap (好像?我也不知道) 反正我带旋 Treap 是不会滴,其他的平衡树也不会(但是会平板电视) fhq Treap 好写,码量小,缺点是常数比较大 定义 二叉搜索树 二叉搜…

为什么说模电难学?因为它至少是这27个基础知识的排列组合!

1、基尔1、基尔霍夫定理的内容是什么? 基尔霍夫电流定律:在电路任一节点,流入、流出该节点电流的代数和为零。 基尔霍夫电压定律:在电路中的任一闭合电路,电压的代数和为零。 2、戴维南定理 一个含独立源、线性电阻…

在抖音开店卖货的流程是什么?最全解答如下,建议新手认真看完!

我是王路飞。 同样是在抖音卖货,为何如今大多数人都是选择在抖音开店,而不再是选择做账号、开直播了呢? 原因很简单,因为门槛和变现方式。 相比短视频和直播带货的起号、变现难度越来越大,低门槛的抖音小店显然更适…

Origin热图的做法

1.数据准备 2.绘制-选择带标签热图 3.图表调整 右边标签- 下方标签-复制格式,再到左边或者右边选择 粘贴所有 图中的标签及颜色 直接双击在属性框更改 主框的其他特征在属性框选择 色阶的控制 直接选择色阶的属性框

Endnote中查看一个文献的分组的具体方法——以Endnote X8为例

Endnote中查看一个文献的分组的具体方法——以Endnote X8为例 一、问题 当Endnote中使用分类方法对文献进行分组管理后,有时需要重新调整该文献的分组,则需要找到这个文献在哪个分组中。本文阐述怎样寻找一个文献的分组的位置信息。 二、解决方法 1.选…

Spooling的原理

脱机技术 程序猿先用纸带机把自己的程序数据输入到磁带中,这个输入的过程是由一台专门的外围控制机实现的。之后CPU直接从快速的磁带中读取想要的这些输入数据。输出也类似。 假脱机技术(Spooling技术) 即用软件的方式来模拟脱机技术。要…

Kubernetes技术--k8s核心技术Controller控制器

1.Controller概述 Controller是在集群上管理和运行容器的对象。是一个实际存在的对象。 2.pod和Controller之间的关系 pod通过controller实现应用的运维,包括伸缩、滚动升级等操作。 这里pod和controller通过label标签来建立关系。如下所示: 3.Deployment控制器应用场景 -1:…

RabbitMQ工作模式-发布订阅模式

Publish/Subscribe(发布订阅模式) 官方文档: https://www.rabbitmq.com/tutorials/tutorial-three-python.html 使用fanout类型类型的交换器,routingKey忽略。每个消费者定义生成一个队列关绑定到同一个Exchange,每个…

win10底部任务栏开机后长时间未响应的解决办法

https://blog.csdn.net/hj960511/article/details/128746025?share_tokenAA088876-4477-44B8-B978-5C7C7726D552&tt_fromcopy_link&utm_sourcecopy_link&utm_mediumtoutiao_ios&utm_campaignclient_share win10底部任务栏开机后长时间未响应的解决办法-CSDN博…