福建漳州网站建设公司,网站开发需要什么专业知识,辛集建设网站,济南seo作者#xff1a;王同学 来源#xff1a;投稿 编辑#xff1a;学姐 1. 基本概念
1.1 KNN
k近邻法#xff08;k-nearest neighbor#xff0c;k-NN#xff09;是一种基本分类与回归方法。
k近邻法的输入为实例的特征向量对应于特征空间的点#xff1b;输出为实例的类别王同学 来源投稿 编辑学姐 1. 基本概念
1.1 KNN
k近邻法k-nearest neighbork-NN是一种基本分类与回归方法。
k近邻法的输入为实例的特征向量对应于特征空间的点输出为实例的类别可以取多类。
k近邻法假设给定一个训练数据集其中的实例类别已定。分类时对新的实例根据其k个最近邻的训练实例的类别通过多数表决等方式进行预测。因此k近邻法不具有显式的学习过程。
k 近邻法1968年由Cover和Hart提出。
1.2 K-means
K-means是一种聚类方法聚类是针对给定的样本依据它们特征的相似度或距离将其归并到若干个“类”或“簇”的数据分析问题。
聚类的目的是通过得到的类或簇来发现数据的特点或对数据进行处理。
聚类属于无监督学习因为只是根据样本的相似度或距离将其进行归类而类或簇事先并不知道。
1.3 KNN 和 K-means对比
KNN 分类算法 监督学习 数据集是带Label的数据 没有明显的训练过程基于Memory-based learning K值含义 - 对于一个样本X要给它分类首先从数据集中在X附近找离它最近的K个数据点将它划分为归属于类别最多的一类
K-means 聚类算法 非监督学习 数据集是无Label杂乱无章的数据 有明显的训练过程 K值含义- K是事先设定的数字将数据集分为K个簇需要依靠人的先验知识
2. KNN原理、实现过程
2.1 KKN原理
KNN算法最简单粗暴的就是将预测点与所有点距离进行计算然后保存并排序选出前面K个值看看哪些类别比较多则预测的点属于哪类。
2 KNN过程
对未知类别属性的数据集中的每个点依次执行以下操作:
(1) 计算已知类别数据集中的点与当前点之间的距离;
(2) 按照距离递增次序排序;
(3) 选取与当前点距离最小的k个点;
(4) 确定前k个点所在类别的出现频率;
(5) 返回前k个点出现频率最高的类别作为当前点的预测分类
2.2.1 距离度量1 2.2.2 K值选择3
2.2.2.1 K值选择过小 如果选择较小的k值就相当于用较小的邻域中的训练实例进行预测“学习”的近似误差approximation error会减小只有与输入实例较近的相似的训练实例才会对预测结果起作用。 但缺点是“学习”的估计误差estimation error会增大预测结果会对近邻的实例点非常敏感。如果邻近的实例点恰巧是噪声预测就会出错。 换句话说k 值的减小就意味着整体模型变得复杂容易发生过拟合。
2.2.2.2 K值选择过大 如果选择较大的k值就相当于用较大邻域中的训练实例进行预测。 优点是可以减少学习的估计误差但缺点是学习的近似误差会增大。这时与输入实例较远的不相似的训练实例也会对预测起作用使预测发生错误。 换句话说k值的增大就意味着整体的模型变得简单。
如果kN那么无论输入实例是什么都将简单地预测它属于在训练实例中最多的类。这时模型过于简单完全忽略训练实例中的大量有用信息是不可取的。
2.2.2.3 那么该如何确定K取多少值好呢
答案是通过交叉验证将样本数据按照一定比例拆分出训练用的数据和验证用的数据,比如64拆分出部分训练数据和验证数据从选取一个较小的K值开始不断增加K的值然后计算验证集合的方差最终找到一个比较合适的K值。
2.2.3 确定前k个点所在类别的出现频率4
eg.当K取4时候包含3个红点和1个蓝点 2.2.4 返回前k个点出现频率最高的类别作为当前点的预测分类5
因为3/41/4,所以预测的点的类别属于红色KNN完成。
3.K-means原理、实现过程
3.1 K-means原理
K-Means算法的特点是类别的个数是人为给定的如果让机器自己去找类别的个数通过一次次重复这样的选择质心计算距离后分类-再次选择新质心的流程直到我们分组之后所有的数据都不会再变化了也就得到了最终的聚合结果。
3.2K-means过程
1随机选取k个质心k值取决于你想聚成几类
2计算样本到质心的距离距离质心距离近的归为一类分为k类
3求出分类后的每类的新质心
4再次计算计算样本到新质心的距离距离质心距离近的归为一类
5判断新旧聚类是否相同如果相同就代表已经聚类成功如果没有就循环2-4步骤直到相同
3.2.1 随机选取k个质心k值取决于你想聚成几类
假设我想聚4类那我们随机选取四个五角星作为质心大哥 3.2.2 计算样本到质心的距离距离质心距离近的归为一类分为k类
计算除质心外的样本的欧式距离样本离哪个质心近该样本就跟哪个质心
换句话说就是小圆点是小弟五角星是大哥小弟离哪个大哥近那么这个小弟就跟哪个大哥混。
3.2.3 求出分类后的每类的新质心
上面我们已经分为4类了这一步我们需要从4类中重新选出新的质心新的大哥。
3.2.4 再次计算计算样本到新质心的距离距离质心距离近的归为一类
同样用上面方法计算样本到质心新产生的大哥的欧式距离框起来的就是新大哥。 3.2.5 判断新旧聚类是否相同
当发现聚类情况并没有变化这就说明我们的计算收敛已经结束了不需要继续进行分组了最终数据成功按照相似性分成了4组。即红、橙、绿、蓝完成聚类。
4.总结:
4.1KNN k 近邻法是基本且简单的分类与回归方法。k 近邻法的基本做法是∶ 对给定的训练实例点和输入实例点首先确定输入实例点的k个最近邻训练实例点然后利用这k个训练实例点的类的多数来预测输入实例点的类。 k 近邻模型对应于基于训练数据集对特征空间的一个划分。k 近邻法中当训练集、距离度量、k值及分类决策规则确定后其结果唯一确定。 k 近邻法三要素∶距离度量、k 值的选择和分类决策规则。常用的距离度量是欧氏距离及更一般的L。距离。k值小时k 近邻模型更复杂k值大时k 近邻模型更简单。 k 值的选择反映了对近似误差与估计误差之间的权衡通常由交叉验证选择最优的k。常用的分类决策规则是多数表决 对应于经验风险最小化。 k 近邻法的实现需要考虑如何快速搜索k个最近邻点。kd树是一种便于对k 维空间中的数据进行快速检索的数据结构。kd树是二叉树表示对k维空间的一个划分其每个结点对应于k维空间划分中的一个超矩形区域。利用kd树可以省去对大部分数据点的搜索从而减少搜索的计算量。
4.2K-means 聚类是针对给定的样本依据它们属性的相似度或距离将其归并到若干个“类”或“簇”的数据分析问题。一个类是样本的一个子集。直观上相似的样本聚集在同类不相似的样本分散在不同类。 距离或相似度度量在聚类中起着重要作用。 常用的距离度量有闵可夫斯基距离包括欧氏距离、曼哈顿距离、切比雪夫距离以及马哈拉诺比斯距离。常用的相似度度量有相关系数、夹角余弦。 用距离度量相似度时距离越小表示样本越相似用相关系数时相关系数越大表示样本越相似。 k 均值聚类是常用的聚类算法有以下特点。基于划分的聚类方法类别数k 事先指定以欧氏距离平方表示样本之间的距离或相似度以中心或样本的均值表示类别以样本和其所属类的中心之间的距离的总和为优化的目标函数得到的类别是平坦的、非层次化的算法是迭代算法不能保证得到全局最优。 k均值聚类算法首先选择k个类的中心将样本分到与中心最近的类中得到一个聚类结果然后计算每个类的样本的均值作为类的新的中心重复以上步骤直到收敛为止。
5.代码实战
5.1 KNN实战
1首先自制一个数据集: (2)导入工具包
import pandas as pd
from sklearn.neighbors import KNeighborsClassifier (3)读取数据
datapd.read_excel(knndata.xlsx)
data #打印出来看一下 4划分数据集
train_featuredata.iloc[0:9,1:4]#红色部分
train_labeldata.iloc[0:9,4:5]#蓝色部分
test_featuredata.iloc[9:10,1:4]#绿色部分(5)建模预测
knnKNeighborsClassifier(n_neighbors4)#n_neighbors4即指定K值为4
knn.fit(train_feature,train_label)#模型训练
knn.predict(test_feature)#模型预测输出 5.2 K-means代码实战
1自制个数据集 2导入工具包
import pandas as pd
from sklearn.cluster import KMeans3读取数据
datapd.read_excel(kmeans.xlsx)
data#打印看一下4划分数据集
train_featuredata.iloc[0:10,1:4]#红色部分5建模预测
kmeans KMeans(n_clusters3)#n_clusters3即指定划分为3个类型
kmeans.fit(train_feature)#模型训练
label_kmeans kmeans.predict(train_feature)#模型预测
label_kmeans输出 关注下方卡片《学姐带你玩AI》
ACLCVPR1000篇论文等你来拿
回复“ACL”或“CVPR”免费领
码字不易欢迎大家点赞评论收藏