非监督学习简单介绍

非监督学习简单介绍

非监督学习是机器学习中的一种方法,其目标是基于数据的内在结构和关系,从而在无标签数据中识别样本的潜在结构和模式。非监督学习的目的是发现未知结构,无需使用任何预先定义的目标变量,这与监督学习的目标相反。

非监督学习的主要方法包括聚类、降维等技术。

聚类

聚类是一种非监督学习方法,它将给定的数据集中的样本分成不同的组或簇,每个簇包含相似的数据点。聚类可以帮助我们在数据集中发现潜在的模式和结构,从而加深对数据集的理解。

聚类是非监督学习中最常见的方法之一,其目的是将数据集中的观测样本分组或者簇。 对于同一簇中的样本尽可能的相似,而不同簇之间的样本则相差较大。

常用的聚类算法包括 K-means、Hierarchical聚类和DBSCAN。

K-means

K-means算法是一种最简单和流行的聚类算法,其工作原理如下:

  1. 首先,选择需要分组的数量(即簇数k)。
  2. 随机选择k个样本点作为聚类中心。
  3. 将所有的样本点分配到距离最近的聚类中心。
  4. 更新每个簇的聚类中心位置。
  5. 重复运行步骤3和4,直到满足收敛条件为止。

代码实现:

from sklearn.cluster import KMeans
import numpy as np

# 数据集
X = np.array([[5, 3], [10, 15], [15, 12], [24, 10], [30, 45], [85, 70], [71, 80], [60, 78], [55, 52], [80, 91]])
plt.scatter(x[:,0],x[:,1], s = 50)
plt.show()

# 聚类数,使用K-Means算法对数据进行聚类
kmeans = KMeans(n_clusters=2)

# 训练模型
kmeans.fit(X)

# 可视化聚类效果
plt.scatter(x[:,0],x[:,1], c = kmeans.labels_, s=50)
plt.show()

# 打印聚类中心
print(kmeans.cluster_centers_)

# 预测簇
print(kmeans.labels_)

Hierarchical聚类

层次聚类也叫分级聚类,可以是自下向上或自上而下的方法,利用不同的相似度度量来生成一棵树形的层次结构。

代码实现:

from scipy.cluster.hierarchy import dendrogram, linkage
from matplotlib import pyplot as plt
import numpy as np

# 数据集
X = np.array([[5, 3], [10, 15], [15, 12], [24, 10], [30, 45], [85, 70], [71, 80], [60, 78], [55, 52], [80, 91]])

# 层次聚类
linked = linkage(X, 'single')

# 绘制谱系树
plt.figure(figsize=(10, 7))
dendrogram(linked, orientation='top', distance_sort='descending', show_leaf_counts=True)
plt.show()

DBSCAN

DBSCAN算法确定簇的数量而不是预设定好的。该算法将一个给定的数据集划分到不同的簇中。对于每个簇,它的形状可以是任意形状。除此之外,该算法还能识别出噪声数据点。

代码实现:

from sklearn.cluster import DBSCAN
from sklearn.datasets import make_moons
import matplotlib.pyplot as plt

# 数据集
X, y = make_moons(n_samples=200, noise=0.05, random_state=0)

# DBSCAN聚类
dbscan = DBSCAN(eps=0.2, min_samples=5)
clusters = dbscan.fit_predict(X)

# 绘图聚类
plt.scatter(X[:, 0], X[:, 1], c=clusters, s=50, cmap='viridis');
plt.show()

以上代码首先生成了一个包含6个数据点的人工数据集,并将其可视化。然后,使用K-Means算法将数据分成两类,并将聚类结果可视化。

降维

降维也是非监督学习中非常重要的一部分,其目标是将高维数据映射到低维空间。 降维可以帮助我们更好地理解数据,同时还能减少特征的数量,这样也就使得机器学习算法的计算量更小,从而更快地训练模型。

常用的降维算法包括PCA和t-SNE。

PCA

PCA(主成分分析)是一种将高维数据转换为低维数据的线性算法。它通过找到数据中主要的变化方向,创建新的低维特征。

代码实现:

from sklearn.decomposition import PCA
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt

# 数据集
iris = load_iris()
X = iris.data
y = iris.target

# 可视化数据
plt.scatter(x[:0],x[:,1],c = y, s = 50)
plt.show()

# PCA分析,使用pca算法降维
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)

# 绘制结果
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y, s=50, cmap='viridis')
plt.show()

t-SNE

t-SNE(t-Distributed Stochastic Neighbor Embedding)是目前最流行的非线性降维算法之一。 它能够将高维数据点映射到低维空间,并尽可能保留高维数据点之间的局部结构。

代码实现:

from sklearn.datasets import load_digits
from sklearn.manifold import TSNE
import matplotlib.pyplot as plt
import seaborn as sns

# 数据集
digits = load_digits()
X = digits.data
y = digits.target

# t-SNE分析
tsne = TSNE(n_components=2, perplexity=30, verbose=2)
X_tsne = tsne.fit_transform(X)

# 绘制结果
plt.figure(figsize=(10, 10))
sns.scatterplot(X_tsne[:, 0], X_tsne[:, 1], hue=y, legend='full', palette='Spectral')
plt.title('t-SNE')
plt.show()

其他非监督学习技术

除了聚类和降维算法外,还有许多其他非监督学习技术,如异常检测、关联规则、深度学习自编码器等。 它们的应用场景各不相同,可以根据需要选择合适的技术。

结论

本教程介绍了非监督学习中最常见的聚类和降维算法,以及其他一些非监督学习技术。 相信读者对非监督学习有了更深入的了解,并能够将其应用到实际的问题中去。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
统计学习是计算机及其应用领域的一门重要的学科。本书全面系统地介绍了统计学习的主要方法,特别是监督学习方法,包括感知机、k近邻法、朴素贝叶斯法、决策树、逻辑斯谛回归与最大熵模型、支持向量机、提升方法、em算法、隐马尔可夫模型和条件随机场等。除第1章概论和最后一章总结外,每章介绍一种方法。叙述从具体问题或实例入手,由浅入深,阐明思路,给出必要的数学推导,便于读者掌握统计学习方法的实质,学会运用。为满足读者进一步学习的需要,书中还介绍了一些相关研究,给出了少量习题,列出了主要参考文献。 《统计学习方法》是统计学习及相关课程的教学参考书,适用于高等院校文本数据挖掘、信息检索及自然语言处理等专业的大学生、研究生,也可供从事计算机应用相关专业的研发人员参考。 《统计学习方法》 第1章统计学习方法概论 1.1统计学习 1.2监督学习 1.2.1基本概念 1.2.2问题的形式化 1.3统计学习三要素 1.3.1模型 1.3.2策略 1.3.3算法 1.4模型评估与模型选择 1.4.1训练误差与测试误差 1.4.2过拟合与模型选择 1.5i~则化与交叉验证 1.5.1正则化 1.5.2交叉验证 1.6泛化能力 1.6.1泛化误差 1.6.2泛化误差上界 1.7生成模型与判别模型 .1.8分类问题 1.9标注问题 1.10回归问题 本章概要 继续阅读 习题 参考文献 第2章感知机 2.1感知机模型 2.2感知机学习策略 2.2.1数据集的线性可分性 2.2.2感知机学习策略 2.3感知机学习算法 2.3.1感知机学习算法的原始形式 2.3.2算法的收敛性 2.3.3感知机学习算法的对偶形式 本章概要 继续阅读 习题 参考文献 第3章众近邻法 3.1 k近邻算法 3.2 k近邻模型 3.2.1模型 3.2.2距离度量 ·3.2.3 k值的选择 3.2.4分类决策规则 3.3k近邻法的实现:kd树 3.3.1构造af树 3.3.2搜索af树 本章概要 继续阅读 习题 参考文献 第4章朴素贝叶斯法 4.1朴素贝叶斯法的学习与分类 4.1.1基本方法 4.1.2后验概率最大化的含义 4.2朴素贝叶斯法的参数估计 4.2.1极大似然估计 4.2.2学习与分类算法 4.2.3贝叶斯估计 本章概要 继续阅读 习题 参考文献 第5章决策树 5.1决策树模型与学习 5.1.1决策树模型 5.1.2决策树与isthen规则 5.1.3决策树与条件概率分布 5.1.4决策树学习 5.2特征选择 5.2.1特征选择问题 5.2.2信息增益 5.2.3信息增益比 5.3决策树的生成 5.3.11d3算法 5.3.2 c4.5的生成算法 5.4决策树的剪枝 5.5cart算法 5.5.1cart生成 5.5.2cart剪枝 本章概要 继续阅读 习题 参考文献 第6章逻辑斯谛回归与最大熵模型 6.1逻辑斯谛回归模型 6.1.1逻辑斯谛分布 6.1.2项逻辑斯谛回归模型 6.1.3模型参数估计 6.1.4多项逻辑斯谛回归 6.2最大熵模型 6.2.1最大熵原理 6.2.2最大熵模型的定义 6.2.3最大熵模型的学习 6.2.4极大似然估计 6.3模型学习的最优化算法 6.3.1改进的迭代尺度法 6.3.2拟牛顿法 本章概要 继续阅读 习题 参考文献 第7章支持向量机 7.1线性可分支持向量机与硬间隔最大化 7.1.1线性可分支持向量机 7.1.2函数间隔和几何间隔 7.1.3间隔最大化 7.1.4学习的对偶算法 7.2线性支持向量机与软间隔最大化 7.2.1线性支持向量机 7.2.2学习的对偶算法 7.2.3支持向量 7.2.4合页损失函数 7.3线性支持向量机与核函数 7.3.1核技巧 7.3.2定核 7.3.3常用核函数 7.3.4线性支持向量分类机 7.4序列最小最优化算法 7.4.1两个变量二次规划的求解方法 7.4.2变量的选择方法 7.4.3smo算法 本章概要 继续阅读 习题 参考文献 第8章提升方法 8.1提升方法adaboost算法 8.1.1提升方法的基本思路 8.1.2adaboost算法 8.1.3 adaboost的例子 8.2adaboost算法的训练误差分析 8.3 adaboost算法的解释 8.3.1前向分步算法 8.3.2前向分步算法与ad9boost 8.4提升树 8.4.1提升树模型 8.4.2提升树算法 8.4.3梯度提升 本章概要 继续阅读 习题 参考文献 第9章em算法及其推广 9.1em算法的引入 9.1.1em算法 9.1.2em算法的导出 9.1.3em算法在监督学习中的应用 9.2em算法的收敛性 9.3em算法在高斯混合模型学习中的应用 9.3.1高斯混合模型 9.3.2高斯混合模型参数估计的em算法 9.4em算法的推广 9.4.1f函数的极大极大算法 9.4.2gem算法 本章概要 继续阅读 习题 参考文献 第10章隐马尔可夫模型 10.1隐马尔可夫模型的基本概念 10.1.1隐马尔可夫模型的定义 10.1.2观测序列的生成过程 10.1.3隐马尔可夫模型的3个基本问题 10.2概率计算算法 10.2.1直接计算法 10.2.2前向算法 10.2.3后向算法 10.2.4一些概率与期望值的计算 10.3学习算法 10.3.1监督学习方法 10.3.2baum-welch算法 10.3.3baum-welch模型参数估计公式 10.4预测算法 10.4.1近似算法 10.4.2维特比算法 本章概要 继续阅读 习题 参考文献 第11章条件随机场 11.1概率无向图模型 11.1.1模型定义 11.1.2概率无向图模型的因子分解 11.2条件随机场的定义与形式 11.2.1条件随机场的定义 11.2.2条件随机场的参数化形式 11.2.3条件随机场的简化形式 11.2.4条件随机场的矩阵形式 11.3条件随机场的概率计算问题 11.3.1前向后向算法 11.3.2概率计算 11.3.3期望值的计算 11.4条件随机场的学习算法 11.4.1改进的迭代尺度法 11.4.2拟牛顿法 11.5条件随机场的预测算法 本章概要 继续阅读 习题 参考文献 第12章统计学习方法总结 附录a梯度下降法 附录b牛顿法和拟牛顿法 附录c拉格朗日对偶性

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百年孤独百年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值