首席数据官

Hi, 请登录

多维数据可视化方法,看这一篇就够了

多维数据可视化是指通过一些手段将高维的数据展示在二维的平面中。

在进行探索性数据分析及对聚类或分类问题的验证中有着重要的应用。

本文着重介绍7种基于iris数据集的多维数据可视化方法。

首先请出万能的鸢尾花数据

import pandas as pd

import matplotlib.pyplot as plt

%matplotlib inline

data = pd.read_csv('../input/iris/iris.csv')

data.head()

多维数据可视化

说明:前四列是特征,第五列是分类。

数据可视化方法

接下来,具体介绍对上述四个特征的数据进行可视化操作的7种方法。

1.Andrews曲线

Andrews曲线将每个样本的属性值转化为傅里叶序列的系数来创建曲线。

通过将每一类曲线标成不同颜色可以可视化聚类数据,属于相同类别的样本的曲线通常更加接近并构成了更大的结构。

from pandas.tools.plotting import andrews_curves

plt.figure()

andrews_curves(data, 'species')

多维数据可视化

2.平行坐标

平行坐标可以看到数据中的类别以及从视觉上估计其他的统计量。

使用平行坐标时,每个点用线段联接多维数据可视化多维数据可视化,每个垂直的线代表一个属性,一组联接的线段表示一个数据点。可能是一类的数据点会更加接近。

from pandas.tools.plotting import parallel_coordinates

plt.figure()

parallel_coordinates(data, 'species')

多维数据可视化

3.RadViz图

RadViz图是基于基本的弹簧压力最小化算法(在复杂网络分析中也会经常应用)。简单来说,将一组点放在一个平面上,每一个点代表一个属性。

上述案例中有四个点,被放在一个单位圆上,你可以设想每个数据集通过一个弹簧联接到每个点上,弹力和他们属性值成正比(属性值已经标准化),数据集在平面上的位置是弹簧的均衡位置。不同类的样本用不同颜色表示。

from pandas.tools.plotting import radviz

plt.figure()

radviz(data, 'species')

多维数据可视化

4.因子分析

因子分析最初由心理学家斯皮尔曼发明,用于研究人类的人格特质。

著名的卡特尔16PF(16种相对独立的人格特征)就是应用因素分析方法得来。

是基于高斯潜在变量的一个简单线性模型,假设每一个观察值都是由低维的潜在变量加正态噪音构成。

from sklearn import decomposition

pca = decomposition.FactorAnalysis(n_components=2)

X = pca.fit_transform(data.ix[:,:-1].values)

pos=pd.DataFrame()

pos['X'] =X[:, 0]

pos['Y'] =X[:, 1]

pos['species'] = data['species']

ax = pos.ix[pos['species']=='virginica'].

plot(kind='scatter', x='X', y='Y', color='blue', label='virginica')

ax = pos.ix[pos['species']=='setosa'].

plot(kind='scatter', x='X', y='Y', color='green', label='setosa', ax=ax)

pos.ix[pos['species']=='versicolor'].

plot(kind='scatter', x='X', y='Y', color='red', label='versicolor', ax=ax)

多维数据可视化

5.主成分分析

主成分分析是由因子分析进化而来的一种降维的方法。

通过正交变换将原始特征转换为线性独立的特征,转换后得到的特征被称为主成分。主成分分析可以将原始维度降维到n个维度。

有一个特例情况,就是通过主成分分析将维度降低为2维,可以将多维数据转换为平面中的点,来达到多维数据可视化的目的。

from sklearn import decomposition

pca = decomposition.PCA(n_components=2)

X = pca.fit_transform(data.ix[:,:-1].values)

pos=pd.DataFrame()

pos['X'] =X[:, 0]

pos['Y'] =X[:, 1]

pos['species'] = data['species']

ax = pos.ix[pos['species']=='virginica'].

plot(kind='scatter', x='X', y='Y', color='blue', label='virginica')

ax = pos.ix[pos['species']=='setosa'].

plot(kind='scatter', x='X', y='Y', color='green', label='setosa', ax=ax)

pos.ix[pos['species']=='versicolor'].

plot(kind='scatter', x='X', y='Y', color='red', label='versicolor', ax=ax

多维数据可视化

需要注意,通过PCA降维实际上是损失了一些信息,我们也可以看一下保留的两个主成分可以解释原始数据的多少。

6.独立成分分析

独立成分分析将多源信号拆分成较大可能独立性的子成分,它最初不是用来降维,而是用于拆分重叠的信号。

from sklearn import decomposition

pca = decomposition.FastICA(n_components=2)

X = pca.fit_transform(data.ix[:,:-1].values)

pos=pd.DataFrame()

pos['X'] =X[:, 0]

pos['Y'] =X[:, 1]

pos['species'] = data['species']

ax = pos.ix[pos['species']=='virginica'].

plot(kind='scatter', x='X', y='Y', color='blue', label='virginica')

ax = pos.ix[pos['species']=='setosa'].

plot(kind='scatter', x='X', y='Y', color='green', label='setosa', ax=ax)

pos.ix[pos['species']=='versicolor'].

plot(kind='scatter', x='X', y='Y', color='red', label='versicolor', ax=ax)

Out[42]:

多维数据可视化

7.多维尺度分析

多维尺度分析试图寻找原始高维空间数据的距离的良好低维表征。

简单来说,多维尺度分析被用于数据

试看结束,如继续查看请付费↓↓↓↓
打赏0.5元才能查看本内容,立即打赏

来源【首席数据官】,更多内容/合作请关注「辉声辉语」公众号,送10G营销资料!

版权声明:本文内容来源互联网整理,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 jkhui22@126.com举报,一经查实,本站将立刻删除。

相关推荐

二维码
评论