十大经典机器学习方法
扫描二维码
随时随地手机看文章
现在,让我们来进一步了解机器学习算法,它是实现人工智能的核心。
1. 监督学习(Supervised Learning)
在监督学习中,我们有一组带有标签的数据,其中包含了输入和输出的对应关系。我们的目标是通过训练模型,使其能够根据输入预测正确的输出。常见的监督学习算法包括线性回归、逻辑回归和支持向量机(SVM)等。
2. 无监督学习(Unsupervised Learning)
与监督学习不同,无监督学习中的数据没有标签。我们的目标是通过模型发现数据中的隐藏模式和结构。无监督学习算法通常用于聚类、降维和异常检测等任务。常见的无监督学习算法包括K均值聚类、主成分分析(PCA)和异常检测算法等。
3. 强化学习(Reinforcement Learning)
强化学习是一种通过与环境进行交互来训练模型的学习方法。在强化学习中,模型会根据环境的反馈来调整自己的行为,以获得最大的奖励。这种学习方式常用于制定机器人的决策策略和自动驾驶等领域。
4. 深度学习(Deep Learning)
深度学习是一种基于人工神经网络的机器学习方法。它模仿人脑神经元之间的连接方式,通过多层的神经网络来进行计算和学习。深度学习在图像识别、语音识别和自然语言处理等领域取得了巨大的成功。
5. 迁移学习(Transfer Learning)
迁移学习是一种将已经训练好的模型应用于新任务的学习方法。通过迁移学习,我们可以利用已有模型的知识和经验,减少新任务的训练时间和数据需求。这种学习方式常用于数据稀缺或任务相似的情况下。
以上只是机器学习算法的一小部分,每种算法都有自己的特点和适用场景。作为初学者,建议你从最基础的算法开始学习,逐步掌握它们的原理和实现方法。在实践中,多尝试不同的算法,并根据数据和任务的特点选择最合适的算法。
1. 线性回归
在统计学和机器学习领域,线性回归可能是最广为人知也最易理解的算法之一。
预测建模主要关注的是在牺牲可解释性的情况下,尽可能最小化模型误差或做出最准确的预测。我们将借鉴、重用来自许多其它领域的算法(包括统计学)来实现这些目标。
线性回归模型被表示为一个方程式,它为输入变量找到特定的权重(即系数 B),进而描述一条最佳拟合了输入变量(x)和输出变量(y)之间关系的直线。
线性回归
例如: y = B0 + B1 * x
我们将在给定输入值 x 的条件下预测 y,线性回归学习算法的目的是找到系数 B0 和 B1 的值。
我们可以使用不同的技术来从数据中学习线性回归模型,例如普通最小二乘法的线性代数解和梯度下降优化。
线性回归大约有 200 多年的历史,并已被广泛地研究。在使用此类技术时,有一些很好的经验规则:我们可以删除非常类似(相关)的变量,并尽可能移除数据中的噪声。线性回归是一种运算速度很快的简单技术,也是一种适合初学者尝试的经典算法。
2. Logistic 回归
Logistic 回归是机器学习从统计学领域借鉴过来的另一种技术。它是二分类问题的首选方法。
像线性回归一样,Logistic 回归的目的也是找到每个输入变量的权重系数值。但不同的是,Logistic 回归的输出预测结果是通过一个叫作「logistic 函数」的非线性函数变换而来的。
logistic 函数的形状看起来像一个大的「S」,它会把任何值转换至 0-1 的区间内。这十分有用,因为我们可以把一个规则应用于 logistic 函数的输出,从而得到 0-1 区间内的捕捉值(例如,将阈值设置为 0.5,则如果函数值小于 0.5,则输出值为 1),并预测类别的值。
Logistic 回归
由于模型的学习方式,Logistic 回归的预测结果也可以用作给定数据实例属于类 0 或类 1 的概率。这对于需要为预测结果提供更多理论依据的问题非常有用。
与线性回归类似,当删除与输出变量无关以及彼此之间非常相似(相关)的属性后,Logistic 回归的效果更好。该模型学习速度快,对二分类问题十分有效。
3. 线性判别分析
Logistic 回归是一种传统的分类算法,它的使用场景仅限于二分类问题。如果你有两个以上的类,那么线性判别分析算法(LDA)是首选的线性分类技术。
LDA 的表示方法非常直接。它包含为每个类计算的数据统计属性。对于单个输入变量而言,这些属性包括:
每个类的均值。
所有类的方差。
线性判别分析
预测结果是通过计算每个类的判别值、并将类别预测为判别值最大的类而得出的。该技术假设数据符合高斯分布(钟形曲线),因此最好预先从数据中删除异常值。LDA 是一种简单而有效的分类预测建模方法。
4. 分类和回归树
决策树是一类重要的机器学习预测建模算法。
决策树可以被表示为一棵二叉树。这种二叉树与算法设计和数据结构中的二叉树是一样的,没有什么特别。每个节点都代表一个输入变量(x)和一个基于该变量的分叉点(假设该变量是数值型的)。
决策树
决策树的叶子结点包含一个用于做出预测的输出变量(y)。预测结果是通过在树的各个分叉路径上游走,直到到达一个叶子结点并输出该叶子结点的类别值而得出。
决策树的学习速度很快,做出预测的速度也很快。它们在大量问题中往往都很准确,而且不需要为数据做任何特殊的预处理准备。
5. 朴素贝叶斯
朴素贝叶斯是一种简单而强大的预测建模算法。
该模型由两类可直接从训练数据中计算出来的概率组成:1)数据属于每一类的概率;2)给定每个 x 值,数据从属于每个类的条件概率。一旦这两个概率被计算出来,就可以使用贝叶斯定理,用概率模型对新数据进行预测。当你的数据是实值的时候,通常假设数据符合高斯分布(钟形曲线),这样你就可以很容易地估计这些概率。
贝叶斯定理
朴素贝叶斯之所以被称为「朴素」,是因为它假设每个输入变量相互之间是独立的。这是一种很强的、对于真实数据并不现实的假设。不过,该算法在大量的复杂问题中十分有效。
6. K 最近邻算法
K 最近邻(KNN)算法是非常简单而有效的。KNN 的模型表示就是整个训练数据集。这很简单吧?
对新数据点的预测结果是通过在整个训练集上搜索与该数据点最相似的 K 个实例(近邻)并且总结这 K 个实例的输出变量而得出的。对于回归问题来说,预测结果可能就是输出变量的均值;而对于分类问题来说,预测结果可能是众数(或最常见的)的类的值。
关键之处在于如何判定数据实例之间的相似程度。如果你的数据特征尺度相同(例如,都以英寸为单位),那么最简单的度量技术就是使用欧几里得距离,你可以根据输入变量之间的差异直接计算出该值。
K 最近邻
KNN 可能需要大量的内存或空间来存储所有数据,但只有在需要预测时才实时执行计算(或学习)。随着时间的推移,你还可以更新并管理训练实例,以保证预测的准确率。
使用距离或接近程度的度量方法可能会在维度非常高的情况下(有许多输入变量)崩溃,这可能会对算法在你的问题上的性能产生负面影响。这就是所谓的维数灾难。这告诉我们,应该仅仅使用那些与预测输出变量最相关的输入变量。
7. 学习向量量化
KNN 算法的一个缺点是,你需要处理整个训练数据集。而学习向量量化算法(LVQ)允许选择所需训练实例数量,并确切地学习这些实例。