KNN算法模型及优缺点

KNN算法的数学模型如下:

设训练集 T = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x n , y n ) T={(x_1,y_1),(x_2,y_2),...,(x_n,y_n)} T=(x1,y1),(x2,y2),...,(xn,yn),其中 x i ∈ R n x_i\in R^n xiRn为样本特征向量, y i ∈ c 1 , c 2 , . . . , c k y_i\in {c_1,c_2,...,c_k} yic1,c2,...,ck为样本的类别, i = 1 , 2 , . . . , n i=1,2,...,n i=1,2,...,n k k k为类别数。

对于一个新样本 x x x,KNN算法的流程如下:

计算新样本 x x x与训练集中各个样本 x i x_i xi的距离 d i s t ( x , x i ) dist(x,x_i) dist(x,xi)

根据距离值,选取距离 x x x最近的 k k k个样本 x i 1 , x i 2 , . . . , x i k x_{i_1},x_{i_2},...,x_{i_k} xi1,xi2,...,xik,它们的类别分别为 y i 1 , y i 2 , . . . , y i k y_{i_1},y_{i_2},...,y_{i_k} yi1,yi2,...,yik

统计 k k k个样本的类别出现频率,选择出现频率最高的类别作为新样本 x x x的类别。

数学模型即为:

y = a r g max ⁡ c j ∑ x i ∈ N k ( x ) I ( y i = c j ) y=arg\max_{c_j}\sum_{x_i\in N_k(x)}I(y_i=c_j) y=argcjmaxxiNk(x)I(yi=cj)

其中, N k ( x ) N_k(x) Nk(x)表示距离 x x x最近的 k k k个样本, I I I为指示函数,若 y i = c j y_i=c_j yi=cj,则 I ( y i = c j ) = 1 I(y_i=c_j)=1 I(yi=cj)=1,否则 I ( y i = c j ) = 0 I(y_i=c_j)=0 I(yi=cj)=0

K-均值聚类是一种无监督学习算法,用于将数据集中的数据点分成 K 个簇,以便簇内的数据点相似度最高,而不同簇之间的数据点相似度最低。该算法的步骤如下:

随机选择 K 个数据点作为初始聚类中心。
将每个数据点分配到距离它最近的聚类中心所在的簇中。
计算每个簇的中心点,将其作为新的聚类中心。
重复步骤 2 和 3 直到聚类中心不再发生变化或达到预定的迭代次数。
优点:

算法简单,易于实现和理解。
能够处理大规模数据集。
适用于连续和离散的数据类型。
缺点:

算法对初始聚类中心的选择敏感,可能导致结果不稳定。
算法在处理不平衡的数据分布时效果不好,因为簇大小不一定相等。
算法需要事先指定 K 值。
总之,K-均值聚类算法是一种简单有效的聚类算法,在实践中广泛应用,但是在数据集选择、初始聚类中心的选择等方面需要注意一些细节,以获得更好的聚类效果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值