机器学习的三种方法

article/2025/9/28 23:44:15

目录

介绍

鸢尾花(Iris)数据集

梯度下降

逻辑回归

使用逻辑回归处理鸢尾花(Iris)数据集

反向传播

使用反向传播处理鸢尾花(Iris)数据集

支持向量机

用支持向量机处理鸢尾花(Iris)数据集

结论


  • 下载Iris_Data-3.7 KB
  • 下载LogiticRegression_Iris-309.7 KB
  • 下载LogiticRegression_Iris_Test-37.6 KB
  • 下载反向传播-696.8 KB
  • 下载BackpropagationTest-1,001.2 KB
  • 下载SMO-850.3 KB
  • 下载SMO_Test_Iris-221.1 KB

介绍

在机器学习中,很多时候,任务是尝试创建一种能够根据一些输入数据给出特定结论的算法,并且该结论应基于一些较早收集的数据。此类任务的一个简单示例可能是找到学生学习考试所需的最少精力。例如,如果我们有7位学生的数据:学习时间和考试成功率(一个流行的例子:-

计算机程序应该计算出最短的学习时间来通过考试。

好。那只是一个例子。我不想打扰这些简单的事情(无论如何:解决方案应该在6.9小时左右)。

我认为,对于此类任务,有三种可能很有趣的重要算法:

   1、逻辑回归

   2、反向传播

   3、支持向量机

第四个是以上两个中的中和。

   4、梯度下降

四种算法都具有相同的功能:回答上述问题。但是他们这样做的方式是不同的,他们可以提供的答案也不同。一些比较非常有趣。

应用它们的过程都是相同的:使用具有一些输入特征x1x2x3等的现有数据集,以及稍后应猜测的属性y,并训练软件来识别输入特征并猜测属性正确。培训是针对所有人进行的迭代过程。

我实现了这三种算法,并使用它们处理了鸢尾花(Iris)数据集以进行比较。

鸢尾花(Iris)数据集

鸢尾花(Iris)数据集是处理此类问题的流行数据集。这是一个非常不错的数据集,包含150个鸢尾花的特征数据:它的花的大小。

它在一行中包含以下信息:

  1. 萼片长度(厘米)
  2. 萼片宽度(厘米)
  3. 花瓣长度(厘米)
  4. 花瓣宽度(厘米)
  5. 类:
    • Iris Setosa
    • Iris Versicolour
    • Iris Virginica

这个想法是根据花朵的大小来猜测正确的花朵类别。

对于每种算法,我都实现了训练应用程序和测试应用程序。我将150个样本分成135个样本进行训练,将每朵花中的5个样本进行测试。我知道,仅15个用于测试的样本并不过分。但是我认为这足以理解:-)

但首先,对算法进行一小段介绍:

梯度下降

梯度下降是一种算法,它试图近似一个函数,例如:

到给定的一组数据样本(x1x2x3…y)上。根据所需的输出,近似函数可以是线性或多项式,也可以是可微函数。通过这种近似,它可以猜测属性y未知的另一个数据样本(x1x2x3…?)的属性y。它以这种形式主要用于猜测实际值作为数据样本的属性。例如,如果我们有一些酒的特征数据,例如酒精含量,糖含量,酸度……并且该属性的质量等级介于110之间,则可以使用梯度下降算法来解决。

逼近函数fx)应该与属性y尽可能匹配。因此,可以通过计算所有训练样本的偏差来使fx)与属性相关,例如:

该偏差通常称为优化成本,它是对近似质量的验证。它越小,近似值越好。该成本应最小化,这可以通过梯度下降算法来完成。因此,建立了成本函数的梯度,并且从一个随机点开始,只要该梯度不为0,算法就会沿该梯度递减。移动是通过相对较小的步长来完成的:即所谓的学习率。这个学习率对收敛行为的影响很大。如果太大,算法将开始振荡,并且永远找不到最小值。如果它太小,该算法将入睡并且永远不会达到最小值。通常,它应该更小,必须处理更多的数据样本。

(有关梯度下降算法的详细说明,请参见http://www.mosismath.com/AI/GradientDescend.html。)

逻辑回归

逻辑回归是一种基于梯度下降(Gradient Descend)算法的算法,但其目的是逼近具有数字输出01的函数。其输出是概率。与梯度下降(Gradient Descend)相似,它尝试近似一个函数,例如:

但是,此函数被输入到所谓的触发函数中,该函数通常是Sigmoid函数。

gx)用于优化,并且应尽可能匹配属性y(值01)。现在,通过计算所有训练样本的偏差来使gx)与属性相关,例如:

对于较大的负输入值,S形函数为0,对于较大的正输入值,S形函数为1

sigmoid函数的形状

它将近似值的输出转换为介于01之间的概率,对于y = 0,该概率小于0.5;对于y = 1,该概率大于0.5。逻辑(Logistic)回归用于猜测数字属性(请参见http://www.mosismath.com/AI/LogisticRegression.html 以获得详细说明)。

使用逻辑回归处理鸢尾花(Iris)数据集

要使用逻辑回归处理鸢尾花(Iris)数据集,首先必须将任务分为三个部分:

该算法应首先检查数据样本是否属于Iris Versicolor类。如果不是,则应检查样品是否属于Iris Setosa,如果不是,则应最终检查是否属于Iris Virginica。看起来像:

这意味着我们必须训练3个设置并获得3个参数集,这些参数集可以轻松地从训练应用程序复制到测试应用程序中。好的,可以跳过最后一步,但是我认为这是一个不错的网络。:-)

需要注意的重要一点:最后一个结的输出为“No Iris Virginica”。这些数据永远不会激活。该算法只能区分训练有素的类别,并且由于不包括三个花中没有一个的类别,因此该算法永远不会将样本分类为这三个类别中的一个。

我们首先必须确定要使用的近似函数。由于花朵的测量仅在特定范围内适合一个特定的花朵类别,因此对于每个特征,近似函数应为二阶多项式,例如:

为了进行培训,我准备了三个数据集。一个用于第一个类,一个用于第二个类,最后一个类。

有了这些,我得到了以下参数:

Iris Versicolor

132772次迭代后的成本为0.0166

Iris Setosa

5148次迭代后的成本为0.00046

Iris Virginica

8653次迭代后的成本为0.0116

通过在测试应用程序中实现这些参数,可以以91%的平均概率识别出全部15个测试数据样本都是正确的,并且每次训练结果的成本都相对较小,非常酷。

反向传播

逻辑回归处理具有一个线性或多项式函数和一个触发函数的近似函数。反向传播处理由多个触发函数及其输入函数组成的复杂函数网,通常是前一层所有结的总和乘以一个线性因子:神经网络。该网络包含多个层:输入层采用一个数据样本的特征,一个或多个隐藏层包含逼近函数(包括触发器),输出层将结果传输到外部世界。这样就形成了多个结的网,通常,从一个层的每个结到下一层的每个结都有一个连接,每个连接都象征着每个结的后续结的输入函数,除了输入结,

具有2个隐藏层的神经网络

反向传播主要用于通过数字输出近似更复杂的功能。对于每个数据样本,它首先在网络中从左到右运行,并计算一个样本的输出值。然后,它从右到左运行,并根据其输出的偏差为该样本计算网络中参数的校正。这两个过程称为正向传播和反向传播,它们是针对每个数据样本执行的,并且在这样的循环结束时,通过所有这些校正的平均值来校正参数,并重复循环直到达到最小偏差为止。

(有关该算法的详细说明,请参见http://www.mosismath.com/AI/BackPropagation.html。)

使用反向传播处理鸢尾花(Iris)数据集

为了处理鸢尾花(Iris)数据集,我建立了如下神经网络:

具有四个输入,一个隐藏层和两个输出,它们以二进制形式给出花朵类别的编号,例如:

Iris-setosa => output 1 = 0 ; output 2 = 0Iris-versicolor => output 1 = 1 ; output 2 = 0Iris-virginica => output 1 = 1 ; output 2 = 1

基本上,仅使用一个输出并训练3种不同的设置是可能的。但是,使用更多的输出,反向传播算法效果更好。

使用此设置,我可以一次处理整个数据集。我只需要为培训设置两个输出即可。

使用此设置,反向传播算法将计算值:

与:

在固定的60000次迭代后,成本= 0.0145854

我在测试应用程序中对它们进行了硬编码,所有15个测试样本均被识别为正确的,平均概率为98%。这比逻辑回归算法要好得多。

支持向量机

支持向量机不同于上述算法。它不是近似函数,而是对数据进行分类。在一个非常简单的示例:如果有包含功能x1x2和所述属性y1且为-1的数据集,支持向量机尝试在y = 1的数据样本和y = -1的数据样本之间画一条线,如下所示:

在此样本图像上,红色点是y = -1的点,蓝色点是y = -1的点。黑线是分隔线。此外,还有两条灰色边距线。这3条线的放置方式应使边界线之间没有点,并且边界线之间的距离应尽可能大(向量uv的长度)。好的,这是一个非常简单且不常见的示例。但是支持向量机算法能够解决更多复杂的任务。在多维情况下,它不是在样本之间放置一条直线而是一条超平面。

原则上,支持向量机计算向量W和每个数据样本产生的偏移b

常数b将属性y乘以Wx的点积,其中x是所有输入要素的向量。

现在,通常情况比上图中显示的情况更为复杂。输入要素包含更多尺寸,并且分隔不能通过直线进行。支持向量机算法可以处理多维情况,并且实际上可以弯曲分隔线或超平面,因此使用了所谓的内核技巧。

(有关该算法的详细说明,请参见http://www.mosismath.com/AI/SMO.html。)

有几种不同的方法可以解决支持向量机的优化问题。我实现了John C. Platt的顺序最小优化算法。这是最简单的方法之一,而且效果很好。

用支持向量机处理鸢尾花(Iris)数据集

当支持向量机在一种设置中将数据分为两类时,必须将任务分成两部分。首先,我想对数据样本是否属于Iris Setosa类进行分类。如果不是,我想对它是否属于Iris Versicolor类进行分类,如果不是,则归为Iris Virginica类。因此,我必须准备两个数据集进行培训。支持向量机需要将属性y的值设置为1-1。因此,对于第一个训练数据集,我必须为Iris-Setosa类的所有数据样本设置属性= 1,为所有其他样本将属性设置为-1,第二个数据集仅包含Iris VersicolorIris Virginica的数据样本以及Iris Versicolor类获得属性= 1,其余所有属性为0 -1

由于可以得到很多支持向量作为培训的输出,因此我不能仅仅将它们从培训应用程序复制粘贴到测试应用程序。因此,它们是通过.Json文件传输的。第一个分类在6次迭代后产生10个支持向量,第二个分类在15次迭代后产生38个支持向量。

使用这些参数,所有测试样品都被认为是正确的。这里没有可能性。但是分离质量的衡量标准是fx)的值。此值不应介于1-1之间。这就是目标。但这在大多数情况下可能无法实现。因此,如果值不太接近0。测试应用程序在-0.6周围找到三个值。很好 :-)

结论

这三种算法的结果看起来都很简单明了。但这可能会误导一点。这三种算法都从一个特定的点开始,以迭代过程逼近其结果。他们正在寻找功能的最小值。此功能的复杂性对所有人而言都不尽相同,它们不仅会立即找到最佳结果。对于所有参数而言,开始参数的设置和迭代参数的微调都不是那么简单。

梯度下降算法使用或多或少的简单逼近函数。但是有人说,梯度下降算法收敛速度不是太快,而且容易振荡。我说,可以通过稍微不同的实现来避免很多情况。根据文献,逼近函数的偏移量在更新所有其他值的同时在同一个循环中更新。这相互影响,并使算法易于振荡。如果单独处理偏移量,则该算法收敛速度更快,并且振荡似乎更少(请参见http://www.mosismath.com/AI/LinregIterative.html)。这使得梯度下降算法成为解决许多问题的一种有趣的方法。

反向传播算法在机器学习中非常理想。但是它通常由一个以上的以S形函数形式存在的触发器函数组成。每一个这样的结都会给近似函数带来更多的复杂性和局部最小值。这意味着神经网络包含的结越多,算法越有可能悬挂在局部最小值而不是找到我们正在寻找的全局最小值。这使得很难为迭代设置最佳起点并找到全局最小值。这就是触发器的输入函数通常只是前面的结的线性乘法而不是多项式的总和的主要原因。这将给系统带来更大的复杂性。反向传播是一种非常强大的算法,但运行起来并不容易。

支持向量机算法是一种复杂而智能的算法。但是其成功很大程度上取决于正确选择和设置所使用的内核功能。如果对算法进行了微调,则可以输出大量的支持向量。因此,始终值得花一些时间为它找到最佳设置。利用鸢尾花(Iris)数据,它可以非常快速地收敛。并非总是如此。如果有许多数据样本和许多输入功能,再加上复杂的内核功能,则可能要花费一些时间才能完成计算。

相互比较,梯度下降算法无疑是最简单的解决方案(我喜欢:-)。但是,并不是每个数据集都可以由数学函数来近似,因为梯度下降算法(或反向传播)可以做到这一点。并不是每个数据集都可以通过支持向量机进行分类。因此,可能总是需要反复试验和微调。

这三种算法不能仅仅馈​​送一些数据,而是可以运行并产生有用的结果。它们都需要用户注意。但这正是使人工智能领域着迷的原因。在开始人工智能之前,总会需要一些人类智能。:-)


http://chatgpt.dhexx.cn/article/F2WtKm0X.shtml

相关文章

机器学习的方法

机器学习(machine learning)是一门多领域交叉学科,涉及了概率论、统计学、算法复杂度等多门学科。专门研究计算机怎样模拟或实现人的学习行为,它能够发现和挖掘数据所包含的潜在价值。机器学习已经成为了人工智能的一个分支,通过自学习算法,发现和挖掘数据潜在的规律,从…

机器学习中常见4种学习方法、13种算法

机器学习中常见4种学习方法、13种算法 一. 4大主要学习方法 1.1 监督式学习 在监督式学习下,输入数据被称为“训练数据”,每组训练数据有一个明确的标识或结果,如对防垃圾邮件系统中“垃圾邮件”“非垃圾邮件”,对手写数字识别中…

机器学习的13种算法和4种学习方法,推荐给大家

机器学习的算法很多。很多时候困惑人们都是,很多算法是一类算法,而有些算法又是从其他算法中延伸出来的。这里,我们从两个方面来给大家介绍,第一个方面是学习的方式,第二个方面是算法的分类。 一、4大主要学习方式 1…

好用的浏览器主页有哪些?

浏览器主页由于有个网址就能用,越来越受到年轻人的喜爱,而且浏览器主页非常的方便,我为什么说方便呢?举个例子哈,当我们在外边用电脑时,发现电脑自带的浏览器完全不符合自己的使用习惯,没有自己…

看完这6款浏览器的对比,你还使用国产浏览器吗

市面上的国产浏览器实在是太多了,曾几时,我也曾因为选择使用哪款浏览器而纠结过。是用搜狗浏览器好,还是360极速浏览器好,或者是多御浏览器?直到我学习了计算机,慢慢地开始使用国外浏览器,偶尔也…

目前主流浏览器市场及浏览器内核介绍

主流浏览器 以下的数据来源于国际知名的统计网站statcounter,数据的统计时间为2021年08月 – 2022年08月 主流电脑浏览器 全球 国内 主流手机浏览器 全球 国内 由此数据可看到,谷歌浏览器的市场份额占比遥遥领先 浏览器内核 1. Trident IE的内…

五大主流浏览器和四大浏览器内核

1.浏览器 任何上过网的用户对浏览器是再熟悉不过了,只是用户看到仅仅只是浏览器本身,却很少能看到浏览器最核心的部分—浏览器内核。从第一款libwww(Library WorldWideWeb)浏览器发展至今已经经历了无数竞争与淘汰了。现在国内常…

推荐几款我常用的浏览器

​首先先区分一下浏览器和搜索引擎,身边有的朋友经常将搜索引擎和浏览器搞混,找不到资源就换一个浏览器试试。 搜索引擎是运行在浏览器的基础上的,比如常见的搜索引擎有,www.sougou.com,www.baidu.com,www.google.com。这些都是搜…

五大主流浏览器概述

上过网的用户都会接触浏览器,但大多只会注意浏览器本身,很少关注浏览器最核心的部分-浏览器的内核。现在国内的浏览器多种多样,常见的浏览器有:IE、Firefox、QQ浏览器、Safari、Opera、Google Chrome、百度浏览器、搜狗浏览器、猎…

国外浏览器哪个好用?国外浏览器排名

国外浏览器哪个好用,应该是谷歌浏览器chrome了。国外浏览器使用最广泛的就是谷歌浏览器了,便捷快速纯净是其最大的特点,和很多国内浏览器满屏的广告相比,谷歌完全就是干净的,为网民上网而生,Netmarketshare…

五大浏览器的简单介绍

文章目录 前言一、五大浏览器的介绍(一)五大浏览器(二)五大浏览器的开发公司(三)五大浏览器的内核 总结 前言 本文主要介绍了现在人们所常说的五大浏览器以及这五大浏览器的开发公司,同时也简单…

5大主流浏览器的差异

任何上过网的用户对浏览器是再熟悉不过了。只是用户看到仅仅只是浏览器本身,却很少能看到浏览器最核心的部分—浏览器内核。从第一款libwww(Library WorldWideWeb)浏览器发展至今已经经历了无数竞争与淘汰了。现在国内常见的浏览器有&#xf…

什么浏览器最好用,五款浏览器对比那个最好?

浏览器,作为主机与互联网连接的主要通道,在我们日常使用电脑的过程中扮演着重要角色。 使用浏览器,逛论坛,观看视频,下载资源,虽然有专门的软件可以帮我们满足这些需求,但是绝大多数的时候我们…

五大浏览器哪个最好用。。。

世界上主流的浏览器有五种,IE、Opera、Google Chrome、Safari、Firefox哪个最好用、最快呢?我们一起来看看。 1、IE浏览器: IE是WINDOWS自带绑定的,一般人都在用,经测试也是最差的一款浏览器。 2、Opera浏览器 Opera 界面非常漂亮…

五大主流浏览器及四大内核

目前最为主流浏览器有五大款 1、IE浏览器(Internet explorer)2、火狐浏览器(Firefox)3、谷歌浏览器(Chrome)4、苹果浏览器(Safari)5、欧朋浏览器(Opera) 浏览…

五大主流浏览器概况

什么叫浏览器? 浏览器是用来显示在万维网或局域网等内的文字、图像及其他信息的软件,它还可以让用户与这些文件进行交互操作。浏览器是电脑上网时经常使用到的应用软件,浏览器正是Internet时代的产物,随着电脑操作系统的普及、Int…

Bootrap 项目实战(微金所前端首页)第一部分

微金所前端首页成果图:(这是本人自己按照微金所官网首页,采用Bootrap,JS,JQuery,css制作的网页效果图,在第二部分我会公布网页源代码) 如需网页源代码,请在下方留言,备注你的qq邮箱。…

发现一个移动端app开发神器

作为一个移动端的开发人员,为了不让自己所被淘汰,一直对移动端的开发的潮流进行着关注。真心感觉移动端开发的技术变革是越来越快,前些年还如火如荼的Android和Ios原生开发,这两年不说消声灭迹,市场前景也是大不如前了…

移动端知识整理

基础知识 1.1 屏幕 移动设备与PC设备最大的差异在于屏幕,这主要体现在屏幕尺寸和屏幕分辨率两个方面。 通常我们所指的屏幕尺,实际上指的是屏幕对角线的长度(一般用英寸来度量)如下图所示 而分辨率则一般用像素来度量&#xff…

bootstrap案例解析

一、由于案例比较长我们先简单分析首页中header 部分的制做情况。 <!DOCTYPE html><html lang"zh-CN"> <head> <meta charset"utf-8"> 二、下面表示用最新的的浏览器解析网站代码&#xff0c;为了保证网站解析效果的完整性 <…