【机器学习】机器学习学习笔记 - 无监督学习 - k-means/均值漂移聚类/凝聚层次聚类/近邻传播聚类 - 05

pdf在线免费转word文档 https://orcc.online/pdf

不限次数、免费不需要注册。

无监督学习 (聚类)

  • 聚类是一种无监督学习方法,是将数据划分为若干个簇,使得簇内的点尽可能相似,簇间尽可能不相似。

k-means 聚类

  • k-means 聚类算法是一种迭代算法,它会不断地寻找最佳的 k 值,然后将数据分配到这些簇中。
  • 聚类算法的优点是简单,易于实现,并且对数据维度的要求不高。
python 复制代码
from sklearn.cluster import KMeans

num_clusters = 4
kmeans = KMeans(init='k-means++', n_clusters=num_clusters, n_init=10)
kmeans.fit(data)

均值漂移聚类

  • 把数据点的分布看成是概率密度函数, 希望在特征空间中根据函数分布特征找出数据点的"模式"(mode)
  • 优点是不需要事先确定集群的数量
python 复制代码
import numpy as np
from sklearn.cluster import MeanShift, estimate_bandwidth

# Estimating the bandwidth
# 设置带宽参数 quantile : 0.1 代表数据集中10%的样本作为聚类中心
# n_samples : 样本数
bandwidth = estimate_bandwidth(X, quantile=0.1, n_samples=len(X))

# Compute clustering with MeanShift
# bin_seeding : 随机种子
# 随机种子,保证每次聚类结果一致
meanshift_estimator = MeanShift(bandwidth=bandwidth, bin_seeding=True)
meanshift_estimator.fit(X)

# 提取标记
labels = meanshift_estimator.labels_
# 聚类中心
centroids = meanshift_estimator.cluster_centers_
num_clusters = len(np.unique(labels))

print("Number of clusters in input data =", num_clusters)

凝聚层次聚类

  • 层次聚类算法可以是自下而上的,也可以是自上而下
  • 自下而上: 每个数据点都被看作一个簇,然后将簇进行合并,直到所有簇合并为一个簇
  • 自上而下: 先将所有数据点看作一个簇,然后将簇进行分裂,直到所有簇分裂为一个簇
python 复制代码
from sklearn.cluster import AgglomerativeClustering

plt.figure()
model = AgglomerativeClustering(linkage=linkage,
                connectivity=connectivity, n_clusters=num_clusters)
model.fit(X)

# extract labels
labels = model.labels_

近邻传播聚类

  • 找出数据点的相似度,然后根据相似度进行聚类
  • 优点是不需要事先确定簇的数量
python 复制代码
from sklearn.cluster import AffinityPropagation

# 使用亲和传播聚类算法构建聚类模型
# edge_model.covariance_可以获取到股票之间的协方差矩阵,该矩阵表示了不同股票之间的相关性和波动性
_, labels = cluster.affinity_propagation(edge_model.covariance_)
num_labels = labels.max()

# 打印聚类结果
for i in range(num_labels + 1):
    print("Cluster", i+1, "-->", ', '.join(names[labels == i]))
相关推荐
努力的小雨2 小时前
从零开始学机器学习——网络应用
机器学习
凭栏落花侧5 小时前
决策树:简单易懂的预测模型
人工智能·算法·决策树·机器学习·信息可视化·数据挖掘·数据分析
wei_shuo6 小时前
偏标记学习+图像分类(论文复现)
学习·分类·数据挖掘
bin91536 小时前
【EXCEL数据处理】000010 案列 EXCEL文本型和常规型转换。使用的软件是微软的Excel操作的。处理数据的目的是让数据更直观的显示出来,方便查看。
大数据·数据库·信息可视化·数据挖掘·数据分析·excel·数据可视化
吱吱鼠叔6 小时前
MATLAB计算与建模常见函数:5.曲线拟合
算法·机器学习·matlab
学步_技术12 小时前
自动驾驶系列—全面解析自动驾驶线控制动技术:智能驾驶的关键执行器
人工智能·机器学习·自动驾驶·线控系统·制动系统
大神薯条老师12 小时前
Python从入门到高手4.3节-掌握跳转控制语句
后端·爬虫·python·深度学习·机器学习·数据分析
_.Switch14 小时前
Python机器学习框架介绍和入门案例:Scikit-learn、TensorFlow与Keras、PyTorch
python·机器学习·架构·tensorflow·keras·scikit-learn
魔力之心14 小时前
人工智能与机器学习原理精解【30】
人工智能·机器学习
毕小宝16 小时前
逻辑回归(下): Sigmoid 函数的发展历史
算法·机器学习·逻辑回归