用星坐标(Star Coordinates)表示高维数据
来源:互联网 发布:全职高手烽火知韩txt 编辑:程序博客网 时间:2024/06/05 23:59
星型坐标是Kandogan在2001年提出的一种高维数据的可视化方法。这种方法类似于向量的合成,在二维平面上选取一点作为坐标原点,对于D维的数据,从原点出发作出D个向量(轴)代表这D个维度,向量(轴)的长度代表在星坐标表示时各个维度的权重。这种方法本质上是一个向量合成,类似于我们在物理中学的力的合成。也可以说是一个从D维到2维的一个投影变换。要实现较好的效果,要使每一个数据点到它所属类的类中心点的距离之和与到所有数据点的中心的距离之和的比尽可能小一点。
下面是一个运用星图表示数据的例子
clc,clearload 'Wine.mat';LENGTH = 178;Label = Wine(:,1);Loop = 5;%模拟退火的内循环次数%%%%%%%%% 规范化 %%%%%%%%%%%%%%minmax = zeros(14,2); %第一列存储最小值,第二列存储最大值minmax(1,1) = 0;minmax(1,2) = 0;for i = 2:14 minmax(i,1) = Wine(1,i); minmax(i,2) = Wine(1,i);endfor i = 1:LENGTH for j = 2:14 if minmax(j,1)>Wine(i,j) minmax(j,1) = Wine(i,j); end if minmax(j,2)<Wine(i,j) minmax(j,2) = Wine(i,j); end endendfor i = 1:LENGTH for j = 2:14 Wine(i,j) = (Wine(i,j)-minmax(j,1))/(minmax(j,2)-minmax(j,1))*1000-500; endend%%%%%%%%%% 规范化结束 %%%%%%%%%%%%%X = (Wine(:,2:14))';P = ones(2,13);Q = ones(2,13);%energy(Y,Label,3,LENGTH)%%%模拟退火算法T = 15000;Tf = 0.0001;alpha = 0.98;while T>Tf for i = 1:Loop position1 = 0; position2 = 0; while position2<1 || position2>13 position2 = round(13*rand); end while position1<1 || position1>2 position1 = round(2*rand); end change = rand-0.5; Q = P; Q(position1,position2) = Q(position1,position2)+change; Yp = P*X; Yq = Q*X; ep = energy(Yp,Label,3,LENGTH); eq = energy(Yq,Label,3,LENGTH); de = eq-ep; if de>0 P = Q; else if exp(de/T)>rand P = Q; else Q = P; end end end T = T*alpha;endY = P*X;for i = 1:LENGTH if Label(i)==1 scatter(Y(1,i),Y(2,i),'.r') hold on; end if Label(i)==2 scatter(Y(1,i),Y(2,i),'.g') hold on; end if Label(i)==3 scatter(Y(1,i),Y(2,i),'.b') hold on; endend%显示轴linelength = 1000;dname = {'1','2','3','4','5','6','7','8','9','10','11','12','13'};for i = 1:13 line([0 P(1,i)]*linelength,[0 P(2,i)]*linelength,'color','b') hold on; text(P(1,i)*linelength,P(2,i)*linelength,dname(i)); angle = 0:pi/100:2*pi; R = sqrt(P(1,i)*P(1,i)+P(2,i)*P(2,i))*linelength; circlex = R*cos(angle); circley = R*sin(angle); plot(circlex,circley,'-') hold on;end效果如下所示,考虑到随着退火算法收敛程度加大,同一类的数据会压缩到一起,所以这里的迭代次数设置的不是很大。在这里面可以看到第7,12,11,10四个维度在区分这三类样本点的时候的权重相对较大。
阅读全文
0 0
- 用星坐标(Star Coordinates)表示高维数据
- Homogeneous Coordinates(齐次坐标)
- Homogeneous Coordinates(齐次坐标)
- barycentric coordinates(质心坐标)
- 齐次坐标(Homogeneous Coordinates)
- 齐次坐标(Homogeneous Coordinates)
- 齐次坐标(Homogeneous coordinates)
- 齐次坐标(Homogeneous Coordinates)
- Box2D 形状坐标(Shape Coordinates)
- 齐次坐标(Homogeneous Coordinates)
- homogeneous coordinates 齐次坐标
- [译文]Homogeneous Coordinates---齐次坐标
- VC:客户坐标(client coordinates)和屏幕坐标(screen coordinates)的转换
- Coordinates
- #227 – You Can Specify Gradient Fills in Absolute Coordinates(通过绝对坐标指定渐变范围)
- Texture Coordinates and Visuals on 3D surfaces 纹理坐标
- 解析KML文件 , 获取Coordinates标签中的经纬度坐标值
- Barycentric Coordinates of Tetrahedron (计算四面体的重心坐标)
- 算法入门经典第二版 3-3 Digit Counting
- 机器学习:Selective Search for Object Recognition
- Effective Java:类和接口的设计
- SpringCloud项目生成Jar包执行
- 免锁容器之CopyOnWriteArrayList、ConcurrentHashMap
- 用星坐标(Star Coordinates)表示高维数据
- java学习——字符串<2>
- 【转载】Intellij IDEA win下快捷键
- oracle_SQL优化_高水位线导致的性能问题
- 嵌入式系统知识大总结
- 何以谓之“自顶向下,逐步求精”
- Effective Java: 方法的设计
- 如何使用epoll?一个完整的C例子
- 关于需求