Go最全机器学习知识点全面总结,Golang面试项目源码

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

2. 无监督学习

3. 强化学习

三、常见机器学习概念介绍:

1.常见机器学习算法概念简介:

2.其余理论知识

四、十大机器学习算法介绍

有监督学习

1. 线性回归算法

2. 逻辑回归算法

3. 分类回归树(决策树)

4. 朴素贝叶斯

5. KNN(K近邻算法)

无监督学习算法

6. 关联规则算法

7. K-means算法

8. PCA主成分分析

集成学习技术

9. 使用随机森林Bagging

10. 用Adaboost实现Boosting

五、机器学习处理流程

1.需求分析与数据获取

2.数据预处理

3.特征工程

4.算法模型

5.模型评估

机器学习知识点笔记参考:

机器学习优秀博客参考:


机器学习按照模型类型分为监督学习模型、无监督学习模型和概率模型三大类:

以下是作者自己整理的机器学习笔记思维导图,可以关注文末公众号回复“导图”获取,免费分享供大家学习,导图和笔记后续会继续更新。

一、什么是机器学习?

机器学习=寻找一种函数

如何寻找这个函数?

①定一个函数集合

②判断函数的好坏

③选择最好的函数

机器学习三板斧

①设计模型model

②判断模型的好坏

③选择最好的函数,优化模型

3.1修改模型,增加数据维度

3.2增加正则因子,使函数更加平滑,让参数w取值更小。(x变化较小时,整个函数结果不会变化太大,结果更准)

学习路线

监督学习:有数据标注情况下学习(回归、分类)

半监督学习:训练数据中带标记的数据不够多

迁移学习:在已学习基础上,做看似和以前学习不相关的事情,但实际效果很好(在猫狗识别基础识别大象老虎等)

非监督学习:没有具体标注数据的情况下学习(机器阅读、机器绘画)

结构化学习:超越简单的回归和分类,产生结构化的结果(如图片、语言、声音)

二、机器学习算法的类型

1. 有监督学习

有监督学习通常是利用带有专家标注的标签的训练数据,学习一个从输入变量X到输入变量Y的函数映射。 Y = f (X)

训练数据通常是(n×x,y)的形式,其中n代表训练样本的大小,x和y分别是变量X和Y的样本值。

利用有监督学习解决的问题大致上可以被分为两类:

**分类问题:**预测某一样本所属的类别(离散的)。比如给定一个人(从数据的角度来说,是给出一个人的数据结构,包括:身高,年龄,体重等信息),然后判断是性别,或者是否健康。

**回归问题:**预测某一样本的所对应的实数输出(连续的)。比如预测某一地区人的平均身高。

下面所介绍的前五个算法(线性回归,逻辑回归,分类回归树,朴素贝叶斯,K最近邻算法)均是有监督学习的例子。

除此之外,集成学习也是一种有监督学习。它是将多个不同的相对较弱的机器学习模型的预测组合起来,用来预测新的样本。本文中所介绍的第九个和第十个算法(随机森林装袋法,和XGBoost算法)便是集成技术的例子。

2. 无监督学习

无监督学习问题处理的是,只有输入变量X没有相应输出变量的训练数据。它利用没有专家标注训练数据,对数据的结构建模。

可以利用无监督学习解决的问题,大致分为两类:

关联分析:发现不同事物之间同时出现的概率。在购物篮分析中被广泛地应用。如果发现买面包的客户有百分之八十的概率买鸡蛋,那么商家就会把鸡蛋和面包放在相邻的货架上。

**聚类问题:**将相似的样本划分为一个簇(cluster)。与分类问题不同,聚类问题预先并不知道类别,自然训练数据也没有类别的标签。

**维度约减:**顾名思义,维度约减是指减少数据的维度同时保证不丢失有意义的信息。利用特征提取方法和特征选择方法,可以达到维度约减的效果。特征选择是指选择原始变量的子集。特征提取是将数据从高纬度转换到低纬度。广为熟知的主成分分析算法就是特征提取的方法。

下面介绍的第六-第八(Apriori算法,K-means算法,PCA主成分分析)都属于无监督学习。

3. 强化学习

通过学习可以获得最大回报的行为,强化学习可以让agent(个体)根据自己当前的状态,来决定下一步采取的动作。

强化学习算法通过反复试验来学习最优的动作。这类算法在机器人学中被广泛应用。在与障碍物碰撞后,机器人通过传感收到负面的反馈从而学会去避免冲突。在视频游戏中,我们可以通过反复试验采用一定的动作,获得更高的分数。Agent能利用回报去理解玩家最优的状态和当前他应该采取的动作。

三、常见机器学习概念介绍:

1.常见机器学习算法概念简介:

1、监督学习(SupervisedLearning):有类别标签的学习,基于训练样本的输入、输出训练得到最优模型,再使用该模型预测新输入的输出;

代表算法:决策树、朴素贝叶斯、逻辑回归、KNN、SVM、神经网络、随机森林、AdaBoost、遗传算法;

2、半监督学习(Semi-supervisedLearning):同时使用大量的未标记数据和标记数据,进行模式识别工作;

代表算法:self-training(自训练算法)、generative models生成模型、SVMs半监督支持向量机、graph-basedmethods图论方法、 multiviewlearing多视角算法等;

3、无监督学习(UnsupervisedLearning):无类别标签的学习,只给定样本的输入,自动从中寻找潜在的类别规则;

代表算法:主成分分析方法PCA等,等距映射方法、局部线性嵌入方法、拉普拉斯特征映射方法、黑塞局部线性嵌入方法、局部切空间排列方法等;

4、HOG特征:全称Histogram of Oriented Gradient(方向梯度直方图),由图像的局部区域梯度方向直方图构成特征;

5、LBP特征:全称Local Binary Pattern(局部二值模式),通过比较中心与邻域像素灰度值构成图像局部纹理特征;

6、Haar特征:描述图像的灰度变化,由各模块的像素差值构成特征;

7、核函数(Kernels):从低维空间到高维空间的映射,把低维空间中线性不可分的两类点变成线性可分的;

8、SVM:全称Support Vector Machine(支持向量机),在特征空间上找到最佳的超平面使训练集正负样本的间隔最大;是解决二分类问题的有监督学习算法,引入核方法后也可用来解决非线性问题;

9、Adaboost:全称Adaptive Boosting(自适应增强),对同一个训练集训练不同的弱分类器,把这些弱分类器集合起来,构成一个更强的强分类器;

10、决策树算法(Decision Tree):处理训练数据,构建决策树模型,再对新数据进行分类;

11、随机森林算法(Random Forest):使用基本单元(决策树),通过集成学习将多棵树集成;

12、朴素贝叶斯(Naive Bayes):根据事件的先验知识描述事件的概率,对联合概率建模来获得目标概率值;

13、神经网络(Neural Networks):模仿动物神经网络行为特征,将许多个单一“神经元”联结在一起,通过调整内部大量节点之间相互连接的关系,进行分布式并行信息处理。

2.其余理论知识

偏差

偏差度量了模型的期望预测与真实结果的偏离程度, 即刻画了学习算法本身的拟合能力。偏差则表现为在特定分布上的适应能力,偏差越大越偏离真实值。

方差

方差度量了同样大小的训练集的变动所导致的学习性能的变化, 即刻画了数据扰动所造成的影响。方差越大,说明数据分布越分散。

噪声

噪声表达了在当前任务上任何模型所能达到的期望泛化误差的下界, 即刻画了学习问题本身的难度 。

泛化误差、偏差、方差和模型复杂度的关系(图片来源百面机器学习)

Q2什么是过拟合和欠拟合,为什么会出现这个现象?

过拟合指的是在训练数据集上表现良好,而在未知数据上表现差。

欠拟合指的是模型没有很好地学习到数据特征,不能够很好地拟合数据,在训练数据和未知数据上表现都很差。如图所示:

过拟合的原因在于:

  • 参数太多,模型复杂度过高;
  • 建模样本选取有误,导致选取的样本数据不足以代表预定的分类规则;
  • 样本噪音干扰过大,使得机器将部分噪音认为是特征从而扰乱了预设的分类规则;
  • 假设的模型无法合理存在,或者说是假设成立的条件实际并不成立。

欠拟合的原因在于:

  • 特征量过少;
  • 模型复杂度过低。

Q3怎么解决欠拟合?

  • 增加新特征,可以考虑加入进特征组合、高次特征,来增大假设空间;
  • 添加多项式特征,这个在机器学习算法里面用的很普遍,例如将线性模型通过添加二次项或者三次项使模型泛化能力更强;
  • 减少正则化参数,正则化的目的是用来防止过拟合的,但是模型出现了欠拟合,则需要减少正则化参数;
  • 使用非线性模型,比如核SVM 、决策树、深度学习等模型;
  • 调整模型的容量(capacity),通俗地,模型的容量是指其拟合各种函数的能力;
  • 容量低的模型可能很难拟合训练集。

Q4怎么解决过拟合?(重点)

  • 获取和使用更多的数据(数据集增强)——解决过拟合的根本性方法
  • 特征降维:人工选择保留特征的方法对特征进行降维
  • 加入正则化,控制模型的复杂度
  • Dropout
  • Early stopping
  • 交叉验证 增加噪声

Q5为什么参数越小代表模型越简单?

因为参数的稀疏,在一定程度上实现了特征的选择。

越复杂的模型,越是会尝试对所有的样本进行拟合,甚至包括一些异常样本点,这就容易造成在较小的区间里预测值产生较大的波动,这种较大的波动也反映了在这个区间里的导数很大,而只有较大的参数值才能产生较大的导数。因此复杂的模型,其参数值会比较大。因此参数越少代表模型越简单。

未完待续。。。。。

四、十大机器学习算法介绍

有监督学习

1. 线性回归算法

在机器学习当中,我们有一个变量X的集合用来决定输出变量Y。在输入变量X和输出变量Y之间存在着某种关系。机器学习的目的就是去量化这种关系。

在线性回归里,输入变量X和输出变量Y之间的关系,用等式Y = a + bX 来表示。因此,线性回归的目标便是找出系数a和b的值。在这里,a是截距,b是斜率。

上图绘制了数据中X和Y的值。我们的目标是去拟合一条最接近所有点的直线。这意味着,直线上每一个X对应点的Y值与实际数据中点X对应的Y值,误差最小。

2. 逻辑回归算法

使用一个转换函数后,线性回归预测的是连续的值(比如降雨量),而逻辑回归预测的是离散的值(比如一个学生是否通过考试,是:0,否:1)。

逻辑回归最适用于二分类(数据只分为两类,Y = 0或1,一般用1作为默认的类。比如:预测一个事件是否发生,事件发生分类为1;预测一个人是否生病,生病分类为1)。我们称呼其为逻辑回归(logistic regression)是因为我们的转换函数采用了logistic function (h(x)=1/(1+e的-x次方)) 。

在逻辑回归中,我们首先得到的输出是连续的默认类的概率p(0小于等于p小于等于1)。转换函数 (h(x)=1/(1+e的-x次方))的值域便是(0,1)。我们对该函数设置一个域值t。若概率p>t,则预测结果为1。

图 2 使用逻辑回归来判断肿瘤是恶性还是良性。如果概率p大于0.5,则是恶性

在图2中,判断肿瘤是恶性还是良性。默认类y=1(肿瘤是恶性)。当变量X是测量肿瘤的信息,如肿瘤的尺寸。如图所示,logistic函数由变量X得到输出p。域值t在这里设置为0.5。如果p大于t,那么肿瘤则是恶性。

我们考虑逻辑回归的一种变形:

因此,逻辑回归的目标便是训练数据找到适当的参数的值,使得预测的输出和实际的输出最小。我们使用最大似然估计来对参数进行估计。

3. 分类回归树(决策树)

分类回归树是诸多决策树模型的一种实现,类似还有ID3、C4.5、CART等算法。

非终端节点有根节点(Root Node)和内部节点(Internal Node)。终端节点是叶子节点(Leaf Node)。每一个非终端节点代表一个输出变量X和一个分岔点,叶叶子节点代表输出变量Y,见图3。沿着树的分裂(在分岔点做一次决策)到达叶子节点,输出便是当前叶子节点所代表的值。

图3中的决策树,根据一个人的年龄和婚姻状况进行分类:1.购买跑车;2.购买小型货车。如果这个人30岁还没有结婚,我们沿着决策树的过程则是:‘超过30年?–是–已婚?–否,那么我们的输出便是跑车。

4. 朴素贝叶斯

在给定一个事件发生的前提下,计算另外一个事件发生的概率——我们将会使用贝叶斯定理。假设先验知识为d,为了计算我们的假设h为真的概率,我们将要使用如下贝叶斯定理:

贝叶斯公式

P(h|d)=后验概率。这是在给定数据d的前提下,假设h为真的概率。

P(d|h)=可能性。这是在给定假设h为真的前提下,数据d的概率。

P(h)=类先验概率。这是假设h为真时的概率(与数据无关)

P(d)=预测器先验概率。这是数据的概率(与假设无关)

之所以称之为朴素是因为该算法假定所有的变量都是相互独立的(在现实生活大多数情况下都可以做这样的假设)。

如图,当天气是晴天的时候(第一列第一行),选手的状态是如何的呢?

在给定变量天气是晴天(sunny)的时候,为了判断选手的状态是‘yes’还是‘no’,计算概率,然后选择概率更高的作为输出。

在这里插入图片描述
因此,当天气是晴天的时候,选手的状态是‘yes’

5. KNN(K近邻算法)

K最近邻算法是利用整个数据集作为训练集,而不是将数据集分成训练集和测试集。

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

HR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d1emhvbmdxaWFuZw==,size_16,color_FFFFFF,t_70)
因此,当天气是晴天的时候,选手的状态是‘yes’

5. KNN(K近邻算法)

K最近邻算法是利用整个数据集作为训练集,而不是将数据集分成训练集和测试集。

[外链图片转存中…(img-IKyM2HGD-1715828569547)]
[外链图片转存中…(img-4Vqa1JWz-1715828569548)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值