机器学习初学者——常见算法篇

来源:互联网 发布:mac怎么设置独立显卡 编辑:程序博客网 时间:2024/06/06 01:32

一.ML算法的类型

1、监督学习(Supervised Learning):


监督学习可以理解为:使用标记的训练数据来学习从输入变量(X)到输出变量(Y)的映射函数。Y=f(X)

监督学习问题可以有两种类型:


1)分类:预测输出变量处于类别形式的给定样本结果。例如男性和女性,健康与病态等。

2)回归:预测给定样本的输出变量的实值结果。例如包括表示降雨量和人的身高等实值标签。


线性回归、Logistics回归、CART、朴素贝叶斯、KNN都属于监督学习。

人工智能领域的大牛吴恩达曾在他的公开课中提到,目前机器学习带来的经济价值全部来自监督学习。


2、无监督学习(Unsupervised Learning):


无监督学习只有输入变量(X),但没有相应的输出变量。它使用无标签的训练数据来模拟数据的基本结构。

无监督学习问题也可以有两种类型:

1)关联:发现数据集合中相关数据共现的概率。广泛应用于市场篮子分析。例如如果顾客买面包,他80%的可能会买鸡蛋。

2)群集:对样本进行分组,是的同一个群集内的对象彼此之间的关系比两一个群集的对象更为相似。

3)降低维度:降纬意味着减少数据集的变量数量,同时确保重要的信息仍然保持传达。可使用特征提取和特征选择方法来完成降维。特征选择选择原始变量的一个子集。特征提取执行从高维空间到低维空间的转换。例如:PCA算法是一种特征提取方法。


Apriori,K-means、PCA都是无监督学习。


3、强化学习(Reinforcement Learning):


强化学习是根据当前状态决定最佳的下一个状态。通过反复的实验来学习最佳行为。通常用于机器人的训练,机器人可以通过碰到障碍物后收到负面反馈来学习避免碰撞。近期的AlphaGo zero 就是采用强化学习的方法来完成实验的。


二、监督学习的算法

1、线性回归


在ML中,我们有一组输入变量(x)用于确定输出变量(y)。输入变量和输出变量之间存在某种关系,ML的目标是量化这种关系。

在线性回归中,输入变量(x)和输出变量(y)之间的关系表示为形式为y = ax + b的方程。因此,线性回归的目标是找出系数a和b的值。这里,a是截距,b是线的斜率。

上图显示了数据集的绘制x和y值。目标是拟合最接近大部分点的线。


2、Logistic回归


逻辑回归最适合二进制分类(y=0或1的数据集,其中1表示默认类)例如:在预测事件是否发生时,发生的事件被分类为1。在预测人会生病或不生病,生病的实例记为1。它是以其中使用的变换函数命名的,称为逻辑函数h(x)= 1 /(1 + e ^ x),它是一个S形曲线。

在逻辑回归中,输出是以缺省类别的概率形式出现的。因为这是一个概率,所以输出在0——1的范围内。输出(y值)通过对数转换x值,使用对数函数h(x)= 1 /(1 + e ^ -x)来生成。然后应用一个阈值来强制这个概率进入二元分类


上图中,为了确定肿瘤是否是恶性的,默认变量是y = 1(肿瘤=恶性);x变量可以是肿瘤的量度,例如肿瘤的大小。如图所示,逻辑函数将数据集的各种实例的x值转换成0到1的范围。如果概率超过阈值0.5(由水平线示出),则将肿瘤分类如恶性。


P(x) = e ^ (b0 +b1*x) / (1 + e^(b0 + b1*x)) 可以转化为 

ln(p(x) / 1-p(x)) = b0 + b1*x.


逻辑回归的目标是使用训练数据来找到系数b0和b1的值,以使预测结果与实际结果之间的误差最小化。这些系数是使用最大似然估计技术估计的。

现实中应用:

  • 信用评分
  • 衡量营销活动的成功率
  • 预测某一产品的收入
  • 在某一天会有地震吗?

3、CART(Classification and Regression Trees )


分类和回归树(CART)是决策树的一个实现方式。


非终端节点是根节点和内部节点,终端节点是叶节点。每个非终端节点表示单个输入变量(x), 叶节点表示输出变量(y)。该模型用于做出如下预测:遍历树的分裂到达一个叶节点,并输出叶节点上存在的值。

上图中的决策树根据年龄和婚姻状况分类是否购买跑车或小型货车。如果这个人30多年没有结婚,我们可以如下预测:“30多年? - >是 - >'已婚? - >不。因此,该模型输出一个跑车。


4、朴素贝叶斯(Naive Bayes )


为了计算事件发生的概率,假设已经发生了另一个事件,我们使用贝叶斯定理。为了计算给定某个变量值的结果的概率,也就是说,根据我们的先验知识(d)计算假设(h)为真的概率,我们使用贝叶斯定理如下:

P(h | d)=(P(d | h)* P(h))/ P(d)

·         P(h | d)=后验概率。
·         P(d | h)=可能性。数据d的概率假设h是真的。
·         P(h)=类别先验概率。假设h的可能性为真(不考虑数据)。
·         P(d)=预测值先验概率。数据的可能性(与假设无关)。


以上图为例,如果天气=“阳光,结果如何?

为了确定结果play ='yes''no',给定变量weather ='sunny'的值,计算P(yes| sunny)和Pno | sunny),并选择结果的概率较高。

Pyes| sunny=P(晴天|是)* P(yes))/ P(晴天)

 =3/9 * 9/14/5/14

 = 0.60

Pno | sunny=P(晴天)* Pno))/ P(晴天)

 =2/5 * 5/14/5/14

 = 0.40

因此,如果天气=“晴天,结果是play =''

5、KNN


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


当新的数据实例需要结果时,KNN算法遍历整个数据集,以找到新实例的k个最近的实例,或者与新记录最相似的k个实例,然后对于分类问题的结果(对于回归问题)或模式输出均值。k的值可以自定义。

实例之间的相似度使用欧几里德距离和Hamming距离等度量来计算。

现实中应用:

  • 将邮件标记为垃圾邮件或非垃圾邮件
  • 把一篇关于技术、政治或体育的新闻文章分类
  • 检查一段表达积极情绪或消极情绪的文章?
  • 用于人脸识别软件。

三、无监督学习的算法

6、Apriori

Apriori算法用于事务数据库挖掘,然后生成关联规则。它在市场篮子分析中被广泛使用,在这个分析中,检查数据库中经常出现的产品组合。一般来说,我们写出如果一个人购买项目X,然后他购买项目Y的关联规则为:X - > Y。



例如:如果一个人购买牛奶和糖,那么他很可能会购买咖啡粉。这可以写成关联规则的形式:{牛奶,糖} - >咖啡粉。


7、K-means


K-means是一种迭代算法,将相似的数据分组到簇中。计算k个簇的质心,并将一个数据点分配给质心和数据点之间距离最小的簇。


步骤1k-means初始化:

a)选择k的值。在这里,让我们取k = 3

b)将每个数据点随机分配到3个群集中的任何一个。

c)为每个集群计算集群质心。红色,蓝色和绿色星星表示3个星团中的每一个的质心。

步骤2:将每个观察结果与群集相关联:

将每个点重新分配到最近的集群质心。这里,上面的5个点被分配到具有蓝色质心的簇。按照相同的步骤将点分配给包含红色和绿色质心的群集。

3步:重新计算质心:

计算新簇的质心。旧的质心由灰色星星表示,而新的质心是红色,绿色和蓝色星星。

4步:迭代,然后退出,如果不变。

重复步骤2-3,直到没有从一个群集切换到另一个群集。一旦连续两个步骤没有切​​换,退出k-means算法。

8、PCA

主成分分析(PCA)用于通过减少变量的数量来使数据易于探索和可视化。这是通过将数据中的最大方差捕获到一个称为主要成分的轴上的新的坐标系来完成的。每个组件是原始变量的线性组合,并且彼此正交。组件之间的正交性表明这些组件之间的相关性为零。


第一个主成分捕捉数据中最大变化的方向。第二个主要组件捕获数据中的剩余变量,但变量与第一个组件不相关。


9、SVD(Singular Value Decomposition)


在线性代数中,奇异值分解是实复矩阵的一个因式分解。对于一个给定的m×n矩阵M,存在一个分解,M = UΣV,其中u和v是酉矩阵,Σ是一个对角矩阵。



PCA实际上是奇异值分解的一个简单应用。在计算机视觉中,第一个人脸识别算法,运用主成分分析和奇异值分解为代表的面孔的一个线性组合的“脸”,做降维,然后通过简单的方法进行人脸匹配;尽管如今的方法更复杂,许多仍然依靠类似的技术。


四、集成学习的算法


集成学习方法结合多学习结果(分类)的改进的结果,通过投票或平均。在分类过程中使用投票,在回归过程中使用平均值。其观点是,学习者的整体表现要优于单个学习者。

常见的集成学习算法: Bagging, Boosting and Stacking


参考:

Top 10 Machine Learning Algorithms for Beginners  

The 10 Algorithms Machine Learning Engineers Need to Know








原创粉丝点击