石家庄网站建设模板服务,wordpress登录页名,证券公司网站建设方案,济南seo推广效果好目录
一、实验介绍
二、实验环境
1. 配置虚拟环境
2. 库版本介绍
3. IDE
三、实验内容
0. 导入必要的工具
1. 生成测试数据
2. 绘制初始数据分布图
3. 循环尝试不同的参数组合并计算聚类效果
4. 输出最佳参数组合
5. 绘制最佳聚类结果图
6. 代码整合 一、实验介绍…目录
一、实验介绍
二、实验环境
1. 配置虚拟环境
2. 库版本介绍
3. IDE
三、实验内容
0. 导入必要的工具
1. 生成测试数据
2. 绘制初始数据分布图
3. 循环尝试不同的参数组合并计算聚类效果
4. 输出最佳参数组合
5. 绘制最佳聚类结果图
6. 代码整合 一、实验介绍 本实验实现了使用谱聚类Spectral Clustering算法进行聚类分析 二、实验环境 本系列实验使用了PyTorch深度学习框架相关操作如下基于深度学习系列文章的环境
1. 配置虚拟环境
深度学习系列文章的环境
conda create -n DL python3.7
conda activate DL
pip install torch1.8.1cu102 torchvision0.9.1cu102 torchaudio0.8.1 -f https://download.pytorch.org/whl/torch_stable.htmlconda install matplotlib
conda install scikit-learn
新增加
conda install pandas
conda install seaborn
conda install networkx
conda install statsmodels
pip install pyHSICLasso
注本人的实验环境按照上述顺序安装各种库若想尝试一起安装天知道会不会出问题
2. 库版本介绍
软件包本实验版本目前最新版matplotlib3.5.33.8.0numpy1.21.61.26.0python3.7.16scikit-learn0.22.11.3.0torch1.8.1cu1022.0.1torchaudio0.8.12.0.2torchvision0.9.1cu1020.15.2
新增
networkx2.6.33.1pandas1.2.32.1.1pyHSICLasso1.4.21.4.2seaborn0.12.20.13.0statsmodels0.13.50.14.0 3. IDE 建议使用Pycharm其中pyHSICLasso库在VScode出错尚未找到解决办法…… win11 安装 Anaconda2022.10pycharm2022.3/2023.1.4配置虚拟环境_QomolangmaH的博客-CSDN博客https://blog.csdn.net/m0_63834988/article/details/128693741https://blog.csdn.net/m0_63834988/article/details/128693741 三、实验内容
0. 导入必要的工具 import numpy as np
from sklearn.cluster import SpectralClustering
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt
from numpy import random
from sklearn import metrics 1. 生成测试数据 random.seed(1)
x, y make_blobs(n_samples400, centers4, cluster_std1.5) 使用make_blobs方法生成了一个包含400个样本的数据集共有4个聚类中心每个聚类中心的标准偏差为1.5。
2. 绘制初始数据分布图 plt.scatter(x[:, 0], x[:, 1], cy, labellen(np.unique(y)))
plt.title(Initial Data Distribution)
plt.show() 将生成的数据集绘制成散点图不同聚类的样本使用不同的颜色进行标记。
3. 循环尝试不同的参数组合并计算聚类效果 gamma_best 0
k_cluster_best 0
CH 0
for index, gamma in enumerate((1, 1.5, 2, 2.5, 5)):for index, k in enumerate((2, 3, 4, 5, 6)):y_pred SpectralClustering(n_clustersk, gammagamma).fit_predict(x)print(Calinski-Harabasz Score with gamma, gamma, n_clusters, k, score:,metrics.calinski_harabasz_score(x, y_pred))curr_CH metrics.calinski_harabasz_score(x, y_pred)if (curr_CH CH):gamma_best gammak_cluster_best kCH curr_CH 使用嵌套的循环尝试不同的参数组合 其中gamma代表谱聚类中的高斯核参数k代表聚类的簇数。 对于每一组参数使用SpectralClustering进行聚类并计算聚类结果的 Calinski-Harabasz 得分metrics.calinski_harabasz_score。得分越高表示聚类效果越好。代码会记录得分最高的参数组合。
4. 输出最佳参数组合
print(best gamma:, gamma_best, best cluster, k_cluster_best) 输出得分最高的参数组合即最佳的 gamma 和 k。 5. 绘制最佳聚类结 果图
f plt.figure()
sc SpectralClustering(n_clustersk_cluster_best, gammagamma_best).fit_predict(x)
plt.scatter(x[:, 0], x[:, 1], csc)
plt.title(n_clusters: str(k_cluster_best))
plt.show() 6. 代码整合 import numpy as np
from sklearn.cluster import SpectralClustering
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt
from numpy import random
from sklearn import metricsSpectralClustering(affinityrbf, coef01, degree3, gamma1.0,kernel_paramsNone, n_clusters4, n_init10,n_neighbors10)# scikit中的make_blobs方法常被用来生成聚类算法的测试数据make_blobs会根据用户指定的特征数量、中心点数量、范围等来生成几类数据这些数据可用于测试聚类算法的效果
random.seed(1)
# n_samples样本数 n_featuresint可选默认值 2centers要生成的中心数或固定的中心位置 cluster_std: 聚类的标准偏差
x, y make_blobs(n_samples400, centers4, cluster_std1.5)
plt.scatter(x[:, 0], x[:, 1], cy, labellen(np.unique(y)))
plt.title(Initial Data Distribution)
plt.show()gamma_best 0
k_cluster_best 0
CH 0
for index, gamma in enumerate((1, 1.5, 2, 2.5, 5)):for index, k in enumerate((2, 3, 4, 5, 6)):y_pred SpectralClustering(n_clustersk, gammagamma).fit_predict(x)# 卡林斯基哈拉巴斯得分Calinski Harabasz score本质是簇间距离与簇内距离的比值整体计算过程与方差计算方式类似也称为方差比标准# 通过计算类内各点与类中心的距离平方和来度量类内的紧密度类内距离各个类中心点与数据集中心点距离平方和来度量数据集的分离度类间距离# 较高的 Calinski Harabasz 分数意味着更好的聚类print(Calinski-Harabasz Score with gamma, gamma, n_clusters, k, score:,metrics.calinski_harabasz_score(x, y_pred))curr_CH metrics.calinski_harabasz_score(x, y_pred)if (curr_CH CH):gamma_best gammak_cluster_best kCH curr_CHprint(best gamma:, gamma_best, best cluster, k_cluster_best)f plt.figure()
sc SpectralClustering(n_clustersk_cluster_best, gammagamma_best).fit_predict(x)
plt.scatter(x[:, 0], x[:, 1], csc)
plt.title(n_clusters: str(k_cluster_best))
plt.show()
请详细介绍上述代码