我是如何入门机器学习的呢

article/2025/8/25 2:39:47

https://mp.weixin.qq.com/s/eFXb2swj07Ywld9pDop3hQ

 

机器学习在很多眼里就是香饽饽,因为机器学习相关的岗位在当前市场待遇不错,但同时机器学习在很多人面前又是一座大山,因为发现它太难学了。在这里我分享下我个人入门机器学习的经历,希望能对大家能有所帮助。

    这篇文章不会有太多机器学习方面的专业知识

    更多的只是学习经历与经验分享

 

机器学习工程师到底值几斤几两呢

 

入门之前先来让大家心里看个数据,机器学习工程师在市场上到底值几斤几两呢?我们在拉勾网上搜索 机器学习关键字,得到了下面的结果:

 

可以看出来,这个待遇在当前 IT 行业中还是很不错的,究其原因,是由于这个市场目前是供不应求,人才紧缺,自然而然与之相关的岗位待遇会相对 IT 行业中的其他岗位较高。

我是如何入门的呢

入门前的基础

先来分享下在开始入门前我的基础吧,先罗列下当时我所掌握掌握的知识吧。

  • 掌握了 Java SE

  • 本科所学的微积分,线性代数,概率论中的知识忘得所剩无几

 

看了上面两点,你会发现,当时的我其实除了掌握 Java SE 之外,连 Python 也不会,此外,微积分,线性代数,概率论中的知识我也基本上全都还给了大学老师了。

这时你再想想你当前的情况,你是不是发现你的情况跟我很像,甚至会比我的情况还好呢。

像我这样的条件都可以入了门,你们有什么理由无法入门呢?

入门过程中

首先说明一点,我个人在入门过程中经过了有看过视频、也有看过书,看过博客,也有直接做一些项目,这些过程是交互进行的,现在我将这些按照相对顺序来介绍下。

聊聊Python

在当时Python在机器学习领域已经使用非常多了,另外Python除了也可做机器学习外,还可以做后端(如Django/Flask等)。所以我首先学习的是 Python,在准备学习它的时候,我最开始采取的方式是看教学视频,但是发现太耗时了,所以看了两节之后果断放弃,进而我发现了廖雪峰关于Python的教程,看博客或者看书的方式会相对比看视频快很多,由于我个人有 Java 编程的基础,所以在看廖雪峰关于 Python 的教程时相对容易点。这里建议如果没有任何编程基础,建议还是选个Python的入门视频来学习。

如果说单纯的学习一门语言的话,这水其实是很深的,但对于我们大多数人来说,尤其是入门的时候,我们并不需要将Python的方方面面都学会,我们只需要有重点的掌握Python我们所需要的几个部分就好,剩下的我们可以在之后工作项目中进步学习和加深。

对于要入门机器学习的同学们,我这里整理下前期Python所需要学习的部分:

  • Python语法基础,包括数据类型和变量、条件控制语句(if else、for、while)、列表(list)、集合(set)、字典(dict)、元组(tuple)等

  • 面向对象部分,包括函数的使用、函数的多种参数、匿名函数、类和实例、继承和多态等

  • Python高级特性,包括切片、迭代、列表生成式、字典生成式、迭代器、生成器等

  • IO操作及异常处理,包括读写文本文件、读写二进制文件、异常捕获和处理等

  • 常用的内置模块,包括 datetime、os、system、re等

 

除了以上的关于Python的基础外,还有一些第三方模块我们需要掌握的。由于在使用机器学习算法时,经常需要处理数据以及可视化结果。在这里推荐以下几个第三方模块:

  • pandas,数据分析必备神器,功能众多,前期我们只需要掌握它的一些基本用法就OK

  • matplotlib,Python中众多数据数据可视化的一个基础库,能够使用它绘制基本图形即可

 

对于我来说,这些第三方模块都是在工作的时候学习的,并不是刚开始就学习的。以我的经验给大家指出一个陷阱,在我们入门阶段,不建议大家刚开始就深入学习这些模块的底层,我的原则是:先学会使用,再研究原理。以 pandas 为例,pandas 底层用到了 numpy、scipy、matplotlib,如果你要先系统地把这些底层所有的知识学习一遍,你会发现在你有限的时间内,你根本学不完,即便你有这么多时间去学完,你会发现学了后面,忘了前面。

相关的学习链接:

  • Python(廖雪峰),http://t.cn/RK0qGu7

  • Pandas,http://pandas.pydata.org/pandas-docs/stable/10min.html

  • Matplotlib,https://matplotlib.org/tutorials/index.html

 

聊聊机器学习算法课程

在掌握了 Python的基本用法后,我开始寻找学习机器学习的资料,当时的情况是市面上并没有众多关于这方面的培训机构,经过各种搜集,最后选择了吴恩达在 Coursera 上的机器学习课程。虽说课程语音是英文,但有中文字幕,所以看起来还是很方便的。在将吴恩达课程学完之后,你会对常用的机器学习算法有一个基本的了解。

这里列举出课程中所讲解的一些常用算法和内容:

  • 线性回归

  • 逻辑回归

  • 神经网络

  • 支持向量机

  • 非监督学习

  • 降维、异常检测

  • 推荐系统

  • 应用机器学习建议

 

看了上面的各种算法,你可能会问,这么多听起来很牛逼是算法,我的数学基础(微积分、线性代数、概率论)不好,能听的懂么?

在入门的时候,不建议大家将所有的数学知识全都学一遍,再来学习机器学习算法。一是时间长,而是学了不用就忘了。 选择一个好的视频教程,你可以事半功倍,,吴恩达老师课程的一个优点就在于他是专门针对我们这类的人群的,他的视频中不会有很多数学公式推导,但是仍然可以将这个算法跟你讲解清楚。

此外,台湾大学林轩田教授也有专门的机器学习视频(包括两部分:基石与技法)。这个视频在国内评价也较高,有兴趣的也可以跟着这个视频来学习。

关于吴恩达以及林轩田的机器学习相关的视频课程,之前已经有过分享,需要下载的请见:资源 | 2018年,你想要的机器/深度学习资料在这里

相关学习链接:

  • 吴恩达机器学习课程,https://zh.coursera.org/learn/machine-learning

 

聊聊机器学习书籍

在学习了吴恩达老师的课程后,可以再读一些相关的书籍来加强对机器学习的理解,当时我买了挺多的书籍,有一本书叫做《机器学习实战》,在这本书里会教你使用 Python 来实现常用的一些算法,当时按照书上的讲解手动敲了一些算法的实现,当你手动实现后,你会发现你对它的理解会更深了。

在实现书本上的一些算法时,会遇到某些算法的原理不太明白的地方,由于自己的数学知识(微积分、线性代数、概率论)基本上都还给了大学老师了,系统的去学习每个模块是非常耗时的,这时候采取的策略是“缺啥补啥”,也就是说发现哪方面的知识和公式不太明白,就去查阅与之相关的资料。

在当前,如果你想购买相关书籍,我可以再推荐两本给你,一本是周志华的《机器学习》(通常也叫西瓜书),这本书在我学习的时候还没出版;另一本是李航的《统计学习方法》。

聊聊如何通过工作/比赛提高水平

在掌握了Python的基本用法以及对机器学习有了基本了解之后,当时的实习工作有一部分是使用机器学习算法来去识别用户的评论是否违法,也就是一个二元分类问题。最开始的时候同阅读同事实现的Python代码,试图去搞明白每一行的含义,也就是在这个时候,自己开始查阅 pandas 和 sklearn 相关的文档,这样最后不仅搞明白了同事的代码,自己对 pandas 和 sklearn 基本的用法也有了一个认识。

这里多说两句,掌握了 pandas 后,在处理小数据量的时候会非常得心应手(如果数据量大的话,会非常慢);sklearn 是一个非常优秀的开源的机器学习Python库,这个库实现了很多机器学习算法,并且提供了非常详细的官方文档,认真阅读官方文档可以收获很多。如果你英文不太好的话,可以阅读相应的中文文档,文档地址可以见下面的学习链接。

如果说自己没有实习或工作机会,我推荐你去参加 kaggle 比赛,kaggle 是一个提供数据挖掘相关的比赛平台,在这里会有很多相对接近现实生活的比赛,此外,也会有很多大神分享自己的思路、做法和代码,通过阅读这些代码也能快速的提高自己的水平。

相关学习链接:

  • sklearn,http://sklearn.apachecn.org/cn/latest/

  • kaggle,https://www.kaggle.com/

 

入门后的体验

 

在入门了机器学习之后,在实际工作中,绝大多数的情况下你并不需要去创造一个新的算法。另外,大多数时间你也不是在去研究别人的算法时如何写出来的,而是处理数据,运用现有的第三方库去跑模型、调参数。听完我说的这些,你是不是很震惊,高大上的机器学习工程师在实际工作中大多数时间竟然是去洗数据,调参数。但事实就是如此,除非你在一线互联网公司,而且还是某些部门,你可能会需要自己重新去实现某个算法,否则其他公司的情况大多都是差不多的。

入门后再来聊一聊数学知识在机器学习中的作用,虽说你数学知识不好,一样可以调用第三方库的模型。但是如果你想要深入理解算法,数学的底子还必须是有一点的。如果你要入研究这个领域,你必须要捡起来你忘掉的数学知识。此外,在面试时,这些算法的原理相关的知识还是必问的。

有时候并不是你的能力不够,也并不是你不够努力,只是缺少了一个正确的引导而已


http://chatgpt.dhexx.cn/article/2E8NOuuV.shtml

相关文章

机器学习之SVM

文章目录 一、SVM基本介绍二、SVM工作原理1. 线性支持向量机(数据可分)2. 软边距支持向量机(数据不可分) 三、sklearn实现SVM注:SVM涉及距离,需要先数据标准化处理1. 线性SVMLinearSVC() 构造函数的参数及默…

如何将照片或者视频中的背景图抠掉,机器学习开源项目使用 | 机器学习

目录 前言 开源项目介绍 项目结构 模型下载 测试数据下载 训练数据下载 依赖下载 测试图片的抠图效果 测试视频的抠图效果 总结 前言 本文主要介绍一个神奇有意思的开源项目: BackgroundMattingV2 该项目可以将照片或者视频中人的背景扣掉,变成带alpha通…

机器学习进阶路上不可错过的 28 个视频

想自学机器学习和深度学习?不妨边看专家讲解视频边自学。不仅能感受世界各地专家的熏陶,也能快速获取知识,一举两得。这篇文章整理了一个 YouTube 视频列表,供希望在该领域学习的朋友使用。 视频观看建议 我将视频分为三类:机器学…

机器学习--降维

降维(Dimensionality Reduction) 视频参考:【机器学习】【白板推导系列】【合集 1~33】_哔哩哔哩_bilibili 笔记参考:降维 语雀 (yuque.com) PCA原理详解:主成分分析(PCA)原理详…

机器学习简介

本文借鉴了数学建模清风老师的课件与思路,可以点击查看链接查看清风老师视频讲解:清风数学建模:https://www.bilibili.com/video/BV1DW411s7wi 注: 因为要用到机器学习工具箱,所以至少需要安装MATLAB2017a的版本&…

python机器学习视频教程百度网盘下载(2023完整版)

文末扫码领资料全套学习路线图和 视频及配套资料 在Python中有很多机器学习的模块,比如Sklearn、Tensorflow、Caffe等,可以很方便地调用一些机器学习的算法。如果你对Python机器学习感兴趣,python机器学习教程哪个好?这份python机…

吴恩达机器学习课程资源(笔记、中英文字幕视频、课后作业,提供百度云镜像!)

强烈感谢黄海广博士给的文章思路 本文中提及的作者便是黄海广博士本人 吴恩达老师的机器学习课程,可以说是机器学习入门的第一课和最热门课程,作者在github开源了吴恩达机器学习个人笔记,用python复现了课程作业,成为热门项目&am…

机器学习视频教程

1. Hadoop—Spark企业应用实战(推荐版) 链接:http://pan.baidu.com/s/1eSJsUTc 密码:q5lt 2. 西安交大应用统计分析SPSS1-48讲 链接:http://pan.baidu.com/s/1slSzYHJ 密码:8twg 3. Python科学计算 链接:http://pa…

机器学习必看的28个视频

想自学机器学习和深度学习?不妨边看专家讲解视频边自学。不仅能感受世界各地专家的熏陶,也能快速获取知识,一举两得。这篇文章整理了一个 YouTube 视频列表,供希望在该领域学习的朋友使用。 转自: http://easygeek.com.cn/articl…

struct timespec 和 struct timeval

转自&#xff1a;http://www.cnblogs.com/book-gary/p/3716790.html time()提供了秒级的精确度 . 1、头文件 <time.h> 2、函数原型 time_t time(time_t * timer) 函数返回从TC1970-1-1 0:0:0开始到现在的秒数 用time()函数结合其他函数&#xff08;如&#xff1a;lo…

time.Timer

文章目录 前言一、代码二、DB三、效果 前言 今天观摩前辈的代码,看到time.Timer的使用,发现对于定时任务可以这样做达到js的setInterval()效果 一、代码 package mainimport ("fmt""gorm.io/driver/postgres""gorm.io/gorm""gorm.io/gorm…

软件测试之性能测试面试题合集(含答案分析细节)

前言 最近这一年&#xff0c;对性能测试有了更多的认知。 压力、强度测试&#xff1a;在一定软硬件环境下&#xff0c;通过高负载的手段来使服务器资源&#xff08;强调服务器资源&#xff0c;硬件资源&#xff09;处于极限状态&#xff0c;测试系统在极限状态下长时间运行是…

2023最新软件测试面试题(带答案)

1. 请自我介绍一下(需简单清楚的表述自已的基本情况&#xff0c;在这过程中要展现出自信&#xff0c;对工作有激情&#xff0c;上进&#xff0c;好学) 面试官您好&#xff0c;我叫###&#xff0c;今年26岁&#xff0c;来自江西九江&#xff0c;就读专业是电子商务&#xff0c;毕…

软件测试面试必杀篇:【2023软件测试面试八股文宝典】

800道软件测试面试真题&#xff0c;高清打印版打包带走&#xff0c;横扫软件测试面试高频问题&#xff0c;涵盖测试理论、Linux、MySQL、Web测试、接口测试、App测试、Python、Selenium、性能测试、LordRunner、计算机网络、数据结构与算法、逻辑思维、人力资源等模块面试题&am…

【面经】2023年软件测试面试题大全(持续更新)附答案

整理了一些软件测试方面的资料、面试资料&#xff08;接口自动化、web自动化、app自动化、性能安全、测试开发等&#xff09;&#xff0c;有需要的小伙伴可以文末关注我的VX公众号&#xff0c;无套路自行领取~ 前阵子一位读者告诉我&#xff0c;某位大厂HR给他发了我之前做的面…

软件测试常考面试题-软件测试面试宝典(一篇足矣)

软件测试常考面试题-软件测试面试宝典_MJ813的专栏-CSDN博客&#xff0c;对原文进行整理 扫码关注每日思悟&#xff1a; 介绍解决锻炼思维问题的思路和方法&#xff0c;从不同角度分析问题&#xff0c;让思维变强大&#xff0c;变宽广的同时在测试方面进行学习和方法的拓展&a…

2022最新整理软件测试常见面试题附答案

包含的模块&#xff1a; 本文分为十九个模块&#xff0c;分别是&#xff1a;软件测试 基础、liunx、MySQL、web测试、接口测试、APP测试 、管理工具、Python、性能测试、selenium、lordrunner、计算机网络、组成原理、数据结构与算法、逻辑题、人力资源需要的可以找我获取&…

软件测试的常用的面试题【带答案】

1. 请自我介绍一下(需简单清楚的表述自已的基本情况&#xff0c;在这过程中要展现出自信&#xff0c;对工作有激情&#xff0c;上进&#xff0c;好学) 面试官您好&#xff0c;我叫XXX&#xff0c;今年24岁&#xff0c;来自XX&#xff0c;就读专业是电子商务&#xff0c;毕业后就…

十道必问的软件测试面试题(含答案解析)

前言 &#xff08;第一个就刷掉一大批人&#xff09; 有很多“会自动化”的同学来咨询技术问题&#xff0c;他总会问到我一些元素定位的问题。元素定位其实都不算自动化面试的问题。 一般我都会问&#xff1a;你是定位不到吗&#xff1f;通常结果都是说确实定位不到。 做自…

软件测试最全面试题及答案整理(2022最新版)

目录 1、你的测试职业发展是什么? 2、你认为测试人员需要具备哪些素质 3、你为什么能够做测试这一行 4、测试的目的是什么? 5、测试分为哪几个阶段? 6、单元测试的测试对象、目的、测试依据、测试方法? 7、怎样看待加班问题 8、结合你以前的学习和工作经验&#xf…