【数据挖掘】练习6:上机题目

练习6:上机题目

一:实验目的与要求

1:了解R语言中各种图形元素的添加方法,并能够灵活应用这些元素。

2:了解R语言中的各种图形函数,掌握常见图形的绘制方法。

二:实验内容

1:某银行在降低贷款拖欠率的数据 bankloan 的示例数据。

2:比较违约与不违约情形不同特征的人群分布。

3:探索不同特征的人群收入与负债的分布情况。口 探索不同特征的人群收入与负债的关系。

三:实验方法与步骤

1)数据预处理,调整数据类型,按照年龄、工龄分组。

2)绘制违约与不违约客户的年龄、教育和工龄的条形图、Cleveland 点图。

3)绘制不同年龄、教育和工龄的客户收入与负债的直方图、核密度图、箱线图、小揭琴图。

4)绘制不同年龄、教育和工龄下客户的收入与负债的散点图。

第1步:读入数据

|---------------------------------------------------------------|
| bankloan <- read.csv(file="bankloan.csv", header=T) bankloan |

第2步:按照年龄分组

|--------------------------------------------------------|
| (agesort <- cut(bankloan$age,c(0,10,20,30,40,50,60))) |

第3步:按照工龄分组

|-------------------------------------------------------------------------------|
| (worksort <- cut(bankloan$seniority,c(0,5,10,20,30,40), include.lowest = T)) |

第4步:绘制违约与不违约客户的年龄条形图

|-----------------------------------------------------------------------------------------------------|
| library(ggplot2) ggplot(data=bankloan,aes(x=agesort,fill=agesort))+geom_bar()+facet_wrap(~default) |

第5步:绘制违约与不违约客户的教育条形图

|----------------------------------------------------------------------------------------|
| ggplot(data=bankloan,aes(x=education,fill=education))+geom_bar()+facet_wrap(~default) |

第6步:绘制违约与不违约客户的工龄条形图

|--------------------------------------------------------------------------------------|
| ggplot(data=bankloan,aes(x=worksort,fill=worksort))+geom_bar()+facet_wrap(~default) |

第7步:绘制违约与不违约客户的年龄Cleveland点图

|---------------------------------------------------------------------------|
| ggplot(data=bankloan,aes(x=age,y=age))+geom_point()+facet_wrap(~default) |

第8步:绘制违约与不违约客户的教育Cleveland点图

|---------------------------------------------------------------------------------------|
| ggplot(data=bankloan,aes(x=education,y=education))+geom_point()+facet_wrap(~default) |

第9步:绘制违约与不违约客户的工龄Cleveland点图

|---------------------------------------------------------------------------------------|
| ggplot(data=bankloan,aes(x=seniority,y=seniority))+geom_point()+facet_wrap(~default) |

第10步:绘制不同年龄的客户收入与负债的直方图

|------------------------------------------------------------------------|
| ggplot(data=bankloan,aes(x=age,group=factor(income)))+geom_histogram() |

第11步:绘制不同教育的客户收入与负债的直方图

|------------------------------------------------------------------------------|
| ggplot(data=bankloan,aes(x=education,group=factor(income)))+geom_histogram() |

第12步:绘制不同工龄的客户收入与负债的直方图

|------------------------------------------------------------------------------|
| ggplot(data=bankloan,aes(x=seniority,group=factor(income)))+geom_histogram() |

第13步:绘制不同年龄的客户收入与负债的核密度图

|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ggplot(data=bankloan,aes(x=income,group=factor(age),colour=factor(age)))+geom_density() ggplot(data=bankloan,aes(x=debt_rate,group=factor(age),colour=factor(age)))+geom_density() |

第14步:绘制不同教育的客户收入与负债的核密度图

|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ggplot(data=bankloan,aes(x=income,group=factor(education),colour=factor(education)))+geom_density() ggplot(data=bankloan,aes(x=debt_rate,group=factor(education),colour=factor(education)))+geom_density() |

第15步:绘制不同工龄的客户收入与负债的核密度图

|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ggplot(data=bankloan,aes(x=income,group=factor(seniority),colour=factor(seniority)))+geom_density() ggplot(data=bankloan,aes(x=debt_rate,group=factor(seniority),colour=factor(seniority)))+geom_density() |

第16步:绘制不同年龄的客户收入与负债的箱线图

|------------------------------------------------------------------------------------------------------------|
| ggplot(bankloan,aes(x=age,y=income))+geom_boxplot() ggplot(bankloan,aes(x=age,y=debt_rate))+geom_boxplot() |

第17步:绘制不同教育的客户收入与负债的箱线图

|------------------------------------------------------------------------------------------------------------------------|
| ggplot(bankloan,aes(x=education,y=income))+geom_boxplot() ggplot(bankloan,aes(x=education,y=debt_rate))+geom_boxplot() |

第18步:绘制不同工龄的客户收入与负债的箱线图

|------------------------------------------------------------------------------------------------------------------------|
| ggplot(bankloan,aes(x=seniority,y=income))+geom_boxplot() ggplot(bankloan,aes(x=seniority,y=debt_rate))+geom_boxplot() |

第19步:绘制不同年龄的客户收入与负债的小揭琴图

|------------------------------------------------------------------------------------------------------------------|
| ggplot(bankloan,aes(factor(age),income))+geom_violin() ggplot(bankloan,aes(factor(age),debt_rate))+geom_violin() |

第20步:绘制不同教育的客户收入与负债的小揭琴图

|--------------------------------------------------------------|
| ggplot(bankloan,aes(factor(education),income))+geom_violin() |

第21步:绘制不同工龄的客户收入与负债的小揭琴图

|------------------------------------------------------------------------------------------------------------------------------|
| ggplot(bankloan,aes(factor(seniority),income))+geom_violin() ggplot(bankloan,aes(factor(seniority),debt_rate))+geom_violin() |

第22步:绘制不同年龄下客户的收入与负债的散点图。

|----------------------------------------------------------------------------|
| ggplot(bankloan,aes(income,debt_rate))+geom_point(aes(colour=factor(age))) |

第23步:绘制不同教育下客户的收入与负债的散点图。

|----------------------------------------------------------------------------------|
| ggplot(bankloan,aes(income,debt_rate))+geom_point(aes(colour=factor(education))) |

第24步:绘制不同工龄下客户的收入与负债的散点图。

|----------------------------------------------------------------------------------|
| ggplot(bankloan,aes(income,debt_rate))+geom_point(aes(colour=factor(seniority))) |

四:思考与实验总结

1)如何选择绘制的图形类型?

选择绘制的图形类型通常取决于数据的类型和分析的目的。

柱状图(Bar Plot):用于显示不同类别之间的频数或数量关系。适用于比较类别变量之间的差异。

折线图(Line Plot):用于显示连续变量随时间或其他有序变量的变化。适用于显示趋势和变化的方向。

散点图(Scatter Plot):用于显示两个连续变量之间的关系。适用于发现变量之间的相关性和观察异常值。

箱线图(Box Plot):用于显示连续变量的分布情况,包括中位数、四分位数和异常值。适用于比较多个组的分布,并识别异常值。

直方图(Histogram):用于显示连续变量的分布情况。适用于了解数据的分布形状和集中程度。

密度图(Density Plot):用于显示连续变量的分布密度估计。适用于比较两个或多个分布,并观察它们之间的重叠程度。

小提琴图(Violin Plot):结合了箱线图和密度图的特点,展示了数据的分布形状和中位数。适用于比较多个组的分布,并观察它们之间的差异。

Cleveland 点图(Cleveland Dot Plot):用于显示类别变量和连续变量之间的关系。适用于显示组内变量的分布情况和组间的差异。

2)如何向原始图形添加合适的图形元素,使图形简单明了且更能表达数据含义?

添加合适的图形元素可以帮助图形更加清晰地传达数据的含义。常见的图形元素如下:

标题(Title):描述图形内容和目的,使读者可以快速理解图形。

坐标轴标签(Axis Labels):标明 x 轴和 y 轴的含义,提供数据的单位或范围。

图例(Legend):用于解释图形中的颜色或图案代表的含义,特别适用于多组数据的比较。

参考线(Reference Lines):在图形中添加水平线或垂直线,表示特定数值或阈值,有助于对比数据和发现模式。

数据标签(Data Labels):在图形中添加数据点的数值标签,使得读者可以直观地了解数据。

注释(Annotations):添加文字说明或箭头指向特定数据点或趋势,提供更多背景信息或关键观察。

图形形状(Geometric Shapes):在图形中添加几何形状,如矩形、圆形等,以突出或强调特定区域或数据。

背景色(Background Color):调整图形背景色,使得图形更具对比度或吸引力。

相关推荐
冷小鱼5 分钟前
OpenClaw:重新定义个人 AI 智能体的开源革命
人工智能·开源
格鸰爱童话6 分钟前
向AI学习项目技能(三)
java·人工智能·python·学习
net3m336 分钟前
qkv网络训练时,Wq和 Wk和 Wv 矩阵需要调整来变化,但是词token的向量值也要同时随训练变化吗
人工智能
嫂子开门我是_我哥10 分钟前
心电域泛化研究从0入门系列 | 第四篇:域泛化核心理论与主流方法——破解心电AI跨域失效难题
人工智能·算法·机器学习
wxl78122710 分钟前
基于SoulX-FlashHead从零搭建实时AI唇形同步直播系统
人工智能·直播数字人·soulx-flashhead·5090
黑客说11 分钟前
独领无限流赛道:白日梦科技,重新定义AI时代的互动娱乐标杆
大数据·人工智能
乾元12 分钟前
算力优化: 在有限硬件资源下进行安全模型微调(Fine-tuning)
网络·人工智能·神经网络·安全·web安全·机器学习·安全架构
数字供应链安全产品选型16 分钟前
2026,问境AIST发布:悬镜安全定义AI原生安全治理新范式
人工智能·安全·ai-native
云汉芯城ICkey20 分钟前
云汉芯城✖海智在线亮相AWE 2026:AI驱动的供应链体系加速创新产品落地
人工智能
泛联新安21 分钟前
AI For Trusted Code|泛联新安:以“AI+可信”构筑智能时代基石
人工智能