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

2024-06-23 02:36

本文主要是介绍数据挖掘与分析——数据预处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  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.chinasem.cn/article/1086059

相关文章

[职场] 公务员的利弊分析 #知识分享#经验分享#其他

公务员的利弊分析     公务员作为一种稳定的职业选择,一直备受人们的关注。然而,就像任何其他职业一样,公务员职位也有其利与弊。本文将对公务员的利弊进行分析,帮助读者更好地了解这一职业的特点。 利: 1. 稳定的职业:公务员职位通常具有较高的稳定性,一旦进入公务员队伍,往往可以享受到稳定的工作环境和薪资待遇。这对于那些追求稳定的人来说,是一个很大的优势。 2. 薪资福利优厚:公务员的薪资和

【服务器运维】MySQL数据存储至数据盘

查看磁盘及分区 [root@MySQL tmp]# fdisk -lDisk /dev/sda: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical)

SQL Server中,查询数据库中有多少个表,以及数据库其余类型数据统计查询

sqlserver查询数据库中有多少个表 sql server 数表:select count(1) from sysobjects where xtype='U'数视图:select count(1) from sysobjects where xtype='V'数存储过程select count(1) from sysobjects where xtype='P' SE

高度内卷下,企业如何通过VOC(客户之声)做好竞争分析?

VOC,即客户之声,是一种通过收集和分析客户反馈、需求和期望,来洞察市场趋势和竞争对手动态的方法。在高度内卷的市场环境下,VOC不仅能够帮助企业了解客户的真实需求,还能为企业提供宝贵的竞争情报,助力企业在竞争中占据有利地位。 那么,企业该如何通过VOC(客户之声)做好竞争分析呢?深圳天行健企业管理咨询公司解析如下: 首先,要建立完善的VOC收集机制。这包括通过线上渠道(如社交媒体、官网留言

数据时代的数字企业

1.写在前面 讨论数据治理在数字企业中的影响和必要性,并介绍数据治理的核心内容和实践方法。作者强调了数据质量、数据安全、数据隐私和数据合规等方面是数据治理的核心内容,并介绍了具体的实践措施和案例分析。企业需要重视这些方面以实现数字化转型和业务增长。 数字化转型行业小伙伴可以加入我的星球,初衷成为各位数字化转型参考库,星球内容每周更新 个人工作经验资料全部放在这里,包含数据治理、数据要

如何在Java中处理JSON数据?

如何在Java中处理JSON数据? 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨在Java中如何处理JSON数据。JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,在现代应用程序中被广泛使用。Java通过多种库和API提供了处理JSON的能力,我们将深入了解其用法和最佳

两个基因相关性CPTAC蛋白组数据

目录 蛋白数据下载 ①蛋白数据下载 1,TCGA-选择泛癌数据  2,TCGA-TCPA 3,CPTAC(非TCGA) ②蛋白相关性分析 1,数据整理 2,蛋白相关性分析 PCAS在线分析 蛋白数据下载 CPTAC蛋白组学数据库介绍及数据下载分析 – 王进的个人网站 (jingege.wang) ①蛋白数据下载 可以下载泛癌蛋白数据:UCSC Xena (xena

中国341城市生态系统服务价值数据集(2000-2020年)

生态系统服务反映了人类直接或者间接从自然生态系统中获得的各种惠益,对支撑和维持人类生存和福祉起着重要基础作用。目前针对全国城市尺度的生态系统服务价值的长期评估还相对较少。我们在Xie等(2017)的静态生态系统服务当量因子表基础上,选取净初级生产力,降水量,生物迁移阻力,土壤侵蚀度和道路密度五个变量,对生态系统供给服务、调节服务、支持服务和文化服务共4大类和11小类的当量因子进行了时空调整,计算了

打包体积分析和优化

webpack分析工具:webpack-bundle-analyzer 1. 通过<script src="./vue.js"></script>方式引入vue、vuex、vue-router等包(CDN) // webpack.config.jsif(process.env.NODE_ENV==='production') {module.exports = {devtool: 'none

【计算机网络篇】数据链路层(12)交换机式以太网___以太网交换机

文章目录 🍔交换式以太网🛸以太网交换机 🍔交换式以太网 仅使用交换机(不使用集线器)的以太网就是交换式以太网 🛸以太网交换机 以太网交换机本质上就是一个多接口的网桥: 交换机的每个接口考研连接计算机,也可以理解集线器或另一个交换机 当交换机的接口与计算机或交换机连接时,可以工作在全双工方式,并能在自身内部同时连通多对接口,使每一对相互通信的计算机都能像