经典机器学习算法总结

简介: 经典机器学习算法总结

KNN 算法

K 近邻算法(KNN)是一种基本分类和回归方法。KNN 算法的核心思想是如果一个样本在特征空间中的 k 个最相邻的样本中的大多数属于一个类别,那该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分类样本所属的类别。 如下图:

网络异常,图片无法展示
|


KNN 中,通过计算对象间距离来作为各个对象之间的非相似性指标,避免了对象之间的匹配问题,在这里距离一般使用欧氏距离或曼哈顿距离,公式如下:

网络异常,图片无法展示
|


同时,KNN通过依据 k 个对象中占优的类别进行决策,而不是单一的对象类别决策,这两点就是KNN算法的优势。

k 值的选取

  • k 值较小,模型会变得复杂,容易发生过拟合
  • k 值较大,模型比较简单,容易欠拟合

所以 k 值得选取也是一种调参?

KNN 算法思路

KNN 思想就是在训练集中数据和标签已知的情况下,输入测试数据,将测试数据的特征与训练集中对应的特征进行相互比较,找到训练集中与之最为相似的前 K 个数据,则该测试数据对应的类别就是K个数据中出现次数最多的那个分类,其算法的描述为:

  1. 计算测试数据与各个训练数据之间的距离;
  2. 按照距离的递增关系进行排序;
  3. 选取距离最小的 K 个点;
  4. 确定前 K 个点所在类别的出现频率;
  5. 返回前 K 个点中出现频率最高的类别作为测试数据的预测分类。


支持向量机算法

机器学习中的算法(2)-支持向量机(SVM)基础

支持向量机简述

  • 支持向量机(Support Vector Machines, SVM)是一种二分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;支持向量机还包括核技巧,这使其成为实质上的非线性分类器。
  • SVM 的学习策略是找到最大间隔(两个异类支持向量到超平面的距离之和 γ=2∣∣w\gamma = \frac{2}{||w}γ=w2 称为“间隔”),可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。
  • SVM 的最优化算法是求解凸二次规划的最优化算法。


SVM 基本型

min12∣∣w∣∣2min \frac{1}{2}||w||^2min21w2s.t.yi(wTxi+b)≥1,i=1,2,...,ms.t. y_{i}(w^Tx_i + b) \geq 1, i = 1,2,...,ms.t.yi(wTxi+b)1,i=1,2,...,m

SVM 的最优化算法是一个凸二次规划(convex quadratic programming)问题,对上式使用拉格朗日乘子法可转化为对偶问题,并优化求解。

对偶问题求解

SVM 基本型公式的每条约束添加拉格朗日乘子 αi≥0\alpha_i \geq 0αi0,则式子的拉格朗日函数如下:

L(w,b,a)=12∣∣w∣∣2−∑i=1nαi(yi(wTxi+b)−1)L(w,b,a) = \frac 1 2||w||^2 - \sum{i=1}{n} \alpha_i (y_i(w^Tx_i+b) - 1)L(w,b,a)=21w2i=1nαi(yi(wTxi+b)1)


经过推导(参考机器学习西瓜书),可得 SVM 基本型的对偶问题:

max⁡α∑i=1m−12∑i=1m∑j=1mαiαjyiyjxT_ixj\max\limits_{\alpha} \sum_{i=1}^{m}-\frac{1}{2} \sum_{i=1}^{m} \sum_{j=1}^{m}\alpha_i \alpha_j y_i y_j x^{T}\_{i} x_jαmaxi=1m21i=1mj=1mαiαjyiyjxT_ixj

s.t.∑i=1m=αiyi=0s.t. \sum_{i=1}^{m} = \alpha_{i}y_{i} = 0s.t.i=1m=αiyi=0

αi≥0,i=1,2,...,m\alpha_{i}\geq 0, i=1,2,...,mαi0,i=1,2,...,m

继续优化该问题,有 SMO 方法,SMO 的基本思路是先固定 αi\alpha_iαi 之外的的所有参数,然后求 αi\alpha_iαi 上的极值。


K-means 聚类算法

分类与聚类算法

  • 分类简单来说,就是根据文本的特征或属性,划分到已有的类别中。也就是说,这些类别是已知的,通过对已知分类的数据进行训练和学习,找到这些不同类的特征,再对未分类的数据进行分类。
  • 聚类,就是你压根不知道数据会分为几类,通过聚类分析将数据或者说用户聚合成几个群体,那就是聚类了。聚类不需要对数据进行训练和学习。
  • 分类属于监督学习,聚类属于无监督学习。常见的分类比如决策树分类算法、贝叶斯分类算法等聚类的算法最基本的有系统聚类,K-means 均值聚类。

K-means 聚类算法

聚类的目的是找到每个样本 xxx 潜在的类别 yyy,并将同类别 yyy 的样本 xxx 放在一起。在聚类问题中,假定训练样本是 x1,...,xm{x^1,...,x^m}x1,...,xm,每个 xi∈Rnx^i \in R^nxiRn,没有 yyyK-means 算法是将样本聚类成 kkk 个簇(cluster),算法过程如下:

  1. 随机选取 kkk 个聚类中心(cluster centroids)为 μ1,μ1,...,μk∈Rn\mu_1, \mu_1,...,\mu_k \in R^nμ1,μ1,...,μkRn
  2. 重复下面过程,直到质心不变或者变化很小:
  • 对于每一个样例 iii ,计算其所属类别:ci=argminj∣∣xi−μj∣∣2c^i = \underset{j}{argmin}||x^i - \mu_j||^2ci=jargminxiμj2
  • 对于每一个类 jjj,重新计算该类的质心:μj=∑i=1m1ci=jxi∑i=1m1ci=j\mu_j = \frac {\sum_{i=1}^{m} 1{c^i} = jx^{i}} { \sum_{i=1}^{m}1 c^{i} = j}μj=i=1m1ci=ji=1m1ci=jxi

KKK 是我们事先给定的聚类数,cic^ici 代表样例 iiikkk 个类中距离最近的那个类,cic^ici 的值是 111kkk 中的一个。质心 μj\mu_jμj 代表我们对属于同一个类的样本中心点的猜测。

参考资料

K-means聚类算法


相关文章
|
13天前
|
机器学习/深度学习 存储 人工智能
【数据挖掘】2022年2023届秋招知能科技公司机器学习算法工程师 笔试题
本文是关于2022-2023年知能科技公司机器学习算法工程师岗位的秋招笔试题,包括简答题和编程题,简答题涉及神经网络防止过拟合的方法、ReLU激活函数的使用原因以及条件概率计算,编程题包括路径行走时间计算和两车相向而行相遇时间问题。
36 2
【数据挖掘】2022年2023届秋招知能科技公司机器学习算法工程师 笔试题
|
13天前
|
机器学习/深度学习 数据采集 数据可视化
基于python 机器学习算法的二手房房价可视化和预测系统
文章介绍了一个基于Python机器学习算法的二手房房价可视化和预测系统,涵盖了爬虫数据采集、数据处理分析、机器学习预测以及Flask Web部署等模块。
基于python 机器学习算法的二手房房价可视化和预测系统
|
2天前
|
机器学习/深度学习 算法 搜索推荐
【机器学习】机器学习的基本概念、算法的工作原理、实际应用案例
机器学习是人工智能的一个分支,它使计算机能够在没有明确编程的情况下从数据中学习并改进其性能。机器学习的目标是让计算机自动学习模式和规律,从而能够对未知数据做出预测或决策。
7 2
|
13天前
|
机器学习/深度学习 人工智能 算法
【数据挖掘】2022年2023届秋招奇虎360机器学习算法工程师 笔试题
本文提供了奇虎360公司2022年秋招机器学习算法工程师岗位的笔试题内容,包括选择题和编程题,涉及概率统计、数据结构、机器学习、计算机组成原理等多个领域。
39 5
|
9天前
|
机器学习/深度学习 数据采集 人工智能
理解并应用机器学习算法:从技术基础到实践应用
【8月更文挑战第10天】机器学习算法的应用已经深入到我们生活的方方面面,理解和掌握机器学习算法对于数据科学家、工程师乃至普通从业者来说都至关重要。通过本文的介绍,希望大家能够对机器学习有一个基本的认识,并学会如何将其应用于实际问题中。当然,机器学习是一个不断发展和演变的领域,只有不断学习和实践,才能跟上时代的步伐。
|
12天前
|
机器学习/深度学习 自然语言处理 算法
利用机器学习算法进行自动化测试
利用机器学习算法进行自动化测试
|
13天前
|
机器学习/深度学习 算法 数据挖掘
【数据挖掘】2022年2023届秋招宏瓴科技公司机器学习算法工程师 笔试题
关于宏瓴科技有限公司2022-2023年秋招机器学习算法工程师岗位的笔试题目及作者个人对部分题目的解答尝试,涉及贝叶斯误差和贝叶斯最优分类器的概念、贝叶斯误差的重要性和估算方法,以及如何有效利用训练集和测试集进行深度学习模型训练的数据集划分策略。
34 4
|
13天前
|
机器学习/深度学习 算法 数据中心
【机器学习】面试问答:PCA算法介绍?PCA算法过程?PCA为什么要中心化处理?PCA为什么要做正交变化?PCA与线性判别分析LDA降维的区别?
本文介绍了主成分分析(PCA)算法,包括PCA的基本概念、算法过程、中心化处理的必要性、正交变换的目的,以及PCA与线性判别分析(LDA)在降维上的区别。
29 4
|
13天前
|
机器学习/深度学习 运维 算法
深入探索机器学习中的支持向量机(SVM)算法:原理、应用与Python代码示例全面解析
【8月更文挑战第6天】在机器学习领域,支持向量机(SVM)犹如璀璨明珠。它是一种强大的监督学习算法,在分类、回归及异常检测中表现出色。SVM通过在高维空间寻找最大间隔超平面来分隔不同类别的数据,提升模型泛化能力。为处理非线性问题,引入了核函数将数据映射到高维空间。SVM在文本分类、图像识别等多个领域有广泛应用,展现出高度灵活性和适应性。
67 2
|
12天前
|
机器学习/深度学习 数据采集 数据可视化
基于机器学习的一线城市租房价格预测分析与实现,实现三种算法预测
本文通过数据采集、处理、特征选择和机器学习建模,对一线城市租房价格进行预测分析,比较了随机森林、一元线性回归和多元线性回归模型,并发现随机森林模型在预测租房价格方面表现最佳,为租房市场参与者提供决策支持。

热门文章

最新文章