数据可视化之小提琴图(原理+Python代码)

本文介绍了小提琴图的原理,它结合了箱线图和密度图,用于显示数据分布和概率密度。内容包括小提琴图的信息总结,如四分位数、中位数、置信区间以及数据密度。接着,文章提供了Python代码实现小提琴图,并通过分析二手车交易价格数据,揭示不同变速箱类别对价格的影响,指出此类变量在建模中的价值。同时,注意到目标变量的分布为右偏,建议在模型构建前进行数据转换。
摘要由CSDN通过智能技术生成

数据来源于天池赛题:零基础入门数据挖掘 - 二手车交易价格预测

地址:https://tianchi.aliyun.com/competition/entrance/231784/introduction?spm=5176.12281957.1004.1.38b02448ausjSX

一、原理介绍

小提琴图(violin plot)顾名思义,就是外形像小提琴的一种图。这种图用来显示数据的分布和概率密度,可以看成是箱线图和密度图的结合。小提琴图的中间部分反映箱线图的信息,图的两侧反映出密度图的信息。小提琴图常用于建模前的EDA数据探索性分析环节。

在这里插入图片描述
下面对小提琴图所反映的信息做一个总结:

  1. 分布信息
  • 小提琴图中间的黑色粗条用来显示四分位数。黑色粗条中间的白点表示中位数,粗条的顶边和底边分别表示上四分位数和下四分位数,通过边的位置所对应的y轴的数值就可以看到四分位数的值。
  • 由黑色粗条延伸出的黑细线表示95%的置信区间。
  1. 概率密度信息
  • 从小提琴图的外形可以看到任意位置的数据密度,实际上就是旋转了90度的密度图。
  • 小提琴图越宽,表示密度越大。
  • 可以展示出数据的多个峰值。

二、代码实现

#加载需要的模块
import warnings
warnings.filterwarnings('ignore')
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
#导入数据
Train_data = pd.read_csv('F:/data/used_car_train_20200313.csv', sep=' ')
Train_data['gearbox'].value_counts() #对分类变量的类别进行计数
#后面将研究不同类型的'gearbox'对应'price'的差异
x=Train_data['gearbox']
y=Train_data['price'] #在原数据集中,'price'为目标变量
#绘制小提琴图
sns.violinplot(x=x,y=y,data=Train_data) 
#在sns.violinplot中,x是类别变量,y是数值型变量,data用于指定数据集

运行代码之后就可以得到小提琴图
在这里插入图片描述

三、结果解读

  • 从上面的小提琴图可以看出,不同的变速箱类别对应的二手车价格是不同的。当变速箱类别为1时,汽车价格相对更高。在建模的过程中,往往这种差异性较大的变量对于建模的效果更好,因此可以初步筛选出gearbox作为后面模型的输入变量。
  • 从分布情况来看,price极度右偏。由于目标变量不符合正态分布,在进行回归之前,需要对其进行转换,常用的转换方法有取对数和拟合无界约翰逊分布。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值