第一步:下载数据集。

https://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/multiclass.html#pendigits

第二步:改变数据格式。

注:此数据集的各特征值均为像素,即属于同一量纲,故无需归一化步骤。

原格式为:8 1:88 2:92 3:2 4:99 5:16 6:66 7:94 8:37 9:70 12:24 13:42 14:65 15:100 16:100

改为:88 92 2 99 16 66 94 37 70 0 0 24 42 65 100 100 8

Java代码:

public class dataformat {public static void main(String[] args) throws IOException{String filename = "pendigits.t";String outfilename = "pendigits";int demension = 16;try(Scanner in = new Scanner(new FileInputStream(filename));PrintWriter out = new PrintWriter(outfilename)){String line;while( in.hasNextLine()){line = in.nextLine();//按空格将数据切分String[] subComponent = line.trim().split(" ");//data用于记录对应维度下的特征值String[] data = new String[demension];//第0个是类标,所以从1开始,构造样例的全部特征值for (int i = 1; i < subComponent.length; ++i){String[] kv = subComponent[i].trim().split(":");//将对应维度下的特征值赋值。data[Integer.parseInt(kv[0])-1] = kv[1];}//sb用来构造一行样例StringBuilder sb = new StringBuilder();for (int i = 0; i < demension; ++i){if (data[i] != null)sb.append(data[i]+" ");elsesb.append("0 "); //如果对应维度下的字符串为null,说明为0值。}sb.append(subComponent[0].trim());//末尾加类标out.println(sb.toString());   //写文件}}}
}

第三步:Matlab作图。

将处理好的文件pendigits加入MATLAB路径;

新建脚本pcaVisual.m,代码如下:

load pendigits; % 加载数据集,前提是pendigits文件在MATLAB路径下
[m,n]=size(pendigits); % 获得pendigts的行数m,列数n
[pc, score, latent, tsquare]=pca(pendigits(:,1:n-1));% pca是主成分分析算法,参数是需要降维的矩阵pendigits(:,1:n-1)——除去类标列。
% 返回的结果:
% pc是(n-1)*(n-1)系数矩阵,用它将pendigits(:,1:n-1)转换为score
% score是转换之后的特征值,大小为m*(n-1),按latent降序排列,按需取前k列,此处我们只需取前三列。
% latent:是一维列向量,大小为(n-1)*1,每一个数据是对应score里相应维的贡献率,降序排列plot3(0,0,0); % plot(0,0)可用于展示2维图形,但用旋转按钮进行拖动的话,可以看到,其实际就是3维。
hold on;% 根据样例的列表来画图
for i=1:mswitch pendigits(i,n)case 0plot3(score(i,1),score(i,2),score(i,3),'y*');case 1plot3(score(i,1),score(i,2),score(i,3),'m*');case 2plot3(score(i,1),score(i,2),score(i,3),'c*');case 3plot3(score(i,1),score(i,2),score(i,3),'r*');case 4plot3(score(i,1),score(i,2),score(i,3),'g*');case 5plot3(score(i,1),score(i,2),score(i,3),'b*');case 6plot3(score(i,1),score(i,2),score(i,3),'w*');case 7plot3(score(i,1),score(i,2),score(i,3),'k*');case 8plot3(score(i,1),score(i,2),score(i,3),'kd');otherwiseplot3(score(i,1),score(i,2),score(i,3),'kv');end
end

三维立体图:

点击箭头所指按钮可以三维旋转来观察其结构。

二维平面图:

主成分分析法 (PCA) 用于数据可视化实验 -- Matlab版相关推荐

  1. 主成分分析(PCA)及其可视化——matlab

    本文所用为matlab2016a matlab安装:待更新 matlab基础知识:待更新 如果本文内容已学会,可以看看python的哦 主成分分析(PCA)及其可视化--python_菜菜笨小孩的博客 ...

  2. 数据降维之主成分分析法PCA

    主成分分析法PCA 参考链接:https://www.bilibili.com/video/BV1E5411E71z 主成分分析(Principal Component Analysis,PCA), ...

  3. sklearn 主成分分析法 PCA和IPCA

    主成分分析法 (PCA) 是一种常用的数据分析手段.对于一组不同维度 之间可能存在线性相关关系的数据,PCA 能够把这组数据通过正交变换变 成各个维度之间线性无关的数据.经过 PCA 处理的数据中的各 ...

  4. 数据可视化实验:python数据可视化-柱状图,条形图,直方图,饼图,棒图,散点图,气泡图,雷达图,箱线图,折线图

    数据可视化实验:python数据可视化 实验8-12:大数据可视化工具-python 目录 1柱状图 2条形图 3直方图 4饼图 5棒图 6散点图 7气泡图 8雷达图 9箱线图 10折线图 1柱状图 ...

  5. 7.5 程序示例--PCA for 数据可视化-机器学习笔记-斯坦福吴恩达教授

    程序示例–PCA for 数据可视化 我们有一张小鸟的图片,这是一个三通道彩色图像: 我们将图片的像素按颜色进行聚类,并在三维空间观察聚类成果: 似乎在三维空间可视化不是那么直观,借助于PCA,我们将 ...

  6. 如何编写数据库可视化界面_编写用于数据可视化的替代文本

    如何编写数据库可视化界面 什么是替代文字 (What is Alt Text) Alt text (sometimes called Alt tags or alternative text) are ...

  7. 数据可视化--实验五:高维非空间数据可视化

    声明:本文CSDN作者原创投稿文章,未经许可禁止任何形式的转载,原文链接 文章目录 概要 实验过程 Pyecharts 实验结果 平行坐标系 room1-6房间人员时长饼图 概要 学院:计算机科学与技 ...

  8. 西电-数据可视化-实验五-高维非空间数据可视化(pyecharts)

    西电-数据可视化-实验五-高维非空间数据可视化 一.实验内容 在某次大型会议中,为确保会议过程安全,会场使用了电子胸牌对场内人员的移动轨迹进行了监控.现经过处理,得到了某一天内人员在场内各个区域逗留的 ...

  9. javascript可视化_12个用于数据可视化JavaScript库

    javascript可视化 无论哪个行业,全世界的企业都越来越依赖数据,尤其是在非常大的群体中时,要对过去和未来进行假设. 除了收集数据之外,通常还必须将这些数据转换成有效的图表,以突出显示所有必要的 ...

最新文章

  1. iOS-禁止scrollview垂直方向滚动,只允许水平方向滚动;或只允许垂直方向滚动...
  2. python virtualenv用法
  3. 【编程珠玑】读书笔记 第二章 算法
  4. double 直接舍去 保留两位小数
  5. Spring2.5.6学习笔记-实例化bean的几种方法
  6. poj 3258:River Hopscotch(二分)
  7. battlesvr结构
  8. 重温设计模式之 Factory
  9. miniui 样式第一次加载不出来_matplotlib--修改样式
  10. 登录oracle sql,登录 Oracle SQL Developer
  11. python异常的处理机制_python异常和文件处理机制详解
  12. [转载]Zookeeper开源客户端框架Curator简介
  13. android获取mp3/mp4媒体信息
  14. 微信小程序(一) 入门
  15. [转载]赵匡胤做事有底线
  16. nginx 安全加固心得
  17. 统一认证 ldap mysql_Centos7 Ldap统一认证部署
  18. [Python]正相匹配中文分词【哈工大 车万翔老师视频公开课】
  19. 八、线性规划 顶点、极值点和基本可行解决方案
  20. TexWorks中添加拼写纠察

热门文章

  1. WPA-PSK四次握手
  2. ascii码 iso 8859-1 Unicode 字符编码 UTF8编码 区别 表格
  3. u盘提示:文件或目录损坏且无法读取 修复
  4. 计算机微课比赛获奖作品,我院学生的微课作品在“中国大学生计算机设计大赛”西北赛区决赛中荣获一等奖...
  5. 激光振镜误差校正算法C语言,激光振镜扫描误差校正装置的制作方法
  6. UART总线协议详解
  7. 计算机类可以挂靠2017,2017年各类专业资格证大致挂靠费用.docx
  8. 做到这些,再长高10厘米不是梦
  9. RK硬件PMU的 VDC 管脚控制上电是否直接开机
  10. 超细虚拟机的克隆全过程