使用sklearn不同方法在digits手写数字数据集上聚类并用matplotlib呈现

【机器学习实战】逻辑回归----digits手写数字分类 【导入库和数据集】 和线性回归一样,首先导入所需要用到的库和数据集。 导入库: ##用于可视化图表 import matplotlib.pyplot as plt ##用于做科学计算 import numpy as np ##用于做数据分析 import pandas as pd ##用于加载数据或生成数据等 from sklearn import datasets ##加载线性模型 f... 阅读详情
本文内容
  • 测试sklearn中以下聚类算法在digits手写数字数据集上的聚类效果。

在这里插入图片描述

  • 使用不同的评估方法对实验结果进行评估。
准备
- [ ] sklearn库

自2007年发布以来,scikit-learn已经成为Python重要的机器学习库了,scikit-learn简称sklearn,支持包括分类,回归,降维和聚类四大机器学习算法。还包括了特征提取,数据处理和模型评估者三大模块。

sklearn是Scipy的扩展,建立在Numpy和matplolib库的基础上。利用这几大模块的优势,可以大大的提高机器学习的效率。

sklearn拥有着完善的文档,上手容易,具有着丰富的API,在学术界颇受欢迎。sklearn已经封装了大量的机器学习算法,包括LIBSVM和LIBINEAR。同时sklearn内置了大量数据集,节省了获取和整理数据集的时间。

库的算法主要有四类:分类,回归,聚类,降维。其中:

常用的回归:线性、决策树、SVM、KNN ;集成回归:随机森林、Adaboost、GradientBoosting、Bagging、ExtraTrees

常用的分类:线性、决策树、SVM、KNN,朴素贝叶斯;集成分类:随机森林、Adaboost、GradientBoosting、Bagging、ExtraTrees

常用聚类:k均值(K-means)、层次聚类(Hierarchical clustering)、DBSCAN

常用降维:LinearDiscriminantAnalysis、PCA

它具有以下特点

  • 简单高效的数据挖掘和数据分析工具
  • 每个人都可以访问,并且可以在各种情况下重用
  • 基于NumPy,SciPy和matplotlib构建
  • 开源,可商业使用-BSD许可证

在这里插入图片描述

  • sklearn datasets

sklearn中包含了大量的优质的数据集,在我们学习机器学习的过程中,我们可以使用这些数据集实现出不同的模型。

首先,要使用sklearn中的数据集,必须导入datasets模块。

from sklearn import datasets

在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • digits手写数字数据集
    实验要求采用digits数据集,我们先对这个数据集进行一个初步的了解:
    手写数字数据集包含1797个0-9的手写数字数据,每个数据由8 * 8 大小的矩阵构成,矩阵中值的范围是0-16,代表颜色的深度。
    我们先加载一下数据,了解一下数据的维度,并以图像的形式展示一些第一个数据:
import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
digits = load_digits()
print(digits.data.shape)
print(digits.target.shape)
print(digits.images.shape)
plt.matshow(digits.images[0])
plt.show()

可以看到数据维度和第一张手写数字
(1797, 64)
(1797,)
(1797, 8, 8)

在这里插入图片描述

实验过程
  • K-means聚类digits数据集
    在sklearn官网中提供的K-means对digits的聚类的demo代码中运行出来的结果如下:(链接:https://scikit-learn.org/stable/auto_examples/cluster/plot_kmeans_digits.html#sphx-glr-auto-examples-cluster-plot-kmeans-digits-py)

在这里插入图片描述

整个可视化的生成很漂亮,细细研究下整个实现过程来发现官方给出的示例也很棒,下面对代码进行分析并进行改动,给出我们通常意义上的直接的聚类效果:

从库sklearn.datasets中加载digits数据集,数据集的介绍见上面。数据集是分好label的,存在digits.target中,同时我们可以提取出数据集的样本数,每个样本的维度,分别存在n_samples n_features中,输出这三个变量,可以得到:
n_digits: 10
n_samples 1797
n_features 64

下面是一段核心评估代码,使用不同的评分方法来计算score表示聚类后类别的准确性,下面再分别用三种k-means聚类的方式来调用这段评分代码,得到不同的score,这也是输出文字的全部内容(ps:这段代码写的真的很漂亮)

def bench_k_means(estimator, name, data):
    t0 = time()
    estimator.fit(data)
    print('%-9s\t%.2fs\t%i\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f'
          % (name, (time() - t0), estimator.inertia_,
             metrics.homogeneity_score(labels, estimator.labels_),
             metrics.completeness_score(labels, estimator.labels_),
             metrics.v_measure_score(labels, estimator.labels_),
             metrics.adjusted_rand_score(labels, estimator.labels_),
             metrics.adjusted_mutual_info_score(labels,  estimator.labels_,average_method='arithmetic'),
             metrics.silhouette_score(data, estimator.labels_, metric='euclidean',sample_size=sample_size)))
bench_k_means(KMeans(init='k-means++', n_clusters=n_digits, n_init=10),name="k-means++"
SVM对sklearn自带手写数字数据集进行分类 sklearn自带一些数据集,其中手写数字数据集可通过load_digits加载,我找到load_digits里头是这样 def load_linnerud(): """Load and return the linnerud dataset (multivariate regression). Samples total: 20 Dimensionality: 3 f 阅读详情

相关推荐

Adaboost实现手写数字数据集的分类(sklearn),浅析分类器数目、学习率的影响

使用Adaboot对手写数字数据集sklearn.datasets.load_digits进行分类。 1.首先对前五个数字进行了展示 2.训练AdaboostClassifier,使用AdaBoostClassifier.stagend_predict(x)可以获得分阶段的预测结果。求得对数据集的随着迭代次数增加(弱分类器的增加)的误差变化情况。 观察可知,随着分类器的增加,Adaboost模型的分类的表现会更好。 3.最后研究了学习率对Adaboost模型的影响。在Adaboost中,学习率即每次新训

weixin_42388833的博客 1334

sklearndigits手写字体数据集

1. 导入 from sklearn import datasets digits = datasets.load_digits() 2. 属性查看 digits: bunch类型 print(digits.keys()) dict_keys(['data', 'target', 'target_names', 'images', 'DESCR']) 3. 具体数据 1797个样本...

weixin_43893890的博客 6935

UCI与sklearn数据集对比:3大维度解析5个经典数据集的适用场景

本文深入对比UCI与sklearn数据集的差异,从数据规模、任务适配性和数据结构三大维度解析5个经典数据集的适用场景。通过实际代码演示,帮助开发者根据机器学习任务类型选择最佳数据集,提升项目效率。特别适合Python开发者使用sklearn进行算法验证或基于UCI数据集进行特征工程研究。

banglvfei0870的博客 475

sklearndigits手写字体数据集介绍

sklearndigits手写字体数据集的导入和使用

Asun0204的博客 2万+

sklearn kmeans 手写数字聚类

 抓紧时间,直接上码,没有什么难度 from sklearn.datasets import load_digits from sklearn.cluster import KMeans import matplotlib.pyplot as plt import numpy as np from sklearn.decomposition import PCA from sklearn.pr...

Laozizuiku的博客 3315

SciKit-Learn 使用matplotlib可视化数据

章节SciKit-Learn 加载数据集 SciKit-Learn 数据集基本信息 SciKit-Learn 使用matplotlib可视化数据 SciKit-Learn 可视化数据:主成分分析(PCA) SciKit-Learn 预处理数据 SciKit-Learn K均值聚类 SciKit-Learn 支持向量机 SciKit-Learn 速查 digits是一个手写数字的数据...

abcd4491的博客 456

sklearn数据集操作1

numpy:基于python的数值计算包,用于存储操作多维数组 scipy:基于numpy设计的用于科学计算和工程设计的开发包 matplotlib:绘制二维图像 scikit learn整体结构介绍 分类:垃圾邮件检测、图像识别 算法:支持向量机,最近邻,随机森林,集成方法…… 回归:药物反应,股票价格 算法:支持向量机,核岭回归,lasso,弹性网…… 聚类:客户细分,分组实验输出 算法:k均值,谱聚类,均值漂移 维数约简:可视化,提高效率 算法:PCA,特征选择,非负矩阵分解…… 模型选择:通.

shanshuyue的博客 291

61、数据可视化:从 Matplotlib 到 Seaborn

本文介绍了使用 Matplotlib 和 Seaborn 进行数据可视化的方法,并探讨了 Sklearn 提供的常用数据集。内容涵盖三角函数绘图、IQ 分数直方图、最佳拟合线绘制,以及 Digits、Iris 和 Olivetti Faces 等数据集的加载与展示。文章还比较了 Matplotlib 与 Seaborn 的特点,提供了数据可视化和机器学习任务的学习建议。

sss66的博客 70

61、数据可视化:从Matplotlib到Seaborn的探索

本文深入介绍了Matplotlib、Seaborn和Sklearn在数据可视化与机器学习中的应用。内容涵盖Matplotlib绘制三角函数图、IQ直方图、最佳拟合线;Sklearn的常用算法及Digits、Iris、Faces等内置数据集使用;Seaborn的高级可视化功能及其与Matplotlib的结合应用。通过示例代码展示了如何使用这些工具进行数据绘图、分析与模型构建,为读者提供了从基础绘图到机器学习任务的完整实践路径。

jupi8的博客 106

机器学习算法三之Python机器学习库sklearn简介

机器学习库使用简介

yohnyang的博客 2312

Python机器学习入门必学的5个经典数据集

机器学习入门的核心在于理解数据、模型与评估之间的基本关系。从特征工程到模型验证,从过拟合识别到算法公平性,这些基础能力往往依托于结构清晰、规模适中、语义明确的经典数据集。Iris、Wine、Breast Cancer、Digits和已弃用但原理重要的Boston Housing,构成了scikit-learn生态中最常用的教学与验证载体。它们支撑着数据探索、模型调参、可视化解释及部署验证等关键环节,是连接理论概念与工程实践的桥梁。尤其在初学者建立‘特征—标签—决策边界’直觉、讲师快速构建可复现Demo、业务

weixin_30237719的博客 383

matplotlib中文文档_机器学习sklearn 中文文档(5)统计学习: 问题设置以及 sklearn 中的估计器对象...

统计学习: 问题设置以及 scikit-learn 中的估计器对象(estimator object)¶与官方文档完美匹配的中文文档,请访问 Python 机器学习包 - scikit-learn 0.20.2 documentationLogo首页 安装 文档 案例Fork me on GitHubPrevious用于科学数据处理的统计学习教程Next监督学习: 从高维观测中预测输出变量Up用于...

weixin_39942488的博客 91

基于Python实现的机器学习算法(线性回归、逻辑回归、BP神经网络、SVM 支持向量机、K-Means 聚类算法、PCA 主成分分析、异常检测)

本文介绍了多种机器学习算法的Python实现,包括线性回归、逻辑回归、BP神经网络、SVM支持向量机、K-Means聚类和PCA主成分分析。详细讲解了线性回归的代价函数、梯度下降和归一化;逻辑回归的S型函数、正则化和多项式映射;BP神经网络的反向传播和权重初始化;SVM的核函数和大间隔分类;K-Means的聚类过程和目标函数;PCA的降维原理和数据恢复方法。各算法均配有实现代码和运行结果展示,并介绍了如何利用scikit-learn库进行简化实现。适用于机器学习初学者快速掌握核心算法的原理与实践。

毕业作品网站 1万+

t-SNE-tutorial实战:用Python和scikit-learn轻松实现高维数据降维

t-SNE(t分布随机邻域嵌入)是一种强大的高维数据降维算法,能将复杂的高维数据映射到2D或3D空间进行可视化。GitHub加速计划的t-SNE-tutorial项目提供了完整的学习资源,帮助开发者快速掌握这一技术。本文将通过实际案例,展示如何用Python和scikit-learn库实现t-SNE降维,让高维数据可视化变得简单高效。 ## 为什么需要高维数据降维? 在大数据时代,我们面临的数

gitblog_00024的博客 345

【零基础学机器学习 7】逻辑回归(下)- 使用 Python(scikit-learn)实现预测数字标签

在上文中,我们学习了讲逻辑回归的基本概念,但是概念始终是抽象的,本文用一个简单的例子,来实现一个逻辑回归。同时也让你了解什么是机器学习的实操。对于新手来说,下面出现的代码可能是无法理解的。但是没关系,请你硬着头皮看下去。主要是了解思路以及操作。

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 694

数据降维与聚类实战:PCA、K-means与t-SNE组合应用指南

在机器学习与数据分析领域,降维与聚类是探索高维数据内在结构的核心技术。降维技术通过将高维数据投影到低维空间,去除冗余与噪声,保留关键信息,帮助我们从复杂数据中提取主要特征。其核心原理在于通过数学变换(如特征值分解)找到数据方差最大的方向,从而在低维空间中最大程度保持原始数据结构。这一过程不仅提升了计算效率,更为后续的聚类分析奠定了清晰的数据基础。聚类算法则在此基础上,依据数据点之间的相似性自动分组,揭示数据内在的分布模式与群组关系。在工程实践中,常将线性降维方法PCA与经典聚类算法K-means结合,构建高

weixin_34068198的博客 344

skLearn 支持向量机

## 版权所有,转帖注明出处 章节SciKit-Learn 加载数据集 SciKit-Learn 数据集基本信息 SciKit-Learn 使用matplotlib可视化数据 SciKit-Learn 可视化数据:主成分分析(PCA) SciKit-Learn 预处理数据 SciKit-Learn K均值聚类 SciKit-Learn 支持向量机 SciKit-Learn 速查 前面...

abcd4491的博客 170
上一篇: Python——turtle绘制动漫形象(魔法少女小圆晓美焰,super beautiful)
下一篇: Python爬虫——批量爬取微博图片(不使用cookie)
Soul fragments
博客等级 码龄8年 2418粉丝 37原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值