📅  最后修改于: 2023-12-03 15:26:17.310000             🧑  作者: Mango
无监督机器学习是机器学习中的一个分支,它主要用于处理没有标记的数据集,即没有事先被分类或标签化的数据。
K-Means 算法是一种常见的聚类算法,基本思想是将原始数据聚集成 K 个类别,使得每个数据点都属于与其距离最近的那个聚类中心所代表的类别。K-Means 聚类算法的两个主要步骤是:1)初始化随机的 K 个聚类中心 2)不断迭代更新聚类中心的位置,直到聚类中心不再变化。
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=3, random_state=0) # 定义 KMeans 对象
kmeans.fit(data) # 聚类
labels = kmeans.labels_ # 获取聚类结果
PCA 是一种常见的线性降维算法,基本思想是将高维数据映射到低维空间。PCA 算法首先要对原始数据做一个中心化,然后计算数据的协方差矩阵,接着通过特征值分解来求得数据的主成分。PCA 的主要优点是能够提供数据的重要特征并且可以有效地去除冗余、噪声特征。
from sklearn.decomposition import PCA
pca = PCA(n_components=2) # 定义 PCA 对象,设置降维后的维度为 2
new_data = pca.fit_transform(data) # 降维处理
离群点检测算法是无监督学习中的一种重要应用,它能够识别某个数据点是否属于数据集中的异常点。常见的离群点检测算法有基于统计学的 Z-score、箱型图和基于距离的 LOF 算法等。
from sklearn.neighbors import LocalOutlierFactor
clf = LocalOutlierFactor(n_neighbors=20, contamination=0.1) # 调用 LOF 模型,contamination 参数可以调整异常值比例
y_pred = clf.fit_predict(X) # 计算每个数据点的 LOF 得分,1 表示正常,-1 表示异常
Apriori 算法是一种关联规则挖掘算法,通过对数据集中频繁项集的挖掘,可以发现不同项之间的关联规则。Apriori 算法的核心是使用候选项集和支持度度量来对数据进行处理,候选项集是指可以组成频繁项集的所有项的集合,支持度度量是指该项集在数据集中出现的概率。
from mlxtend.frequent_patterns import apriori
from mlxtend.frequent_patterns import association_rules
frequent_itemsets = apriori(df, min_support=0.03, use_colnames=True) # 使用 Apriori 查找频繁项集,min_support 表示最小支持度阈值
rules = association_rules(frequent_itemsets, metric="lift", min_threshold=1) # 规则挖掘
无监督机器学习是机器学习中的一个重要分支,它能够帮助我们更好地理解数据集并从中挖掘出有用的信息,从而使得机器学习算法更具鲁棒性和可靠性。以上介绍的只是无监督机器学习中的一些常见算法和应用场景,并不能代表全部,希望读者通过学习掌握更多有关无监督机器学习的知识和技术。