机器学习概要

news2025/3/20 5:22:35

文章目录

一、什么是机器学习

二、机器学习的种类

1. 有监督学习

2. 无监督学习

3.强化学习

三、机器学习的应用

四、机器学习的步骤

1. 数据的重要性

2. 数据和学习的种类

3. 可视化


一、什么是机器学习

机器学习指的是计算机根据给定的问题、课题或环境进行学习,并利用学习结果解决问题或课题等的一整套机制。

与机器学习共同成为热门话题的还有人工智能和深度学习。这里梳理一下它们之间的关系。 人工智能的含义很广泛,是一个综合性系统。机器学习是实现人工智能的一种方法。也就是说,机器学习并非实现人工智能的唯一方法,但是近年来人工智能的研究一般使用机器学习。实现人工智能的方法还有很多,比如根据事先定好的规则进行数理统计预测等方法。


近年来,一种被称为深度学习的机器学习算法备受关注,以至于出现了这样的误解:提起人工智能,人们想到的就是深度学习。然而,深度学习只不过是机器学习算法的其中一种而已。深度学习在图像识别领域取得了划时代的成果,是当前热门的算法。目前在图像识别领域之外,深度学习也取得了许多成绩。


在进行机器学习时会用到各种各样的算法,需要根据机器学习对象的不同进行选择。本系列文章的目标就是帮助读者学会选择合适的算法。在理解了各算法的特性后,读者就能实际处理机器学习问题了。

二、机器学习的种类

机器学习包含不同的种类。根据不同的输入数据,分类如下:
1. 有监督学习
2. 无监督学习
3. 强化学习

1. 有监督学习

有监督学习是将问题的答案告知计算机,使计算机进行学习并给出机器学习模型的方法。这种方法要求数据中包含表示特征的数据和作为答案的目标数据。如图所示,已有表示特征的身高和体重数据,作为答案的数据是性别(男/女)。我们向计算机提供这些数据的组合,使计算机进行学习并给出预测模型。然后,将新的身高和体重数据提供给模型,由模型预测出性别。

预测性别这样的类别的问题叫作分类问题。由于这次是将数据分类到两个类别中,所以叫二元分类;还有将数据分类到更多类别,比如10个类别的情况,这样的情况叫作多元分类。这种答案变量不是连续值,而是作为类别数据的离散值的问题就是分类问题。

此外,表示特征的数据叫作特征值或者特征变量,作为答案的数据叫作目标变量或者标签。我们身边的一个分类问题的例子就是垃圾邮件过滤。用户判断邮件是否为垃圾邮件的过程就是打标签的过程,标签数据就是目标变量,邮件的发件人和内容则为特征值。打了标签的数据越多,机器学习的效果就越好,得到的结果的精度越高。

除了分类问题之外,有监督学习还包括回归问题。如图所示,已有表示特征的性别和身高数据,以及答案数据——鞋的尺码。在分类问题中,男和女的标签分别被数值化为0和1,这两个数值之间的大小关系是没有意义的。与之相对,鞋的尺码26.5 cm和24 cm之间的大小关系则是有意义的。对这样的数据进行预测的问题就是回归问题。在回归问题中,目标变量是作为连续值处理的,所以预测值有可能是23.7 cm这种不存在的尺码。

2. 无监督学习

有监督学习是将特征值和目标变量(答案)作为一套数据进行学习的方法,而无监督学习的数据中没有作为答案的目标变量。


没有答案,该如何去学习呢?无监督学习将表示特征的数据作为输入,通过将数据变形为其他形式或者找出数据中的部分集合,来理解输入数据的构造。此外,与有监督学习相比,无监督学习的结果难以解释,或者要求分析者基于经验加以主观的解释。有监督学习以“能否正确预测目标变量”为指标,相比之下,为了能够对结果进行解释,在进行无监督学习时,用户需要对输入数据的前提知识有一定程度的了解。

这里举一个无监督学习的例子。我们思考一下对某个中学的学生成绩进行分析的场景。假设各科目之间存在着这样的关联性:擅长数学的学生也擅长理科,但不擅长语文和文科。对于这样的输入数据,在使用无监督学习的代表性算法主成分分析(Principal Component Analysis,PCA)时,我们引入了新的轴,以说明被称为第一主成分的数据。在第一主成分上的坐标可以解释为“小值表明该生擅长理科,大值表明该生擅长文科”,如表所示,可以将数学、理科、语文、文科这4个特征值归纳在1个轴上加以展示。

这个例子使用PCA通俗易懂地解释了分析结果,但是需要根据输入数据选择合适的算法。近年来,无监督学习的研究在图像和自然语言处理方面取得了进展,是当前备受瞩目的领域。这里介绍的PCA属于降维算法。降维是以更少的特征值来理解数据的算法。无监督学习中也包括聚类算法。聚类是将数据分类为几个簇(相似数据的集合)的算法。人类很难直接理解多变量数据(由3个以上的变量构成的数据),通过聚类,数据能够以簇这种简单的形式进行展现。

3.强化学习

强化学习是以在某个环境下行动的智能体获得的奖励最大化为目标而进行学习的方法。


比如说:在主机游戏(环境)中,玩家(智能体)为了获得赛点(奖励)并取得最终的胜利,会无数次地重复尝试。我们也可以把强化学习看作有监督学习的目标变量被作为奖励提供的情况。拿主机游戏的例子来说,由于全部场景下所有操作的组合实在太多,很难通过人力进行评估,所以可以将游戏的场景和操作作为特征值,将游戏赛点作为目标变量,玩家无须依赖人力,通过无数次的游戏即可自行收集特征值和目标变量的数据组。强化学习在重复地玩游戏、查看结果中不断学习更恰当的行动。

三、机器学习的应用

机器学习在各领域的应用都取得了较大进展,比如自动驾驶领域的研究就很有名。在文章的自动分类和自动翻译方面,机器学习成果颇丰。在医疗领域,机器学习对X射线影像的分析有助于疾病的早期发现。此外,很早之前人们就将机器学习应用在气象信息领域了。

近年来,随着计算机越来越便宜,数量越来越多,机器学习的研究也在不断加速。互联网产业的发达和物联网(Internet of Things,IoT)等技术的应用也为机器学习带来了丰富的数据。 根据数据的特性选择合适的算法,就会有前所未有的发现,这是机器学习领域有意思的地方。

四、机器学习的步骤

1. 数据的重要性

在使用机器学习时,必须要有汇总并整理到一定程度的数据。以数据为基础,按规定的法则进行学习,最终才能进行预测。
没有数据,就不能进行机器学习。换言之,收集数据是首先要做的事情。
本系列文章使用的是主流机器学习库scikit-learn包内置的数据,这个数据便于入手,可自由使用。

在实际用机器学习解决问题之前,要先收集数据,有时还需要做问卷调查,甚至购买数据。然后,需要为收集到的数据人工标注答案标签,或者将其加工为机器学习算法易于处理的形式,删除无用的数据,加入从别的数据源获得的数据等。另外,基于平均值和数据分布等统计观点查看数据,或者使用各种图表对数据进行可视化,把握数据的整体情况也很重要。此外,有时还需要对数据进行正则化处理。这些操作被称为数据预处理。有这样一种说法:机器学习工作80%以上的时间花在了数据预处理上。

scikit-learn 是一个机器学习库,包含了各种用于机器学习的工具。这个库以BSD许可证开源,谁都可以免费、自由地使用。scikit-learn 实现了许多有监督学习和无监督学习的算法,是一套包含了用于评估的工具、方便的函数、示例数据集等的工具套件。在机器学习领域,scikit-learn已成为事实上的标准库,它具有两大优点:一是操作方法统一;二是易于在Python中使用。

2. 数据和学习的种类

机器学习需要的是二维的表格形式的数据(根据解决问题的目的不同,存在例外的情况)。表格的列中含有表示数据本身特征的多种信息,行则是由多个信息构成的数据集。接下来,看一 个更具体的例子:学校的某个社团有4名学生,下面的表是每个学生的姓名、身高、体重、出生日期和性别信息的数据。

思考一下用机器学习进行性别预测的问题。
因为要预测的是性别,所以性别列的男或女的数据就是预测对象。把预测对象的数据称为目标变量。不过,根据分类的场景的不同,有时也称为标签或类别标签数据,英文单词为target。除了性别之外的4个列(姓名、身高、体重、出生日期)是用于预测的原始数据。将用于预测的原始数据称为特征值,根据场景的不同,有时也称为特征变量或输入变量,英文单词为feature。

3. 可视化

使用常用的Python可视化工具Matplotlib。Matplotlib具有许多可视化功能。在可视化时,为了使图形美观,需要编写多行Python代码来设置坐标轴、标签、布局和配色等。代码行数的增加容易让人觉得晦涩难懂,但其实用于输出图形的重要部分的代码只有寥寥几行。
在使用Matplotlib实现可视化后,我们就能很容易地把握数据的偏差和特征等信息,所以要掌握它的用法。
Python 的可视化工具不只有Matplotlib,还有以下几种。
pandas 是处理数组数据的库,也具有可视化功能。
seaborn 在 Matplotlib 的基础上强化了表现力,用起来更简单。
Bokeh 使用了JavaScript,可用于显示动态图形。

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

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

相关文章

【LangChain入门 2 Model组件】开始!LLM Models简单对话

文章目录 一、使用langchain_ollama二、采用DeepSeek的API三、Model 介绍3.1 OllamaLLM 预训练模型3.2 ChatOllama 聊天预训练模型3.3 OllamaEmbeddings 实现一个helloworld,跑通一个简单的对话。 后面章节会正式介绍LangChain的各个功能。 后台llm的端口可以任意选…

C++20 中线程管理与取消机制的深度剖析

文章目录 std::jthread:更智能的线程管理背景与优势构造函数与 std::stop_token 的集成 std::stop_token、std::stop_source 和 std::stop_callback:灵活的取消机制std::stop_token:取消请求的指示器std::stop_source:取消请求的发…

Vue3 核心特性解析:Suspense 与 Teleport 原理深度剖析

Vue3 核心特性解析:Suspense 与 Teleport 原理深度剖析 一、Teleport:突破组件层级的时空传送 1.1 实现原理图解 #mermaid-svg-75dTmiektg1XNS13 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-s…

FPGA——实现LED流水灯

文章目录 一、Quartusll_18.1和VS Code软件的关联二、DE2-115的时钟电路三、流水灯的分层次设计四、总结 一、Quartusll_18.1和VS Code软件的关联 1.先打开Quartus II 软件,然后选择菜单栏“Tools”下的“Options…”。 2.点击“Options…”,在弹出的对…

Excel 小黑第12套

对应大猫13 涉及金额修改 -数字组 -修改会计专用 VLOOKUP函数使用(查找目标,查找范围(F4 绝对引用),返回值的所在列数,精确查找或模糊查找)双击填充柄就会显示所有值 这个逗号要中文的不能英…

滚动元素的新api

点击的时候需要双重视图滚动 itemClick(id) {// 滚动到对应位置this.$nextTick(() > {// 找到对应 id 在 initList2 中的索引const index this.initList2.findIndex((item) > item.id Number(id));if (index ! -1) {// 获取所有菜单项const menuItems document.queryS…

多机调度问题(C语言)

代码如下&#xff1a; #include<stdio.h> #include<stdlib.h>int compare(void* a, void* b)//比较函数&#xff0c;用于qsort按处理时间从大到小排序 {return *(int*)a - *(int*)b; }int LPT(int jobs[], int n, int m)//多机调度问题的LPT算法 {qsort(jobs, n, …

烽火HG680-KB_海思HI3798MV310_安卓9.0_U盘强刷固件包及注意点说明

之前发布过这个固件包&#xff0c;关于烽火HG680-KA&#xff0f;HG680-KB_海思HI3798MV310_安卓9.0_U盘强刷固件包详细说明一下&#xff0c;汇总总结一些常遇到的情况&#xff0c;这次固件会分开发布&#xff0c;以免混淆。 上一个帖子地址&#xff1a;烽火HG680-KA&#xff0…

996引擎 - 红点系统

996引擎 - 红点系统 总结NPC 红点(TXT红点)Lua 红点1. Red_Point.lua2. UI_Ex.lua参考资料以下内容是在三端 lua 环境下测试的 总结 红点系统分几个部分组成。 M2中设置变量推送。 配置红点表。 Envir\Data\cfg_redpoint.xls 2.1. UI元素中找到ID填写 ids 列。 主界面挂载…

3.17BUUCTF练习day1

BUUCTF练习day1 [极客大挑战 2019]EasySQL1&#xff08;字符型&#xff0c;账号密码型&#xff0c;get型&#xff09; 判断闭合方式 在用户名输入1‘&#xff0c;此时密码先输入任何数字时&#xff0c;出现语法错误 说明闭合方式为单引号闭合&#xff0c;在判断完闭合方式后…

【贪心算法】柠檬水找零

1.题目解析 860. 柠檬水找零 - 力扣&#xff08;LeetCode&#xff09; 2.讲解算法原理 分情况讨论 5---》直接收下 10---》找五元&#xff0c;收下 20----》105△ ----》555 由于5元更有用&#xff0c;则尽可能保留5元 3.代码 class Solution {public boolean lemonadeCh…

黑马跟学.苍穹外卖.Day08

黑马跟学.苍穹外卖.Day08 苍穹外卖-day8课程内容1. 工作台1.1 需求分析和设计1.1.1 产品原型1.1.2 接口设计 1.2 代码导入1.2.1 Controller层1.2.2 Service层接口1.2.3 Service层实现类1.2.4 Mapper层 1.3 功能测试1.3.1 接口文档测试1.3.2 前后端联调测试 1.4 代码提交 2. Ap…

ABAP语言的动态编程(4) - 综合案例:管理费用明细表

本篇来实现一个综合案例&#xff1a;管理费用明细表。报表在实际项目中&#xff0c;也有一定的参考意义&#xff0c;一方面展示类似的报表&#xff0c;比如管理费用、研发费用等费用的明细&#xff0c;使用业务比较习惯的展示格式&#xff1b;另一方面正好综合运用前面学习的动…

通过Geopandas进行地理空间数据可视化

目录 引言 安装与导入 数据加载与探索 数据预处理 基本地图可视化 添加其他数据到地图上 空间分析与查询 地图叠加与分组 空间缓冲区 交互式地图可视化 实际应用案例 城市规划 环境监测 结论 引言 在数据科学领域,地理空间数据可视化扮演着至关重要的角色。它不…

在Vue3中使用Echarts的示例

1.常用-引用ts文件方式 1.1 导出ts文件-一个简单的柱状图 export const baseBarChart (xdata: string[], data: number[][], legendData: string[]) > {if (data.length 0) {return noData;}// 定义颜色数组const color [#00CCCC,#FF9900,#1677DC,#FF6666,#B366FF,#666…

GHCTF web方向题解

upload?SSTI! import os import refrom flask import Flask, request, jsonify,render_template_string,send_from_directory, abort,redirect from werkzeug.utils import secure_filename import os from werkzeug.utils import secure_filenameapp Flask(__name__)# 配置…

Logic-RL:小参数qwen模型复现DeepSeek R1 zero

最近很多参照DeepSeek模型训练推理模型的工作,本文将深入 “Logic-RL: Unleashing LLM Reasoning with Rule-Based Reinforcement Learning” 的论文,该论文提出了一种Rule-Based Reinforcement Learning, Logic-RL框架,旨在提升 LLM 的逻辑推理能力,在qwen2.5-7b-instruct…

CVE-2017-5645(使用 docker 搭建)

介绍: 是一个与 Apache Log4j2 相关的安全漏洞,属于远程代码执行,它可能允许攻击者通过构造恶意的日志信息 在目标系统上执行任意代码 Log4j2 介绍 Log4j2 是 Apache 的一个日志记录工具,属于 Java 应用的日志框架,它是 Log4j 的升级版,性能更好,功能更多.它被广泛的适用于 J…

蓝桥杯备考:特殊01背包问题——》集合subset

我们划分成两个集合&#xff0c;实际上我们只需要看一部分就行了&#xff0c;也就是从集合的所有元素里挑出恰好满足集合总和的一半儿&#xff0c;当然&#xff0c;如果我们的集合总和是奇数的话&#xff0c;我们是无论如何也挑不出刚好一半儿的&#xff0c;因为我们没有小数&a…

C#设计模式Demo——MVC

设计模式Demo——MVC 1.View1.1页面示例1.2View代码1.3修改界面以及代码 2.Model3.Controller4.数据结构5.枚举类型6.工具类6.1缓存信息6.2扩展类. 文件结构图 1.View 1.1页面示例 1.2View代码 using System; using System.Data; using System.Windows.Forms; using MVC模式…