数据挖掘与分析——数据预处理

  1. 数据探索

波士顿房价数据集:卡内基梅隆大学收集,StatLib库,1978年,涵盖了麻省波士顿的506个不同郊区的房屋数据。

一共含有506条数据。每条数据14个字段,包含13个属性,和一个房价的平均值。

数据读取方法:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn import datasets
names =['CRIM','ZN','INDUS','CHAS','NOX','RM','AGE','DIS','RAD','TAX','PTRATIO','B','LSTAT','MEDV']
data=pd.read_csv('housing.csv', names=names, delim_whitespace=True)
data1=data.head(10)
  1. 请绘制散点图探索波士顿房价数据集中犯罪率(CRIM)和房价中位数(MEDV)之间的相关性。
# 创建散点图
sns.scatterplot(x=data1['CRIM'], y=data1['ZN'])
# 添加数据标签
for i in range(len(data1['CRIM'])):plt.text(data1['CRIM'][i], data1['ZN'][i], str(i), fontsize=8, color='black')
# 添加标题
plt.title('Correlation between CRIM and ZN')
# 显示图形
plt.show()

 

  1. 请使用波士顿房价数据集中房价中位数(MEDV)来绘制箱线图。
# 创建箱线图
sns.boxplot(data['CRIM'])
# 添加数据标签
# for i in range(len(data['CRIM'])):
#     plt.text(1, data['CRIM'][i], data['CRIM'][i], horizontalalignment='center', verticalalignment='bottom')
plt.title('Boxplot of CRIM')
plt.show()

 

  1. 请使用暗点图矩阵探索波士顿房价数据集。
sns.pairplot(data)
plt.show()print(data['CRIM'].corr(data['MEDV'],method='pearson'))
print(data['CRIM'].corr(data['MEDV'],method='spearman'))
print(data['CRIM'].corr(data['MEDV'],method='kendall'))

 

  1. 请分别使用皮尔逊(pearson)、斯皮尔曼(spearman)、肯德尔(kendall)相关系数对犯罪率(CRIM)和房价中位数(MEDV)之间的相关性进行度量。
print(data['CRIM'].corr(data['MEDV'],method='pearson'))
print(data['CRIM'].corr(data['MEDV'],method='spearman'))
print(data['CRIM'].corr(data['MEDV'],method='kendall'))

 

相关系数计算方法:

  1. 请绘制波士顿房价数据集中各变量之间相关系数的热力图。

需提前安装seaborn库:pip install seaborn


plt.figure(figsize=(12, 10))
sns.heatmap(data.corr(),annot=True,cmap='Blues_r')
plt.show()

 

  1. 数据预处理
x1x2x3x4x5x6x7x8x9x10x11x12x13x14y
122.0811.462441.5850001210012130
022.6772840.1650000216010
029.581.751441.250001228010
021.671530111112011
120.178.172641.96111402601591
00.5852881120211
117.426.52340.12500002601010
058.674.4621183.0411602435611
127.8311283000021765380
055.757.082486.7511312100510
133.51.752148114122538581
141.425211851161247011
120.671.251881.375113121400
34.92521487.511612010011
12.712842.415001232010
148.086.0424400002026911
129.584.52947.51121233011
018.9292640.7511202885921
1201.251440.1250000214050
022.425.66521142.585170212932581
028.170.5852640.04000210050
019.170.5851640.5851001216010
141.171.3352240.1650000216810
141.581.752440.21100216010
19.52640.7900002803510
132.751.521385.511312011
122.50.1251440.12500002200710
133.173.041882.0411112180180281
030.6712284211102220201
123.082.52841.0851111126021851
1270.75288113123121511
020.4210.51148000012154330
152.331.3751889.4610122001010
123.0811.52982.1251111122902851
142.831.2527413.875011123521130
174.83191110.040120203520
125264310012011
139.5813.9152948.625116127011
047.7582847.87511612012611
047.423214413.8751121251917051
123.17021340.0851002011
122.581.51640.5400012120680
126.751.12521481.2510002052991
163.330.542840.5851131218010
123.750.4151840.040120212870
020.7521140.71112124911
024.51.751840.1650000213210
116.170.042840.0400002011
029.521108200002256180
052.83152845.5111402022011
132.333.52440.50001223210
121.084.1251380.0400021401010
128.170.1251440.0850000221621010
1191.751842.3350001211270
127.583.251185.0850121220
127.831.52942111112434361
16.52653.51110205011
037.332.52380.21000022600
142.54.9151943.16510125214431
156.7512.252741.251141220011
143.1752352.250001214110
023.750.712940.250111224050
118.522341.5112021203011
040.833.52350.500001116010
024.50.521181.5100022808251
  1. 读取“银行贷款审批数据.xlsx”表,自变量为x1-x14,决策变量为y(1-同意贷款,0-不同意贷款),自变量中有连续变量(x2,x3,x5,x6,x7,x10,x13,x14)和离散变量(x1,x4,x8,x9,x11,x12),请对连续变量中的缺失值用均值策略填充,对离散变量中的缺失值用最频繁值策略填充。
import pandas as pd# 读取Excel文件
df = pd.read_excel("银行贷款审批数据.xlsx")# 定义连续变量和离散变量列表
continuous_vars = ['x2', 'x3', 'x5', 'x6', 'x7', 'x10', 'x13', 'x14']
discrete_vars = ['x1', 'x4', 'x8', 'x9', 'x11', 'x12']# 使用均值填充连续变量的缺失值
for var in continuous_vars:df[var].fillna(df[var].mean(), inplace=True)# 使用最频繁值填充离散变量的缺失值
for var in discrete_vars:most_frequent_value = df[var].mode()[0]df[var].fillna(most_frequent_value, inplace=True)# 检查是否还有缺失值
missing_values = df.isnull().sum().sum()
if missing_values == 0:print("所有缺失值已填充。")
else:print("仍有缺失值未填充。")# 输出填充后的数据框的前几行
print(df.head())# 保存填充后的数据框到Excel文件
df.to_excel("填充后的银行贷款审批数据.xlsx", index=False)

 

 

x1x2x3x4x5x6x7x8x9x10x11x12x13x14y
122.0811.462441.5850001210012130
022.6772840.1650000216010
029.581.751441.250001228010
021.674.7216372981530111112011
120.178.172641.96111402601591
031.594380530.5852882.22917525811202183.760997111
117.426.52340.12500002601010
058.674.4621183.0411602435611
127.8311283000021765380
055.757.082486.7511312100510
133.51.7521482.229175258114122538581
141.425211851161247011
120.671.251881.375113121401023.6530610
134.92521487.511612010011
131.594380532.712842.415002.4245973651232010
148.086.042442.22917525800002026911
129.584.52947.51121233011
018.9292640.7511202885921
1201.251440.1250000214050
022.425.66521142.5851070212932581
028.170.5852640.0410002183.760997110050
019.170.5851640.5851001216010
141.171.3352240.1650000216810
141.581.752440.21102.4245973650216010
119.54.7216372982640.7900002803510
132.751.521385.511312011
122.50.1251440.12500002200710
133.173.041882.0411112180180281
030.6712284211102220201
123.082.52841.0851111126021851
1270.752882.229175258113123121511
020.4210.51148000012154330
152.331.3751889.46102.424597365122001010
123.0811.52982.1251111122902851
142.831.2527413.875011123521130
174.83191110.040120203520
1254.7216372982643100122011
139.5813.9152948.625116127011
047.7582847.87511612012611
047.423214413.8751121251917051
123.17021340.085102.42459736502011
122.581.51640.5400012120680
126.751.12521481.2510002052991
163.330.542840.5851131218010
123.750.4151840.040120212870
  1. 请使用StandardScaler对波士顿房价数据集进行零-均值规范化。
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
print(X_scaled)
print(X_scaled.shape)

  1. 在上一问规范化后的数据基础上使用PCA对数据进行降维处理(降维后的特征数量为2)。

 

pca = PCA(n_components=2)
X_pca = pca.fit_transform(X_scaled)
print(X_pca)
print(X_pca.shape)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/857444.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

昨天gitee网站访问不了,开始以为电脑哪里有问题了

昨天gitee网站下午访问不了,开始以为是什么毛病。 结果同样的网络,手机是可以访问的。 当然就ping www.gitee.com 结果也下面那样是正常的 以为是好的,但就是访问www.gitee.com也是不行,后来用阿里云的服务器curl访问是下面情况&…

LabVIEW机器视觉在质量控制中的应用

基于LabVIEW的机器视觉系统在质量控制中应用广泛,通过图像采集、处理和分析,自动检测产品缺陷、测量尺寸和识别标记,提高生产效率和产品质量。下面介绍LabVIEW机器视觉系统在质量控制中的实现方法、应用场景及其优势。 项目背景 在现代制造业…

github连接报本地

一、创建GIthub账号 这里默认大家已经创建好了并且有加速器,能正常上网,然后才能进行下面的操作。 二、创建ssh公钥 网址:Sign in to GitHub GitHub Sign in to GitHub GitHub 进入下面的界面: 然后创建新的密钥 三、官方文…

MCT Self-Refine:创新集成蒙特卡洛树搜索 (MCTS)提高复杂数学推理任务的性能,超GPT4,使用 LLaMa-3 8B 进行自我优化

📜 文献卡 题目: Accessing GPT-4 level Mathematical Olympiad Solutions via Monte Carlo Tree Self-refine with LLaMa-3 8B作者: Di Zhang; Xiaoshui Huang; Dongzhan Zhou; Yuqiang Li; Wanli OuyangDOI: 10.48550/arXiv.2406.07394摘要: This pape…

kettle无法启动问题_PENTAHO_JAVA_HOME

1,遇到spoon.bat启动报错:先增加pause看清错误信息 1.1,错误信息 1.2,因为本地安装jdk1.6无法支持现有版本kettle。只能手动执行kettle调用的java路径;如下 系统--高级系统设置--高级--环境变量 启动成功

fastapi教程(一):初识 fastapi

FastAPI 是一个用于构建 API 的现代、快速(高性能)的 web 框架,使用 Python 并基于标准的 Python 类型提示。 关键特性: 快速:可与 NodeJS 和 Go 并肩的极高性能(归功于 Starlette 和 Pydantic)。最快的 …

甘肃旅游服务平台的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,公告信息管理,景点管理,酒店管理,基础数据管理,美食管理 前台账户功能包括:系统首页,个人中心&#xff0…

HTML静态网页成品作业(HTML+CSS)——故宫介绍网页(4个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有4个页面。 二、作品演示 三、代…

Docker:安装RediSearch全文搜索

1、简述 在本文中,我们将介绍如何使用Docker快速、简便地安装RediSearch,Redis的全文搜索模块。RediSearch提供了高效的全文搜索功能,通过Docker安装,可以轻松地在任何环境中部署和管理RediSearch。 官网地址:https:/…

【GUI】LVGL无操作系统移植以及移植过程错误处理

目录 介绍 1. 删除源码 2. 导入lvgl到项目screen_mcu中 3. keil添加分组和头文件 4. 移植显示 5. 移植触摸 6. 添加测试案例 6.1. 测试按钮 6.2. 测试音乐界面 7. 提供时钟 错误处理 L6218E错误 出现花屏 屏幕颜色不对 内存分配 介绍 本文 主要介绍GD32移植…

BlockingQueue详解(含动画演示)

目录 BlockingQueue详解0、BlockingQueue简介BlockingQueue接口中方法注释BlockingQueue的实现,总结计划 1、ArrayBlockingQueue简介2、ArrayBlockingQueue的继承体系3、ArrayBlockingQueue的构造方法①、 ArrayBlockingQueue(int capacity)②、ArrayBlockingQueue(…

计算机组成原理 —— 存储系统(概述)

计算机组成原理 —— 存储系统(概述) 存储系统按层次划分按照存储介质分类按照存储方式分类按照信息可更改性分类根据信息的可保存性分类存储器性能指标 我们今天来学习计算机组成原理中的存储系统: 存储系统 存储系统是计算机系统中用于存…

vue实现的商品列表网页

一、商品列表效果如下 二、代码&#xff1b; vue实现的商品列表网页 &#xff0c; 图片在vue项目的Public文件夹里的 imgs中 <template><div class"common-layout"><!-- el-container:外层容器。 当子元素中包含 <el-header> 或 <el-foo…

mysql:简单理解mysql mvcc的可重复读

# 原理 假设有这样的sql begin select&#xff08;或update、insert、delete&#xff09; ... commit当执行【begin】的时候&#xff0c;标记有一个新事务要开始&#xff0c;但是事务还没有真正开始&#xff0c;事务id还没有产生当执行事务里面的第一个sql语句时&#xff08;…

java之url任意跳转漏洞

1 漏洞介绍 URLRedirect url重定向漏洞也称url任意跳转漏洞&#xff0c;网站信任了用户的输入导致恶意攻击&#xff0c;url重定向主要用来钓鱼&#xff0c;比如url跳转中最常见的跳转在登陆口&#xff0c;支付口&#xff0c;也就是一旦登陆将会跳转任意自己构造的网站&#xf…

Xshell7免费版下载安装使用

​一、下载安装​ 1.打开官网下载 https://www.xshell.com/zh/free-for-home-school/ 2.选择合适的下载路径&#xff0c;点击下载按钮&#xff0c;然后按照提示完成安装。 二、Xshell7的使用&#xff0c;Xhell连接Linux 1.连接之前&#xff0c;确保在Linux中开启SSH。参考&a…

YOLOv8中的C2f模块

文章目录 一、结构概述二、模块功能 一、结构概述 C2f块:首先由一个卷积块(Conv)组成&#xff0c;该卷积块接收输入特征图并生成中间特征图特征图拆分:生成的中间特征图被拆分成两部分&#xff0c;一部分直接传递到最终的Concat块&#xff0c;另一部分传递到多个Botleneck块进…

QT基础 - 文本文件读写

目录 零. 前言 一.读取文件 二. 写入文件 三. 和二进制读写的区别 零. 前言 在 Qt 中&#xff0c;对文本文件进行读写操作是常见的任务之一。这对于保存和加载配置信息、处理数据文件等非常有用。 Qt 提供了多种方式来读写文本文件&#xff0c;使得文件操作变得相对简单和…

SwiftUI 6.0(iOS 18)ScrollView 全新的滚动位置(ScrollPosition)揭秘

概览 在只有方寸之间大小的手持设备上要想体面的向用户展示海量信息&#xff0c;滚动视图&#xff08;ScrollView&#xff09;无疑是绝佳的“东牀之选”。 在 SwiftUI 历史的长河中&#xff0c;总觉得苹果对于 ScrollView 视图功能的升级是在“挤牙膏”。这不&#xff0c;在本…

spire.Pdf 将pdf转成image

一、nuget安装 <ItemGroup><PackageReference Include"Spire.PDF" Version"10.6.7" /></ItemGroup> 二、直接上代码 using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using System; using System.IO;namespace …