python 谱聚类 幂迭代

本文延续前文,详细介绍了如何使用Python实现幂迭代谱聚类算法,通过实例展示了聚类过程,对于数据集的分类提供了有效的方法。
摘要由CSDN通过智能技术生成

紧接着上篇博文,实现了幂迭代聚类算法:

# encoding=utf-8
import numpy as np
import matplotlib.pyplot as plt
from numpy import linalg as LA
from sklearn.cluster import KMeans
from sklearn.metrics.pairwise import rbf_kernel
from sklearn.preprocessing import normalize
from sklearn.datasets import make_blobs


def similarity(points):
    """
    亲和矩阵
    :param points:
    :return:
    """
    res = rbf_kernel(points)
    for i in range(len(res)):
        res[i, i] = 0
    return res


def spectral(points, k):
    """
    谱聚类
    :param points:
    :param k:
    :return:
    """
    W = similarity(points)
    Dn = np.diag(np.power(np.sum(W, axis=1), -0.5))
    L = np.eye(len(points)) - np.dot(np.dot(Dn, W), Dn)
    eigvals, eigvecs = LA.eig(L)
    indices = np.argsort(eigvals)[:k]
    subvecs = normalize(eigvecs[:, indices])
    return KMeans(n_clusters=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值