matlab-对数据集加噪声并实现tsne可视化

这篇具有很好参考价值的文章主要介绍了matlab-对数据集加噪声并实现tsne可视化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

matlab-对数据集加噪声并实现tsne可视化

最近才知道,原来可以不用模型,也能实现对数据集数据的可视化。

**一、**以COIL-100数据集为例子。

问题:
前提:首先对COIL-100数据集根据角度0°-175°和180°-255°,分别划分成C1,C2两个子数据集。
目的:
①实现C1-C2的tsne可视化;
②对COIL-100数据集添加遮挡物,实现C1-C2的tsne可视化。
平台:
matlabR2019b 以及 Pycharm2022

**

二、解决方法

**
(1)首先获取得到我们的COIL-100的数据集,以及划分好的C1,C2数据集:
matlab-对数据集加噪声并实现tsne可视化,传统机器学习,matlab,开发语言,机器学习,计算机视觉,图像处理

(2)----------对数据集图片添加遮挡物----------
分别对COIL-100-1和COIL-100-2数据集添加遮挡物
我借鉴了这个博客数据增强-在图片中添加遮挡物
这个博客是对数据集添加不规则的五边形,我自己改成了:添加长方体遮挡物,且位置随机,python代码如下:

import random

import itertools

import os
import PIL.Image as Image
import PIL.ImageDraw as ImageDraw

# 原始图片的存放位置
PATH = 'C:/Users/lenovo/Documents/MATLAB/COIL-Augment-tsne/data/COIL-100/'
# 新生成的图片的保存位置
SAVE_PATH= 'C:/Users/lenovo/Documents/MATLAB/COIL-Augment-tsne/data/COIL-100-noise-10x10/'
# 要在图片上生成几边形的物体,N=5代表五边形
N = 4


def drawObs(path, savePath, n):

    for file in os.listdir(path):
        if not file.lower().endswith(('.bmp', '.dib', '.png', '.jpg', '.jpeg', '.pbm', '.pgm', '.ppm', '.tif', '.tiff')):
            continue
        img = Image.open(path + file)
        (x, y) = img.size
        random_list = list(itertools.product(range(1, x), range(1, y)))
        points = random.sample(random_list, n)

        draw = ImageDraw.Draw(img)
        x = random.randint(0, 255)
        #ImageDraw.ImageDraw.polygon(xy=points, fill=(x1, x2, x3), self=draw)
        draw.rectangle((x,x,x+20,x+10),fill=(0,0,0))
        img.save(savePath + 'rand' + file)
        print(file)

if __name__ == '__main__':
    drawObs(PATH, SAVE_PATH, N)



于是,我们得到 添加了随机遮挡物的C1和C2数据集:COIL-100-agument-1和COIL-100-agument-2.
matlab-对数据集加噪声并实现tsne可视化,传统机器学习,matlab,开发语言,机器学习,计算机视觉,图像处理

(3)----------数据集转换为.mat文件----------
分别将COIL-100-1, COIL-100-2, COIL-100-agument-1 和 COIL-100-agument-2,四个数据集转换成.mat文件。
.png向.mat文件转换的代码,我借鉴了这个博客将COIL数据集转换成.mat文件

clear
clc
path = 'D:\COIL\coil-100\';     %源数据集路径
save_path = 'D:\COIL\';     %处理之后保存的路径
file = dir([path,'*.png']);     %列出源路径下所有.png文件的信息:name date bytes...

COIL = [];
Label = [];
for i = 1:length(file)      %源路径下png文件的个数
    %%
    %%对图片本身数据做处理
    image0 = imread([path,file(i).name]);       %读取某一张图片
    str = file(i).name;     %图片名保存为str
    image1 = rgb2gray(image0);      %将彩图转换为灰度图像
    image2 = im2double(image1);     %将图片中unit8转换为double
    [a,b] = size(image2);       %a为图片行数 b为图片列数
    image3 = reshape(image2,1,a*b);     %将a*b的图片转换为1行
    COIL = [COIL;image3];       %每一张图片都加载在上一张图片的下一行
    fprintf('%d th starting...\n',i);       %记录程序运行过程
    %%
    %%对图片标签做处理 图片名为‘obj(类标签)__(拍摄角度).png’
    %主要提取类标签
    LabelStart = strfind(str,'j');      %找到图片名‘j’的位置(类标签前)
    LabelEnd = strfind(str,'_');        %找到图片名‘__’的位置(类标签后)
    label_temp = str2double(str(LabelStart+1:LabelEnd(1,1)-1));     %提取出图片类标签
    Label = [Label;label_temp];     %每个类标签按顺序排排坐
end

save savepath COIL Label

注意:
①保存的COIL-100-1 和 COIL-100-augment-1 图片保存为X_src,图片标签保存为Y_src,即上述代码中的COILLabel
②保存的COIL-100-2 和 COIL-100-augment-2 图片保存为X_tar,图片标签保存为Y_tar,即上述代码中的COILLabel

即生成的.mat文件如下图所示:
matlab-对数据集加噪声并实现tsne可视化,传统机器学习,matlab,开发语言,机器学习,计算机视觉,图像处理
matlab-对数据集加噪声并实现tsne可视化,传统机器学习,matlab,开发语言,机器学习,计算机视觉,图像处理

(4)最后分别将COIL-100-1和COIL-100-2可视化;以及COIL-100-agument-1 和 COIL-100-agument-2可视化。
matla可视化代码如下:

%%% tsne visulization
clc;
clear;
addpath('tSNE_matlab');

savefile1 = 'C:\Users\lenovo\Documents\MATLAB\COIL-Augment-tsne\data\COIL-100-agumnet-1.mat';
savefile2 = 'C:\Users\lenovo\Documents\MATLAB\COIL-Augment-tsne\data\COIL-100-agumnet-2.mat';

load(savefile1);
load(savefile2);
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Xs=X_src;
Xt=X_tar;
X=[Xs;Xt];

color1=[1,0,0];%red
color2=[0,0,1];%blue
Y1=[repmat(color1,[length(Y_src),1]);repmat(color2,[length(Y_tar),1])];

mappedX = tsne(X, Y1, 2,100,30);

savefile = ['C:\Users\lenovo\Documents\MATLAB\COIL-Augment-tsne\save_tu\map_COIL_100_10x10','.mat'];
save(savefile, 'mappedX','X_src','X_tar','Y_src','Y_tar');


完成。文章来源地址https://www.toymoban.com/news/detail-683557.html

到了这里,关于matlab-对数据集加噪声并实现tsne可视化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MATLAB中3D点云数据的处理与可视化

    3D点云数据是表示3D形状的一种数据结构,它通常是通过激光扫描、立体摄影或其他3D扫描技术获得的。处理和可视化这些数据在很多领域中都非常有用,比如计算机视觉、机器人技术、地理信息系统等。MATLAB提供了一系列的工具,可以帮助我们方便地进行3D点云数据的处理与

    2024年02月03日
    浏览(50)
  • MATLAB数学建模:数据图形可视化-三维绘图函数

    在 MATLAB 中, 我们可使用函数 surf 和 surfc 绘制三维曲面图. 调用格式如下: 以矩阵 ZZZ 所指定的参数创建一个渐变的三维曲面. 坐标 $x = 1:n, y = 1:m, $ 其中 [m,n]=size(Z)[m,n] = size(Z)[m,n]=size(Z) 以 ZZZ 确定的曲面高度和颜色, 按照 X,YX,YX,Y 形成的格点矩阵, 创建一个渐变的三维曲面. X,

    2024年02月06日
    浏览(57)
  • 聚类分析 | MATLAB实现基于AHC聚类算法可视化

    效果一览 基本介绍 AHC聚类算法,聚类结果可视化,MATLAB程序。 Agglomerative Hierarchical Clustering(自底向上的层次聚类)是一种经典的聚类算法,它的主要思想是将每个数据点视为一个簇,然后将距离最近的两个簇合并,直到达到预设的聚类个数或者所有数据点都被合并为一个簇

    2024年02月11日
    浏览(44)
  • Matlab vs Python:哪个更适合数据分析和可视化?

    当谈到数据分析和可视化时,许多人会思考使用哪种编程语言来实现这一目标。在IT行业,最流行的两种编程语言是Matlab和Python。这两种语言都有广泛的应用,但是对于初学者来说,选择哪种语言可能会有些困难。在本文中,我们将比较Matlab和Python这两种编程语言的优缺点,

    2024年02月05日
    浏览(43)
  • 【五一创作】数据可视化之美 ( 三 ) - 动图展示 ( Python & Matlab )

    在我们 科研学习 、 工作生产 中,将数据完美展现出来尤为重要。 数据可视化是以数据为视角,探索世界。我们真正想要的是 — 数据视觉,以数据为工具,以可视化为手段,目的是描述真实,探索世界。 数据可视化是将数据转化为易于理解和解释的图形形式的过程。它是

    2024年02月01日
    浏览(41)
  • 聚类分析 | MATLAB实现基于DBSCAD密度聚类算法可视化

    效果一览 基本介绍 基于DBSCAD密度聚类算法可视化,MATLAB程序。 使用带有KD树加速的dbscan_with_kdtree函数进行密度聚类。然后,我们根据每个簇的编号使用hsv色彩映射为每个簇分配不同的颜色,并用散点图进行可视化展示。同时,我们用黑色的\\\"x\\\"标记表示噪声点。请注意,DBSC

    2024年02月11日
    浏览(37)
  • MATLAB可视化(三)如何设置曲线的形状、颜色、数据点形状、粗细等

    例一 :绘制正弦图像,然后展示不同的曲线、颜色、数据点型 这里的hold on 在上一篇文章介绍过,用来附加图像,运行结果如下:   例二 :绘制正弦图像,对曲线的属性做更细致的调整,如下: 设置粗细、数据点大小、填充色等 注:具体参数调整如下        

    2024年02月16日
    浏览(42)
  • 时序分解 | MATLAB实现基于SSA奇异谱分析的信号分解分量可视化

    效果一览 基本介绍 奇异谱分解奇异谱分析SSA 可直接替换txt数据运行 Matlab 1.分解效果图 ,效果如图所示,可完全满足您的需求~ 2.直接替换txt数据即可用 适合新手小白 注释清晰~ 3.附赠案例数据 直接运行main一键出图~ 程序设计 完整源码和数据获取方式:MATLAB实现基于S

    2024年02月09日
    浏览(57)
  • 时序分解 | MATLAB实现基于SVD奇异值分解的信号分解分量可视化

    效果一览 基本介绍 SVD分解重构算法,MATLAB程序,奇异值分解 (Singular Value Decomposition)是一种常见的矩阵分解方法,用于将矩阵分解成三个矩阵的乘积。在信号处理中,SVD 可以用于特征提取、信号降维、图像压缩等方面。SVD 的一个重要应用是主成分分析 (PCA),可以用于提取数

    2024年02月11日
    浏览(49)
  • 时序分解 | MATLAB实现MVMD多元变分模态分解信号分量可视化

    效果一览 基本介绍 MVMD多元变分模态分解 可直接替换 Matlab语言 1.算法新颖小众,用的人很少,包含分解图,效果如图所示,适合作为创❤️~ 2.直接替换数据即可用 适合新手小白 注释清晰~ 3.附赠测试数据 直接运行main一键出图~ 程序设计 完整源码和数据获取方式:私信

    2024年02月09日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包