t-SNE手写字识别案例

2023-11-08

参考链接:https://scikit-learn.org/stable/auto_examples/manifold/plot_lle_digits.html#sphx-glr-auto-examples-manifold-plot-lle-digits-py

代码如下:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Wed Dec 23 22:47:54 2020

@author: muli
"""


from time import time
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import offsetbox
from sklearn import datasets, manifold


print(__doc__)

digits = datasets.load_digits(n_class=6)
X = digits.data
y = digits.target
n_samples, n_features = X.shape
n_neighbors = 30


# ----------------------------------------------------------------------
# Scale and visualize the embedding vectors
def plot_embedding(X, title=None):
    x_min, x_max = np.min(X, 0), np.max(X, 0)
    X = (X - x_min) / (x_max - x_min)

    plt.figure()
    ax = plt.subplot(111)
    for i in range(X.shape[0]):
        plt.text(X[i, 0], X[i, 1], str(y[i]),
                 color=plt.cm.Set1(y[i] / 10.),
                 fontdict={'weight': 'bold', 'size': 9})

    if hasattr(offsetbox, 'AnnotationBbox'):
        # only print thumbnails with matplotlib > 1.0
        shown_images = np.array([[1., 1.]])  # just something big
        for i in range(X.shape[0]):
            dist = np.sum((X[i] - shown_images) ** 2, 1)
            if np.min(dist) < 4e-3:
                # don't show points that are too close
                continue
            shown_images = np.r_[shown_images, [X[i]]]
            imagebox = offsetbox.AnnotationBbox(
                offsetbox.OffsetImage(digits.images[i], cmap=plt.cm.gray_r),
                X[i])
            ax.add_artist(imagebox)
    plt.xticks([]), plt.yticks([])
    if title is not None:
        plt.title(title)


# ----------------------------------------------------------------------
# Plot images of the digits
n_img_per_row = 20
img = np.zeros((10 * n_img_per_row, 10 * n_img_per_row))
for i in range(n_img_per_row):
    ix = 10 * i + 1
    for j in range(n_img_per_row):
        iy = 10 * j + 1
        img[ix:ix + 8, iy:iy + 8] = X[i * n_img_per_row + j].reshape((8, 8))

plt.imshow(img, cmap=plt.cm.binary)
plt.xticks([])
plt.yticks([])
plt.title('A selection from the 64-dimensional digits dataset')


# ----------------------------------------------------------------------
# t-SNE embedding of the digits dataset
print("Computing t-SNE embedding")
tsne = manifold.TSNE(n_components=2, init='pca', random_state=0)
t0 = time()
X_tsne = tsne.fit_transform(X)

plot_embedding(X_tsne,
               "t-SNE embedding of the digits (time %.2fs)" %
               (time() - t0))


print("程序运行结束...")





程序运行如下:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

t-SNE手写字识别案例 的相关文章

随机推荐

  • 十大排序算法

    十大排序对比表格 中文名称 英文名称 平均时间复杂度 最坏时间复杂度 最好时间复杂度 空间复杂度 稳定性 选择排序 Selection O O O O 1 不稳定 冒泡排序 Bubble O O O O 1 稳定 插入排序 Insertio
  • selenium中隐藏元素如何定位

    1 什么是隐藏元素 前端通过一些属性来控制元素隐藏 type hidden style display none margin设为负值 z index控制元素堆叠顺序 2 定位隐藏元素 定位隐藏元素与定位普通元素没什么区别 from sel
  • ActiveMQ 反序列化漏洞(CVE-2015-5254)漏洞复现vulhub

    ActiveMQ 反序列化漏洞 CVE 2015 5254 Apache ActiveMQ是美国阿帕奇 Apache 软件基金会所研发的一套开源的消息中间件 它支持Java消息服务 集群 Spring Framework等 Apache A
  • 从工具了解大数据之Kettle

    最近沉迷Python爬虫学习 很有意思 即时刹车 坚持一步一学习 一步一整理 Kettle目前工作用于数据库搬运 例如Oracle定时搬运到mysql中间表 以便于加速查询 1 相关学习资料 尚硅谷 大数据技术之Kettle视频教程 网盘资
  • /libcublas.so.11: symbol cublasLtHSHMatmulAlgoInit version libcublasLt.so.11 not defined in file lib

    GLUE root cd163c5c74c9 cd root miniconda3 GLUE root cd163c5c74c9 miniconda3 ls LICENSE txt bin compiler compat conda met
  • Aruba为边缘赋“能”

    点击上方关注我们 我们不断重复着 万物互联 万物智能 那些曾在电影中多次出现的带有科幻意味的 智能 今天已经在生活中变成现实 而我们似乎已经对此见怪不怪 我们有充足的理由相信 云 AI 5G 将再次颠覆整个世界 哦 对了 必须再加上一个 边
  • Zotero插件「Better BibTex」实现自定义导出格式

    Better BibTex插件设置 介绍 实现 最近在撰写论文时 由于发现Zotero Better BibTex导出参考文献时 会与Google Scholar上有诸多不一致 引起了很多不必要的麻烦 奈何网上关于如何自定义导出格式的教程寥
  • Python数据分析,学习路径拆解及资源推荐(附详细思维导图)

    关于Python数据分析 其实网上能够找到的学习资源很多 主要分为两类 一类是提供各种资源的推荐 比如书单 教程 以及学习的先后顺序 另一类是提供具体的学习内容 知识点或实际案例 但很多繁琐而又杂乱的内容 除了给初学者增加理解和认识的噪音外
  • Flutter中回调函数

    文章目录 一 前言 二 示例代码 二 函数 三 定义一个函数变量 四 函数回调的写法1 Function 五 函数回调的写法2 typedof 六 函数回调的写法3 系统默认 一 前言 如果对回调函数概念了解的话可以跳过本段内容和第二段内容
  • 基于VS平台的库生成与使用

    基于VS平台的库生成与使用 动态库的创建连接参考链接 https www cnblogs com codingmengmeng p 6287425 html 静态库的创建连接参考链接 https www cnblogs com zqh201
  • 【华为OD机试真题】We Are A Team(C++&java&python)100%通过率 超详细代码注释 代码优化

    We Are A Team 题目描述 总共有n个人在机房 每个人有一个标号 1 lt 标号 lt n 他们分成了多个团队 需要你根据收到的m条消息判定指定的两个人是否在 一个团队中 具体的 1 消息构成为abc 整数a b分别代表两个人的标
  • python生成100个随机数_每日任务:Python对随机生成的100个数进行排序

    author wuwa coding utf 8 import random 随机生成100个10至1000之间的数 对生成的100个数进行排序 禁止使用Python自带的排序函数 要自己实现排序函数 class MySort 生成随机数
  • 动态规划算法刷题

    第一天 使用滚动数组 1 菲波那切数列 斐波那契数 通常用 F n 表示 形成的序列称为 斐波那契数列 该数列由 0 和 1 开始 后面的每一项数字都是前面两项数字的和 也就是 F 0 0 F 1 1 F n F n 1 F n 2 其中
  • C++按行读/写txt文件

    将 hello 写入F test txt的第1行 include
  • 在ASP.NET中显示进度条

    在ASP NET中显示进度条 孟宪会之精彩世界 对于加载时间比较长的ASP NET页面 我们可以在客户端浏览器中显示进度条来显示页面正在装载 下面就是具体的实现过程 新建项目 名字为WebPortal 在项目类型中选择Visual C 项目
  • STM32单片机并口通信编程实例:代码详解与应用案例

    引言 单片机并口通信是一种传统而常用的通信方式 通过并行方式进行数据传输 尽管串口通信在现代应用中更加普遍 但并口通信在一些特定领域的应用仍然具有重要意义 本文将介绍单片机并口通信的原理 配置和实践方法 并给出STM32单片机的示例代码和详
  • 类属性、实例属性

    实例属性 对象属性 顾名思义 类属性就是类对象所拥有的属性 它被所有类对象的实例对象所共有 在内存中只存在一个副本 这个和C 中类的静态成员变量有点类似 对于公有的类属性 在类外可以通过类对象和实例对象访问 类属性 实例如下 class P
  • 根据字节大小分割字符串(java)

    public List
  • JAVA学习进程、线程

    1 进程 进程 是正在进行的程序 是系统进行资源分配和调用的独立单位 每一个进程都有它自己的内存空间和系统资源 2 线程 线程 是进程中的单个顺序控制流 是一条执行路径 分为 单线程和多线程 多线程的实现方式 设置和获取线程名称 线程的调度
  • t-SNE手写字识别案例

    参考链接 https scikit learn org stable auto examples manifold plot lle digits html sphx glr auto examples manifold plot lle