https://cloud.tencent.com/developer/article/1662814
机器学习中算法是什么?
机器学习中的“算法”是在数据上运行以创建机器学习模型的过程;
机器学习算法执行“模式识别”,算法从数据中“学习”,或者对数据集进行“拟合”
机器学习算法有很多,比如,
分类的算法,如K-近邻算法;回归的算法,线性回归;聚类的算法,如K-均值算法
下面是机器学习算法的例子:
线性回归
逻辑回归
决策树
人工神经网络
K-最近邻
K-均值
你可以把机器学习算法想象成计算机科学中的任何其他算法,比如冒泡,,等,
机器学习算法有很多特性:
机器学习算法可以用数学和伪代码来描述;
可以对机器学习算法的效率进行分析和描述
机器学习算法可以用任何一种现代编程语言来实现
机器学习实践者可以在他们的项目中使用标准的机器学习算法。这就像计算机科学领域的其他领域一样,学者可以设计出全新的排序算法,程序员可以在应用程序中使用标准的排序算法。
你还可能看到多个机器学习算法实现,并在一个具有标准API的库中提供,一个流行的例子是sklearn库,他在Pyhton中提供了许多分类,回归和聚类学习算法的实现。
机器学习中的“模型”是什么?
机器学习中的“模型”是运行在数据上的机器学习算法的输出。
模型表示机器学习算法所学到的内容。
模型是在训练数据上运行机器学习算法后保存的“东西”,它表示用于预测所需的规则,数字和任何其他特定于算法的数据结构
例如:
线性回归算法的结果是一个由具有特定值的稀疏向量组成的模型
决策树算法的结果是一个具有特定值的if-then语句树组成的模型
神经网络/反向传播/梯度下降算法一起产生一个由具有特定的向量值或权重矩阵和特定值的图结构组成的模型
机器学习模型对于初学者来说更具挑战性,因为它与计算机科学中的其他算法没有明确的类比。
例如,排序算法的排序列表输出并不是真正的模型。
最好的类比是将机器学习模型想象成一个“程序”
机器学习模型“程序”由数据和利用数据进行预测的过程组成
例如:考虑线性回归算法和由此产生的模型。该模型由系数(数据)向量组成,这些系数(数据)于作为输出的一行新数据相乘并求和,以便进行预测(预测过程)。
我们将数据保存为机器学习模型,以备后用。
我们经常使用机器学习库提供的机器学习模型的预测过程。有时候,我们可以自己实现预测过程作为我们应用程序的一部分。考虑到大多数预测过程都非常简单。
算法与模型框架
现在我们已经熟悉了机器学习的“算法”和机器学习的“模型”。
具体来说,就是对数据运行算法来创建模型。
机器学习 =>机器学习模型
模型由数据和如何使用数据对新数据进行预测的过程组成。如果你愿意,也可以将这一过程视为一种预测算法;
机器学习模型 == 模型数据+预测算法
通常情况下,算法是某种优化程序,即在训练数据集上使模型(数据 + 预测算法)的误差最小化。
机器学习是自动编程,我们真正想要的是一个机器学习的“模型”,而“算法”就是我们获得模型的路径。机器学习技术用于解决其他方法无法有效或高效解决的问题。
例如,我们需要将电子邮件分为垃圾邮件和非垃圾邮件,我们需要一个软件程序来完成此任务。
我们可以手工查看大量的电子邮件,然后写if else语句来完成筛选,但这种效果不好,我们可以使用机器学习技术来解决这个问题。具体来说,像朴素贝叶斯这样的算法就可以从大量的历史邮件样本数据集中学习如何将邮件分类为垃圾邮件和非垃圾邮件。
我们不想要“朴素的贝叶斯”,我们想要朴素贝叶斯给出的模型,就是我们可以用来对邮件进行分类的模型(概率向量和使用概率的预测算法)。我们想要的是模型,而不是用来创建模型的算法。
从这个意义上说,机器学习模型是一个由机器学习算法自动编写,或创建,或学习的程序,用来解决我们的问题。
作为开发人员,我们对人工智能意义上的机器学习算法的“学习”不太感兴趣,我们并不关心模拟学习的过程。相反,我们更看重的是机器学习算法提供的自动编程能力更感兴趣。我们希望能够有效的创建一个模型,并将其融入到我们的软件项目当中。
机器学习算法执行自动编程,而机器学习模型是为我们创建的程序。