用数据可视化直观理解数据--iris数据集为例
2017-04-07 15:43
519 查看
原文:https://www.kaggle.com/benhamner/d/uciml/iris/python-data-visualizations
See Kaggle Datasets for other datasets to try visualizing. The World Food Facts data is an especially rich one for visualization.
比较常用的图表有:
查看目标变量的分布。当分布不平衡时,根据评分标准和具体模型的使用不同,可能会严重影响性能。
-iris[“Species”].value_counts()
对 Numerical Variable,可以用 Box Plot 来直观地查看它的分布。
-sns.boxplot(x=”Species”, y=”PetalLengthCm”, data=iris)
对于坐标类数据,可以用 Scatter Plot 来查看它们的分布趋势和是否有离群点的存在。
-iris.plot(kind=”scatter”, x=”SepalLengthCm”, y=”SepalWidthCm”)
-sns.jointplot(x=”SepalLengthCm”, y=”SepalWidthCm”, data=iris, size=5)
对于分类问题,将数据根据 Label 的不同着不同的颜色绘制出来,这对 Feature 的构造很有帮助。
-sns.FacetGrid(iris,hue=”Species”,size=5).map(plt.scatter,”SepalLengthCm”,”SepalWidthCm”).add_legend()
绘制变量之间两两的分布和相关度图表。
-sns.pairplot(iris, hue=”Species”, size=3)
-sns.pairplot(iris, hue=”Species”, size=3, diag_kind=”kde”)
详细例子说明
完整版代码,可直接下载:http://download.csdn.net/download/u013527419/9806632
seaborn 库的一些简单用法,可以见:http://blog.csdn.net/longgb123/article/details/53228256
里面有几篇文章是介绍这个库的
See Kaggle Datasets for other datasets to try visualizing. The World Food Facts data is an especially rich one for visualization.
比较常用的图表有:
查看目标变量的分布。当分布不平衡时,根据评分标准和具体模型的使用不同,可能会严重影响性能。
-iris[“Species”].value_counts()
对 Numerical Variable,可以用 Box Plot 来直观地查看它的分布。
-sns.boxplot(x=”Species”, y=”PetalLengthCm”, data=iris)
对于坐标类数据,可以用 Scatter Plot 来查看它们的分布趋势和是否有离群点的存在。
-iris.plot(kind=”scatter”, x=”SepalLengthCm”, y=”SepalWidthCm”)
-sns.jointplot(x=”SepalLengthCm”, y=”SepalWidthCm”, data=iris, size=5)
对于分类问题,将数据根据 Label 的不同着不同的颜色绘制出来,这对 Feature 的构造很有帮助。
-sns.FacetGrid(iris,hue=”Species”,size=5).map(plt.scatter,”SepalLengthCm”,”SepalWidthCm”).add_legend()
绘制变量之间两两的分布和相关度图表。
-sns.pairplot(iris, hue=”Species”, size=3)
-sns.pairplot(iris, hue=”Species”, size=3, diag_kind=”kde”)
详细例子说明
# coding=utf-8 import pandas as pd from sklearn.datasets import load_iris # 载入seaborn,因为载入时会有警告出现,因此先载入warnings,忽略警告。 import warnings warnings.filterwarnings("ignore") import seaborn as sns import matplotlib.pyplot as plt sns.set(style="white", color_codes=True) iris = pd.DataFrame(load_iris().data) iris.columns = ['SepalLengthCm','SepalWidthCm','PetalLengthCm','PetalWidthCm'] iris['Species'] = load_iris().target # 首先探索一下数据集的大体情况,多少个样本,每一个样本多少个特征等 print iris.shape print iris.head()
# 探索一下是否为均衡分类 # 分几类?每一类多少个样本? # 可以从结果看出,很均匀。。。若为不均衡分类,则可参照此文https://www.svds.com/learning-imbalanced-classes/进行处理。 print iris["Species"].value_counts()
# plot是画图的最主要方法,Series和DataFrame都有plot方法。 # plot默认生成是曲线图,你可以通过kind参数生成其他的图形,可选的值为:line, bar(柱状图), barh, # kde, density, scatter(散点图)。 # 对于坐标类数据,可以用 Scatter Plot 来查看它们的分布趋势和是否有离群点的存在 iris.plot(kind="scatter", x="SepalLengthCm", y="SepalWidthCm")
# 用seaborn库来画出与上面相似的图 # seaborn 的 jointplot 函数可以在同一个图中画出二变量的散点图和单变量的柱状图 sns.jointplot(x="SepalLengthCm", y="SepalWidthCm", data=iris, size=5)
# 上面的两个散点图并不能显示每一个点所属的类别 # 所以,接下来用 seaborn 的 FacetGrid 函数按照Species花的种类来在散点图上标上不同的颜色,hue英文是色彩的意思。 sns.FacetGrid(iris, hue="Species", size=5).map(plt.scatter, "SepalLengthCm", "SepalWidthCm").add_legend()
# 通过箱线图来查看单个特征的分布 # 对 Numerical Variable,可以用 Box Plot 来直观地查看不同花类型的分布。 sns.boxplot(x="Species", y="PetalLengthCm", data=iris)
# 下面的操作,将每一个Species所属的点加到对应的位置,加上散点图, # 振动值jitter=True 使各个散点分开,要不然会是一条直线 # 注意此处要将坐标图用ax先保存起来,这样第二次才会在原来的基础上加上散点图 ax = sns.boxplot(x="Species", y="PetalLengthCm", data=iris) ax = sns.stripplot(x="Species", y="PetalLengthCm", data=iris, jitter=True, edgecolor="gray")
# violinplot 小提琴图,查看密度分布,结合了前面的两个图,并且进行了简化 # 数据越稠密越宽,越稀疏越窄 sns.violinplot(x="Species", y="PetalLengthCm", data=iris, size=6) # sns.kdeplot == kernel density 核密度图(单个变量) sns.FacetGrid(iris, hue="Species", size=6).map(sns.kdeplot, "PetalLengthCm").add_legend() # pairplot 任意两个变量间的关系 sns.pairplot(iris, hue="Species", size=3)
# 上图中,中间对角线的部分图形也可以用kde显示 sns.pairplot(iris, hue="Species", size=3, diag_kind="kde")
# 下面的用Pandas自带的画图 # We can quickly make a boxplot with Pandas on each feature split out by species iris.boxplot(by="Species", figsize=(12, 6)) # Andrews Curves 用样本的各个属性作为傅里叶级数的系数然后画出来 # Andrews Curves 将高维的点化为二维的曲线,曲线是一条傅里叶函数的样子,参数项为不# 同的特征值,臆想出来了自变量t,这样每个点都是一条曲线 from pandas.tools.plotting import andrews_curves andrews_curves(iris, "Species") # # Another multivariate visualization technique pandas has is parallel_coordinates # Parallel coordinates 将每个特征作为单独的一列画,然后用线将每一个样本的特征连接起来 from pandas.tools.plotting import parallel_coordinates parallel_coordinates(iris, "Species") # Which puts each feature as a point on a 2D plane, and then simulates # having each sample attached to those points through a spring weighted by the # relative value for that feature from pandas.tools.plotting import radviz radviz(iris, "Species") plt.show()
完整版代码,可直接下载:http://download.csdn.net/download/u013527419/9806632
seaborn 库的一些简单用法,可以见:http://blog.csdn.net/longgb123/article/details/53228256
里面有几篇文章是介绍这个库的
相关文章推荐
- 用数据可视化直观理解数据--iris数据集为例
- 【python数据挖掘课程】十九.鸢尾花数据集可视化、线性回归、决策树花样分析
- 用python理解数据---房价预测数据可视化分析kernel读后感
- 数据挖掘-K-近邻分类器-Iris数据集分析-根据花萼长宽分类-以散点图显示(一)
- 大数据入门——Iris数据集类别预测(K近邻分类器:KNN)
- Matlab读取UCI数据集Iris中数据
- 数据挖掘-K-近邻分类器-Iris数据集分析-根据花瓣长宽分类-以散点图显示(二)
- dimensionality reduction动机---visualization(将数据可视化帮助我们更好地理解数据)
- Football数据集可视化处理——gephi可视化处理数据
- 数据可视化简单理解
- 如何使用R进行数据展现?且看使用iris数据可视化实例
- 数据挖掘-K-近邻分类器-Iris数据集分析-PCA降维处理后显示分类情况(三)
- CIFAR10数据集 matlab可视化及理解
- 基于PetShop的数据可视化网站(五):关于登录的理解
- 数据挖掘-oneR算法-Iris数据集分析-使用oneR算法进行分类预测(五)
- 如何使用R进行数据展现?且看使用iris数据可视化实例
- ECharts-基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表
- 数据可视化相关的名词理解集锦
- 数据挖掘-K-近邻分类器-Iris数据集分析-使用K-近邻分类器进行分类预测(四)
- 数据挖掘-Iris数据集分析-决策边界(六)