数据集可视化
采用Python的Sklearn机器学习库中自带的数据集——鸢尾花数据集。简单分析数据集之间特征的关系图,根据花瓣长度、花瓣宽度、花萼长度、花萼宽度四个特征进行绘图
Iris plants 数据集可以从KEEL dataset数据集网站获取,也可以直接从Sklearn.datasets机器学习包得到。数据集共包含4个特征变量、1个类别变量,共有150个样本。类别变量分别对应鸢尾花的三个亚属,分别是山鸢尾 (Iris-setosa)、变色鸢尾(Iris-versicolor)和维吉尼亚鸢尾(Iris-virginica) 分别用[0,1,2]来做映射
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris #导入数据集iris
%matplotlib inline
iris = load_iris() #载入数据集
print(iris.data) #打印输出显示
image.png
print(iris.target) #共150条记录,分别代表50条山鸢尾 (Iris-setosa)、变色鸢尾(Iris-versicolor)、维吉尼亚鸢尾(Iris-virginica)
image.png
iris.data.shape # iris数据集150行4列的二维数组
image.png
url = "https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"
names = ['sepal-length', 'sepal-width', 'petal-length', 'petal-width', 'class']
dataset = pd.read_csv(url, names=names)
dataset.hist() #数据直方图histograms
image.png
print(dataset.describe())
image.png
dataset.plot(x='sepal-length', y='sepal-width', kind='scatter') #散点图,x轴表示sepal-length花萼长度,y轴表示sepal-width花萼宽度
image.png
dataset.plot(kind='kde') #KDE图,KDE图也被称作密度图(Kernel Density Estimate,核密度估计)
image.png
#kind='box'绘制箱图,包含子图且子图的行列布局layout为2*2,子图共用x轴、y轴刻度,标签为False
dataset.plot(kind='box', subplots=True, layout=(2,2), sharex=False, sharey=False)
image.png
RadViz是一种可视化多维数据的方式。它基于基本的弹簧压力最小化算法(在复杂网络分析中也会经常应用)。简单来说,将一组点放在一个平面上,每一个点代表一个属性,我们案例中有四个点,被放在一个单位圆上,接下来你可以设想每个数据集通过一个弹簧联接到每个点上,弹力和他们属性值成正比(属性值已经标准化),数据集在平面上的位置是弹簧的均衡位置。不同类的样本用不同颜色表示
from pandas.tools.plotting import radviz
radviz(dataset,'class')
image.png
Andrews曲线将每个样本的属性值转化为傅里叶序列的系数来创建曲线。通过将每一类曲线标成不同颜色可以可视化聚类数据,属于相同类别的样本的曲线通常更