当前位置: 首页 > news >正文

如何系统学习机器学习?

我不是计算机专业,第一次接触机器学习还是在研一的时候,当时是看到机器学习可以做号码识别,就觉得好厉害,想学这个。

首次了解到Python这门语言,知道了机器学习可以做什么后,就感觉打开了新世界一样。再后来也就开始学习Python、学习机器学习。

到现在也积累了一些经验,总结了一下分享给大家作学习参考。

机器学习基础信息

概念

我们人在面对一个新的问题的时候,会想到用我们已有经验总结出来对的规律解决这个问题。而机器学习要做的事情也差不多,在面对一个新问题的时候,机器从已有的历史数据总结出一个规律,套用在新问题上,进而解决这个问题。

机器学习和人学习的过程用下面这个图片表达:img

机器学习定义:“A computer program is said to learn from experience E with respect to some class of tasksT and performance measureP if its performance at tasks inT, as measured by P, improves with experience E ”

翻译过来是:“一个电脑程序要完成任务(T),如果电脑获取的关于T的经验(E)越多就表现(P)得越好,那么我们就可以说这个程序‘学习’了关于T的经验。”

简单理解为是机器学习从历史数据中提取规律(特征),总结训练出模型,并对新数据做出预测

机器学习与人工智能、深度学习的关系

三者之间的关系是逐层递减的,可以用下面这个图片来理解:

img

机器学习应用方向

机器学习的应用面很广,在我们的生活中已经有很多方面都有相关的应用。比如:**聊天机器人、人脸识别、垃圾邮箱拦截、语言翻译、计算机视觉、自然语言处理、数据挖掘**等方面。

除了这些应用,还有现在出现的各种大模型也多是基于机器学习框架生成的。例如现在火遍全球的大模型,OpenAI表示大模型使用了一种名为“利用人类反馈强化学习”(RLHF)的机器学习技术进行训练的。

大模型作为当前全球热门技术,会给我们的生活带什么样的影响?想要在这波红利中给自己带来更多收益,要学习哪些技能?推荐大家看看在线推出的**【程序员的AI大模型进阶之旅】公开课**,行业大佬带你了解最新技术,提升自己认知。这些公开课还推出两大福利:AI 大模型资料包;无需翻墙的好用AI工具名称和网址,帮助你快人一步。微信扫描下方二维码即可免费领取:

在这里插入图片描述

机器学习学习内容

机器学习三要素

三要素即为数据、模型、算法。三者贯穿机器学习整个过程,缺一不可。

机器学习是由数据驱动的,这些数据都是收集到的客观可量化数据;模型则是机器学习中采用什么样的模型或者说方法进行预测和拟合;算法可以理解为一个优化的过程,最终确定最优模型。

机器学习分类

机器学习可以分为监督学习、无监督学习、强化学习。

监督学习

通过有数据标签的数据进行训练,一般可以有回归和分类两类方式。
监督学习的算法主要有:线性回归、逻辑回归、支持向量机、决策树、随机森林、K-近邻、朴素贝叶斯、AdaBoost、梯度提升树、神经网络。
无监督学习

没有数据标签对的数据进行训练,这类方法的目标是找到数据集底层联系,有聚类和关联两类。
无监督学习的算法主要有:K-均值聚类、层次聚类、DBSCAN、主成分分析、独立成分分析、t-SNE。

强化学习

强化学习通过智能体与环境的交互和反馈,学习到最优的策略来最优化奖励。

强化学习的算法主要有:Q-学习、SARSA、深度Q网络、策略梯度方法、Actor-Critic 方法、Proximal Policy Optimization。

机器学习流程

在这里插入图片描述

1.收集数据

2.数据预处理:主要包括缺失值处理、异常值处理、重复值处理等。

3.训练模型:对经过预处理后的数据进行模型训练,结合自己的目的(分类、回归、聚类等)选择合适的训练方式。

4.模型评估:通过训练好的模型对数据测试集进行测试,通过评估指标来评价训练模型的好坏,一般评估指标有准确率、查准率、查全率、均方根误差、ROC 和 AUC等。

5.优化:这个也可以叫做调参过程,通过找到最好的参数可以让模型的性能提高一大截,有传统的手工调参、网格搜索、随机搜索、贝叶斯搜索等方法。

6.预测:最后一步,这是对新数据或新样本的推断或预测。

机器学习需要那些知识

学好机器学习需要有一定的数学基础和计算机编程基础。总结一下,学机器学习需要下面这几方面知识:

数学基础:机器学习中很多方面都设计到了数学知识,较好的数学知识可以在理解和应用机器学习中发挥积极的作用,一般包括线性代数、微积分、概率论和统计学等。

编程基础:这个是肯定的了,只有一定的编程基础,才能看得懂、用得了、写得好算法。现在常说的是Python,此外C++或java也可以。

了解数据结合和算法:算法涉及到了很多数据结构,如图、树、排序等,掌握这些数据结构和算法很重要。

基础机器学习算法知识:前文也说了机器学习中有很多算法,因此也需要掌握一些基础算法,例如支持向量机、神经网络、决策树、逻辑回归等。

此外还有一些知识也需要注意,比如**特征提取、模型评估及调优**等。

优质资源推荐

这儿我总结了很多优质资源,都是大家在学习机器学习的时候最常用的、效果最好的内容。

书籍

《机器学习》
在这里插入图片描述

又叫西瓜书,作者:周志华。这本书可以作为机器学习的入门读物。基本上涵盖了机器学习基础知识的方方面面。每章都附有习题并介绍了相关阅读材料,以便有兴趣的读者进一步钻研探索。

《统计学习方法》

在这里插入图片描述

作者:李航。这本书也是机器学习的入门级读物,本书机器学习原理的解释、公式的推导非常非常详尽。全面系统地介绍了统计学习的主要方法,现在有第二版,分为监督学习和无监督学习两个部分。

《机器学习实战》

在这里插入图片描述

作者:Peter Harrington。在看完前面两本书后,再跟着本书里的代码进行学习和实操,效果会更好。书中也精心编排了很多实例,从实例入手,更能帮助大家理解机器学习中的各种名词。

其他资源

吴恩达 deeplearning.ai
在这里插入图片描述

林轩田 机器学习基石
吴恩达机器学习课程是很多人的入门机器学习的第一堂课。,之前的课程时间有点久了,可以看看2022年出的新版。

在这里插入图片描述

这个也是很多同学在学校的时候经常看到基础入门课。

李宏毅 机器学习课程

在这里插入图片描述

大多数同学反应,李宏毅讲的课程相对于吴恩达更能接受一些。

各Python库的官方文档

TensorFlow:https://www.tensorflow.org/tutorials/

pytorch:Welcome to PyTorch Tutorials — PyTorch Tutorials 2.0.1+cu117 documentation

scikit-learn:https://scikit-learn.org/stable/index.html

numpy:https://numpy.org/

pandas:http://pandas.pydata.org/pandas-docs/stable/

matplotlib:https://matplotlib.org/stable/tutorials/index.html

以上就是本次的分享,最后提醒大家一下,想要学好机器学习最重要的还是要实践。通过遇见问题、发现问题、解决问题不断地提高自己的能力。

在这里插入图片描述

相关文章:

如何系统学习机器学习?

我不是计算机专业,第一次接触机器学习还是在研一的时候,当时是看到机器学习可以做号码识别,就觉得好厉害,想学这个。 首次了解到Python这门语言,知道了机器学习可以做什么后,就感觉打开了新世界一样。再后来…...

Qt:1.杂谈

1.前端开发和Qt: 前端开发可以分为网页开发、移动端开发、桌面应用开发。Qt这个技术,是来开发电脑桌面应用程序的,也就是客户端程序的开发。属于比较经典的前端开发体系下。客户端开发的任务:编写和用户交互的界面或者应用程序。大…...

AI视频模型Sora核心功能以及应用场景

随着人工智能技术的飞速发展,AI在视频处理和生成领域的应用正变得越来越广泛。Sora,作为新一代AI视频模型,展示了前所未有的潜力和创新能力。本文将深入探讨Sora的功能、应用场景以及它所带来的革命性变化。 一、Sora的核心功能 1.1 视频生…...

面试-细聊synchronized

1.线程安全问题的主要诱因: 存在多条共享数据(临界资源) 存在多条线程共同操作这些共享数据 解决问题的根本方法: 同一时刻有且仅有一个线程在操作共享数据,其他线程必须等到该线程处理完数据后在对共享数据进行操作。 2.synchroized锁 分…...

AI降重新突破:chatgpt降重工具在学术论文中的应用与效果

论文降重一直是困扰各界毕业生的“拦路虎”,还不容易熬过修改的苦,又要迎来降重的痛。 其实想要给论文降重达标,我有一些独家秘诀。话不多说直接上干货! 1、同义词改写(针对整段整句重复) 这是最靠谱也是…...

Spring学习02-[Spring容器核心技术IOC学习]

Spring容器核心技术IOC学习 什么是bean?如何配置bean?Component方式bean配合配置类的方式import导入方式 什么是bean? 被Spring管理的对象就是bean,和普通对象的区别就是里面bean对象里面的属性也被注入了。 如何配置bean? Component方式、bean配合配置类的方式、import…...

2024上海CDIE 参展预告 | 一站式云原生数字化平台已成趋势

为什么企业需要进行数字化转型?大家都在讨论的数字化转型面临哪些困境?2024.6.25-26 CDIE数字化创新博览会现场,展位【A18】,期待与您相遇,共同探讨企业如何利用数字化技术驱动业务增长。 一、展会介绍——CDIE数字化…...

高考专业组 07组 08组 武汉大学

武汉大学的招生都什么废物点心,搜个专业组都没官方解释! 07组:理学,详见下表专业代码07xxxx,例如数学、物理、化学 08组:工学,详见下表专业代码08xxxx,例如机械、电子信息、自动化、…...

解析JavaScript中逻辑运算符和||的返回值机制

本文主要内容:了解逻辑运算符 &&(逻辑与)和 ||(逻辑或)的返回值。 在JavaScript中,逻辑运算符 &&(逻辑与)和 ||(逻辑或)的返回值可能并不总…...

Java中的数据结构与算法探秘

Java中的数据结构与算法探秘 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 引言 数据结构与算法是计算机科学的基础,对于Java程序员来说&#x…...

AST反混淆实战|嵌套的赋值语句通用还原处理

关注它,不迷路。 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除! 1.混淆代码 下面的这段代码是来自px3验证码核心混淆代码: function _u…...

Unity的ScrollView滚动视图复用

发现问题 在游戏开发中有一个常见的需求,就是需要在屏幕显示多个(多达上百)显示item,然后用户用手指滚动视图可以选择需要查看的item。 现在的情况是在100个data的时候,Unity引擎是直接创建出对应的100个显示item。 …...

详解Spring AOP(二)

目录 1.切点表达式 1.1execution表达式 1.2 annotation 1.2.1自定义注解MyAspect 1.2.3添加自定义注解 2.Sping AOP原理 2.1代理模式 2.1.1静态代理 2.1.2动态代理 2.1.3JDK动态代理 2.1.4CGLIB动态代理 3.总结 承接上文:详解Spring AOP(一&…...

sql-analysis

文章目录 痛点: 1、无法提前发现慢sql,可能恶化为慢sql的语句 2、线上出现慢sql后,无法快速止损 后果:一般是以响应时间来发现慢sql,这时候已经对业务产生了一定影响,这时候就要改代码重新发布上线或者改数…...

后台管理台字典localStorage缓存删除

localStorage里存放了如以下dictItems_开头的字典数据,localStorage缓存是没有过期时间的,需要手动删除。同时localStorage里还存有其他不需要删除的数据。 这里的方案是遍历localStorage,利用正则和所有key进行匹配,匹配到dict…...

计算机毕业设计PySpark+Hadoop招聘推荐系统 招聘大数据 招聘数据分析 招聘可视化 大数据毕业设计 大数据毕设

1. 管理端: 带有职位的增删改查功能,评论功能是针对新闻模块的,类似新闻大数据的实现 2. 网站端: python / java 协同过滤推荐算法 / 下载职位数据表收费1元每条 / 账户充值 / 短信验证码修改密码 / 身份证识别 / 多条件搜索 3.…...

.Net预定义的泛型委托

我们每次要使用一个委托前&#xff0c;都需要自定义这个委托类型&#xff0c;声明其参数和返回值&#xff0c;然后才能实例化委托类型的对象、最后调用委托对象。 为了简化这个过程&#xff0c;.Net预定义了Func<T>委托、Action<T>委托类型和Predicate<T>&a…...

Unity的Excel转表工具

该Excel工具主要由Python语言完成&#xff0c;版本为3.x 主要功能&#xff1a; 1.转换后的数据存储结构为二进制。 2.excel文件可以选择多种数据类型&#xff1a;int、float、string、一维&#xff08;int、float、string&#xff09;、二维int、Map&#xff08;int/int、in…...

静态随机存储器(SRAM):高速缓存的奥秘

目录 基本的静态存储单元阵列 基本的SRAM逻辑结构 1. 概述 2. SRAM阵列 3. 行选择器&#xff08;Row Decoder&#xff09; 4. 列选择器&#xff08;Column Decoder&#xff09; 5. 读写电路 6. 控制电路 7. 工作过程 SRAM的读/写时序 SRAM 结构概述 读操作时序 读…...

Linux CentOS 7 服务器集群硬件常用查看命令

&#xff08;一&#xff09;查看内核&#xff1a;uname -a [rootcdh1 ~]# uname -a Linux cdh1.macro.com 3.10.0-1062.el7.x86_64 #1 SMP Wed Aug 7 18:08:02 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux&#xff08;二&#xff09;查看系统&#xff1a;cat /etc/redhat-releas…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业&#xff0c;项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升&#xff0c;传统的管理模式已经难以满足现代工程的需求。过去&#xff0c;许多企业依赖手工记录、口头沟通和分散的信息管理&#xff0c;导致效率低下、成本失控、风险频发。例如&#…...

HTML 列表、表格、表单

1 列表标签 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表。 例如&#xff1a; 1.1 无序列表 标签&#xff1a;ul 嵌套 li&#xff0c;ul是无序列表&#xff0c;li是列表条目。 注意事项&#xff1a; ul 标签里面只能包裹 li…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词

Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵&#xff0c;其中每行&#xff0c;每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid&#xff0c;其中有多少个 3 3 的 “幻方” 子矩阵&am…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...

【UE5 C++】通过文件对话框获取选择文件的路径

目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 &#xff0c;这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器&#xff0c;右键点击 .uproject 文件&#xff0c;选择 "Generate Visual Studio project files"&#xff0c;重…...