《R语言机器学习:实用案例分析》——2.2节机器学习算法

简介:

本节书摘来自华章社区《R语言机器学习:实用案例分析》一书中的第2章,第2.2节机器学习算法,作者[印度] 拉格哈夫·巴利(Raghav Bali)迪潘简·撒卡尔(Dipanjan Sarkar),更多章节内容可以访问云栖社区“华章社区”公众号查看

2.2 机器学习算法
目前为止,我们已经大致了解了机器学习。我们理解了机器学习的定义是指,计算机程序在经验E形式的数据的帮助下,改进其性能P,进而学习了任务T。我们还看到,由于没有一步一步执行的代码,而是让程序形成对问题的理解,进而帮助我们解决问题,所以机器学习与传统的程序范式是不同的。更让我们惊讶的是,这样的一个程序就工作在我们面前。
一直以来,虽然我们学习了机器学习的概念,但是我们仍将这个神奇的计算机程序当作一个帮助我们学习和解决问题的神秘黑匣子。现在是让我们揭晓谜底,探究面纱下这些神奇算法的时候了。
我们将从机器学习中最常见和最广泛使用的一些算法开始,探究它们复杂的细节和应用,以及少量必需的数学原理。通过本章,你将了解不同的算法类别。这里给出的算法列表并不详尽,尽管对一些算法进行了很详细的解释,对每一个算法的深刻理论理解超出了本书的范围。有大量有关机器学习的资料可以容易地从书籍、在线课程、博客等诸多的渠道获取。
感知机
这个算法就像机器学习领域中的Hello World算法。这或许是所有算法中最易于理解和使用的算法,但这并不意味着这个算法不强大。
感知机(perceptron)算法由Frank Rosenblatt于1958年提出,由于它找到了可分类数据的分类器(separator)而受到了极大的关注。
感知机是一个函数(或者精确地说,一个简单化的神经元),它将一个实数向量作为输入,并生成一个实数作为输出。
在数学上,感知机可以表示为以下形式:
y = f(w1x1 + w2x2 + … + wnxn + b)= f(wTx + b)
这里,w1,…,wn表示权重,b是一个表示偏差(或误差)的常数项,x1,…,xn是输入,y是函数f的输出,函数f称为激活函数。
感知机算法如下所示:
1)用小的随机数作为权重向量w和误差项b的初始值。
2)基于函数f和向量x计算输出向量y。
3)通过更新权重向量w和误差项b来校正偏差。
4)重复步骤2和3,直到没有偏差或将误差减小到一个给定的范围内。
感知机算法尝试找到一种分类器,通过应用称为训练集(训练集对应上一节中机器学习定义中的经验E)的带标签的数据集,将输入数据分为两个类。该算法通过随机数设置初值权重向量w和误差项b。然后通过函数f对输入数据进行处理,给出向量y。然后将这个生成的输出y与训练集中正确的输出值进行比较,并对权重向量w和误差项b进行相应的调整。为了理解向量调整过程,假设存在点p1,其正确的输出值是+1。现在,假如感知机将p1错误地分类为-1,为了正确地对p1进行分类,感知机将向量w和误差项b向p1方向进行微小的移动(为防止突然的跳跃,移动将受到学习率的限制)。当找到正确的分类器或者将偏差限定在一个用户给定的特定范围内时,算法将停止。
现在让我们通过一个简单的例子来了解感知机算法是如何运行的。
为了让感知机算法工作,我们需要一个线性可分的数据集。假定数据通过下式生成:
x2 = x1 + 1/2
基于上式,正确的分类器由下式给出:


35610cc4d1283996a77c1eec412275f9a34d624e


f5603483d952de48b1518daf54a9838b44b0aa8a

现在是时候训练感知机了!


75173d6d2860b8f55ca4d6fcd88b7c1b10b4e9af

感知机找到正确分类器的工作方式示意图。正确的分类器用黑色表示
上面的图形给出了感知机的训练状态。每一个错误的分类器用一根灰色线表示。如图所示,在找到用黑色线标识正确的分类器后,感知机停止运算。
最后的分类器的放大视图如下所示。


(<a href=https://yqfile.alicdn.com/bdeab76a1c1d72f6f138a345bde57faee3fd9ad1.png" >

![image]( https://yqfile.alicdn.com/a4504e9beeb1ff53391f89f5405b2671136319b8.png" >
相关文章
|
7天前
|
机器学习/深度学习 数据采集 算法
数据分享|R语言机器学习预测案例合集:众筹平台、机票折扣、糖尿病患者、员工满意度
数据分享|R语言机器学习预测案例合集:众筹平台、机票折扣、糖尿病患者、员工满意度
|
7天前
|
数据可视化
R语言离散时间马尔可夫链(Markov chain)模型分类案例可视化分析
R语言离散时间马尔可夫链(Markov chain)模型分类案例可视化分析
|
7天前
|
存储 机器学习/深度学习 算法
R语言贝叶斯Metropolis-Hastings采样 MCMC算法理解和应用可视化案例
R语言贝叶斯Metropolis-Hastings采样 MCMC算法理解和应用可视化案例
|
7天前
|
机器学习/深度学习 算法 数据挖掘
【C 言专栏】C 语言与机器学习的应用
【5月更文挑战第6天】C语言在机器学习中扮演关键角色,以其高效性、灵活性和可移植性实现底层算法、嵌入式系统和高性能计算。在神经网络、决策树和聚类算法等领域的实现中不可或缺。C语言被用于TensorFlow和OpenCV等知名库的底层,常与C++、Python结合使用。尽管面临开发难度和适应新算法的挑战,但C语言在机器学习领域的价值和潜力将持续展现,为科技进步贡献力量。
【C 言专栏】C 语言与机器学习的应用
|
8天前
|
数据可视化
R语言机器学习方法分析二手车价格影响因素
R语言机器学习方法分析二手车价格影响因素
|
14天前
|
机器学习/深度学习 Python
【视频】ARIMA时间序列模型原理和R语言ARIMAX预测实现案例
【视频】ARIMA时间序列模型原理和R语言ARIMAX预测实现案例
|
14天前
|
机器学习/深度学习 测试技术 数据处理
【视频】R语言机器学习高维数据应用:Lasso回归和交叉验证预测房屋市场租金价格
【视频】R语言机器学习高维数据应用:Lasso回归和交叉验证预测房屋市场租金价格
|
14天前
数据代码分享|R语言回归分析:体脂数据、公交绿色出行与全球变暖2案例
数据代码分享|R语言回归分析:体脂数据、公交绿色出行与全球变暖2案例
|
15天前
|
数据可视化
【视频】R语言生存分析原理与晚期肺癌患者分析案例|数据分享(下)
【视频】R语言生存分析原理与晚期肺癌患者分析案例|数据分享
|
15天前
【视频】R语言生存分析原理与晚期肺癌患者分析案例|数据分享(上)
【视频】R语言生存分析原理与晚期肺癌患者分析案例|数据分享