聚类算法学习–Kernel K-means
文章目录
前言
具体原理不再阐述,详细实现过程可参见上一篇博文,这一篇是从原理或者核思想出发对核聚类的总结,
一、代码
直接贴代码
代码如下(示例):
import matplotlib.pyplot as plt
import numpy as np
from sklearn.datasets import make_circles
import random
import math
from sklearn import metrics
def get_data():
'''
获取数据集,选用同心圆非凸数据,也可是自己的数据
:return:
'''
x, y1 = make_circles(n_samples=100, factor=0.1, noise=0.1)
return x
def Kernel(v1, v2):
'''
高斯核函数,可对应修改成多维空间下的核函数
:param v1: 二维空间坐标
:param v2: 二维空间坐标
:return:
'''
beta = 100
x1 = v1[0]
x2 = v1[1]
y1 = v2[0]
y2 = v2[1]
Ker = np.exp(-((x1 - y1)**2 + (x2 - y2)**2)*beta)# 高