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

目录

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.7  suffler   打乱

1.8 特征和标签

1.9 Python中  X.shape的含义及其使用


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函数在进行矩阵乘法时,要求第一个数组的列数与第二个数组的行数相等

1.7  suffler   打乱

在机器学习中,"shuffle"(洗牌)通常指的是随机打乱数据集中的样本顺序。这个操作在数据预处理阶段非常常见,特别是在训练模型之前。通过打乱数据集中的样本顺序,可以避免模型对样本的顺序产生依赖,从而更好地训练和泛化模型。

以下是为什么在机器学习中执行数据集洗牌的一些原因:

  1. 避免顺序偏差:如果数据集中的样本按照某种特定顺序排列,模型可能会因为学习到数据顺序中的规律,而不是真正的数据关系。通过洗牌,可以消除这种顺序偏差,确保模型不会因为数据的排列方式而受到影响。

  2. 提高泛化性能:如果模型在没有见过的数据上表现良好,称为具有良好的泛化性能。通过在训练过程中使用洗牌数据,模型可以学习到更广泛的数据分布,从而更有可能在未见过的数据上表现良好。

  3. 减少过拟合:过拟合是指模型在训练数据上表现得很好,但在新数据上表现不佳。通过在训练数据上引入随机性,洗牌可以帮助减少模型对特定样本的过度学习,从而减轻过拟合问题。

在 Python 中,你可以使用不同的库来实现数据集的洗牌,例如在 sklearn.utils 模块中的 shuffle 函数,或者直接使用 NumPy 库的随机抽样函数。下面是一个使用 sklearn.utils.shuffle 的示例:

这里,X 是特征矩阵,y 是标签向量。通过调用 shuffle 函数,你可以随机打乱特征矩阵和标签向量的对应关系,确保它们的顺序是随机的。

1.8 特征和标签

在机器学习中,特征(Features)和标签(Labels)是用于训练和评估模型的两个关键概念。它们通常用于监督学习任务,如分类和回归。

1.特征(Features):
特征是指用来描述每个样本的属性或输入变量。在一个机器学习问题中,一个样本可以由多个特征组成。特征可以是任何能够表示样本属性的数据,例如数字、文本、图像等。在训练模型时,模型会根据特征的不同值来学习样本之间的模式和关系。
举例来说,考虑一个房价预测的问题。每个房子可以有多个特征,如房子的面积、卧室数量、浴室数量、地理位置等。在这种情况下,特征就是用来描述房子的各种属性。
2.标签(Labels):
标签是指机器学习问题中的目标变量或输出变量,它表示我们希望模型预测或分类的内容。标签通常是我们要预测的值或类别。在监督学习中,我们为每个样本提供相应的标签,以便模型可以通过学习特征和标签之间的关系来进行预测。
沿着房价预测的例子,标签就是房子的实际销售价格。我们的目标是通过给定的特征(如面积、卧室数量等)来预测房价。

在训练模型时,我们将一组包含特征和相应标签的数据样本输入给模型。模型使用这些样本来学习特征和标签之间的关系,从而能够在未见过的样本上进行预测或分类。通常,我们会将数据集划分为训练集和测试集,用训练集来训练模型,用测试集来评估模型的性能。
总结起来,特征是用来描述每个样本属性的数据,标签是我们要预测或分类的目标变量。在监督学习中,我们希望模型能够从特征学习到如何准确地预测或分类标签。

1.9 Python中  X.shape的含义及其使用

在 Python 中,.shape 是一个用于获取数组或矩阵维度信息的属性。它通常用于 NumPy 数组、Pandas 数据框等多维数据结构。

例如,假设你有一个 NumPy 数组 X,它表示一个数据集,你可以使用 X.shape 来获取该数据集的维度信息。返回的结果将是一个元组,其中包含了数组在各个维度上的大小。

在这个例子中,X 是一个2行3列的数组,所以 X.shape 返回的是 (2, 3),分别表示行数和列数。

同样,对于多维数组,比如一个三维的数组,.shape 会返回一个包含三个维度大小的元组,如 (2, 3, 4),表示一个2x3x4的三维数组。

怎样去取它的一个维度呢?

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

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

相关文章

深入了解Kubernetes(k8s):安装、使用和Java部署指南(持续更新中)

目录 Docker 和 k8s 简介1、kubernetes 组件及其联系1.1 Node1.2 Pod1.3 Service 2、安装docker3、单节点 kubernetes 和 KubeSphere 安装3.1 安装KubeKey3.2 安装 kubernetes 和 KubeSphere3.3 验证安装结果 4、集群版 kubernetes 和 KubeSphere 安装5、kubectl 常用命令6、资…

浅谈下cdn以及防盗链问题

目录 一、什么是cdn 二、使用cdn带来的好处 三、CDN工作原理 四、cdn使用场景 五、流媒体CDN之防盗链问题 一、什么是cdn CDN(Content Delivery Network)是一种分布式网络架构,用于提供高效的内容分发服务。CDN通过将内容缓存在离用户最…

Postgresql JSON对象和数组查询

文章目录 一. Postgresql 9.5以下版本1.1 简单查询(缺陷:数组必须指定下标,不推荐)1.1.1 模糊查询1.1.2 等值匹配1.1.3 时间搜索1.1.4 在列表1.1.5 包含 1.2 多层级JSONArray(推荐)1.2.1 模糊查询1.2.2 模糊查询 NOT1.2.3 等值匹配…

恢复数据的利器:易我数据恢复终身技术版v16.2.0.0

EaseUS Data Recovery Wizard为全球提供数据恢复方案,用于误删数据数据,电脑误删文件恢复,格式化硬盘数据恢复,手机U盘数据恢复等,RAID磁盘阵列数据恢复,分区丢失及其它未知原因丢失的数据恢复,简单易用轻松的搞定数据恢复。 特点描述 - 易我数据恢复中文便携版,无…

STM32f103入门(10)ADC模数转换器

ADC模数转换器 ADC简介AD单通道初始化代码编写第一步开启时钟第二步 RCCCLK分频 6分频 72M/612M第三步 配置GPIO 配置为AIN状态第四步,选择规则组的输入通道第五步 用结构体 初始化ADC第六步 对ADC进行校准编写获取电压函数初始化代码如下 Main函数编写 ADC简介 ADC…

植物根系基因组与数据分析

1.背景 这段内容主要是关于植物对干旱胁迫的反应,并介绍了生活在植物体内外以及根际的真菌和细菌的作用。然而,目前对这些真菌和细菌的稳定性了解甚少。作者通过调查微生物群落组成和微生物相关性的方法,对农业系统中真菌和细菌对干旱的抗性…

windows主机和Ubuntu虚拟机共享设置

参考文章 Ubuntu Linux 与主机共享文件夹 vim 修改文件出现错误 “ E45: ‘readonly’ option is set (add to override)“ vim退出时报错“E212: Cant open file for writing”的解决办法 VMware 安装后,安装Ubuntu 20.04一路顺利。 1,在VMware设置…

Qt应用开发(基础篇)——输入对话框 QInputDialog

一、前言 QInputDialog类继承于QDialog,是一个简单方便的对话框,用于从用户获取单个值。 对话框窗口 QDialog QInputDialog输入对话框带有一个文本标签、一个输入框和标准按钮。输入内容可以字符、数字和选项,文本标签用来告诉用户应该要输入…

LAMP介绍与配置

一.LAMP 1.1.LAMP架构的组成 CGI(通用网关接口)和FastCGI(快速公共网关接口)都是用于将Web服务器与后端应用程序(如PHP、Python等)进行交互的协议/接口。 特点 CGI FastCGI 运行方式 每个请求启动…

死信队列理解与使用

一、简介 在rabbitMQ中常用的交换机有三种,直连交换机、广播交换机、主题交换机; 直连交换机中队列与交换机需要约定好routingKey去进行绑定; 广播交换机并不需要routingKey绑定,只需队列与交换机绑定即可; 主题交换机最大的特…

​7.1 项目1 学生通讯录管理:文本文件增删改查(C++版本)(自顶向下设计+断点调试) (A)​

C自学精简教程 目录(必读) 作业目标: 这个作业中,你需要综合运用之前文章中的知识,来解决一个相对完整的应用程序。 作业描述: 1 在这个作业中你需要在文本文件中存储学生通讯录的信息,并在程序启动的时候加载这些…

python+requests实现接口自动化测试

这两天一直在找直接用python做接口自动化的方法,在网上也搜了一些博客参考,今天自己动手试了一下。 一、整体结构 上图是项目的目录结构,下面主要介绍下每个目录的作用。 Common:公共方法:主要放置公共的操作的类,比如数据库sql…

简单了解网络传输介质

目录 一、同轴电缆 二、双绞线 三、光纤 四、串口电缆 一、同轴电缆 10BASE前面的数字表示传输带宽为10M,由于带宽较低、现在已不再使用。 50Ω同轴电缆主要用来传送基带数字信号,因此也被称作为基带同轴电缆,在局域网中得到了广泛的应用…

Prompt GPT推荐社区

大家好,我是荷逸,这次给大家带来的是我日常学习Prompt社区推荐 Snack Prompt 访问地址:http://snackprompt.com Snack Prompt是一个采用的Prompts诱导填空式的社区,它提供了一种简单的prompt修改方式,你只需要输入关…

一款windows的终端神奇,类似mac的iTem2

终于找到了一款windows的终端神奇。类似mac的iTem2 来,上神器 cmder cmder是一款windows的命令行工具,就是我们的linux的终端,用起来和linux的命令一样。所以我们今天要做的是安装并配置cmder ![在这里插入图片描述](https://img-blog.csdni…

Python所有方向的学习路线图!!

学习路线图上面写的是某个方向建议学习和掌握的知识点汇总,举个例子,如果你要学习爬虫,那么你就去学Python爬虫学习路线图上面的知识点,这样学下来之后,你的知识体系是比较全面的,比起在网上找到什么就学什…

MATLAB中circshift函数转化为C语言

背景 有项目算法使用matlab中circshift函数进行运算,这里需要将转化为C语言,从而模拟算法运行,将算法移植到qt。 MATLAB中circshift简单介绍 circshift是循环移位函数。可以使用于数组和矩阵元素的循环移位。 当A是数组 Bcircshift(A,p);如果…

Axes3D绘制3d图不出图解决办法【Python】

运行下面一段代码​: import numpy as npimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3D#这里设函数为y3x2x_data [1.0,2.0,3.0]y_data [5.0,8.0,11.0]​def forward(x): return x * w b​def loss(x,y): y_pred forward(x) …

裸露土方智能识别算法 python

裸露土方智能识别算法通过opencvpython网络模型框架算法,裸露土方智能识别算法能够准确识别现场土堆的裸露情况,并对超过40%部分裸露的土堆进行抓拍预警。此次算法用到的Python是一种由Guido van Rossum开发的通用编程语言,它很快就变得非常流…

75 # koa 基本逻辑实现以及属性的扩展

准备工作 新建自己的 kaimo-koa 文件夹,结构如下: lib application.js:创建应用context.js:上下文request.js:koa 中自己实现的 request 的对象response.js:koa 中自己实现的 response 的对象 package.js…