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

news2024/11/27 8:20:46
  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.coloradmin.cn/o/1851854.html

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

相关文章

Ubuntu安装Vins-Fusion(1) —— Ubuntu18.04安装vins-fusion

目录 前言 1、准备1.1 安装ROS1.2 安装 Ceres Solver 2、安装 VINS-Fusion3、测试(EuRoC MAV 数据集)3.1、下载数据集3.2 Monocualr camera IMU3.3 Stereo cameras IMU3.4 Stereo cameras 参考 前言 VINS-Fusion 是一种基于优化的多传感器状态估计器&…

华为RH2288 V3安装 Linux 系统,安装过程心得

带着U盘,怀着激动的心情进入机房安装操作系统,结果没有显示器和键盘鼠标,傻眼了。 作为过来人,温馨提醒,进入机房前记得先打听,准备好这些:机房房间号、机柜编号、物理机编号、键盘、鼠标、显示…

C#调用OpenCvSharp计算并显示带掩膜的图像直方图

之前的文章简要测试了调用OpenCvSharp的Cv2.CalcHist函数计算直方图的用法,不过使用过程中参数mask的值始终为null,也就是计算的整幅图像的直方图,如果mask不为空,则可以计算图像指定区域的直方图,本文学习掩膜的创建方…

一键部署开源PaaS服务Dokploy,代替Vercel, Netlify 以及 Heroku

前言 Vercel, Netlify 以及 Heroku都是知名的PaaS(Platform as a Service|平台即服务)服务商,利用这些平台我们可以方便快捷的进行项目部署。尤其是各家生态完善,是很多独立开发者的首选之地。 但是随之而来的就是另外的隐患了&…

如何用Spring使用Redis作为消息订阅?

目录 一、Spring 框架介绍二、Redis 框架介绍三、什么是消息订阅四、如何用Spring使用Redis作为消息订阅 一、Spring 框架介绍 Spring 框架是一个开源的 Java 平台,它提供了全面的基础设施支持,以便您可以更容易地开发 Java 应用程序。Spring 处理了基础…

全局唯一ID生成

全局ID生成器,是一种在分布式系统下用来生成全局唯一ID的工具需满足以下特性: 唯一性、递增性、安全性、高可用、高性能 生成在所有库或表中都满足唯一得ID 实现: 利用Redis的自增功能 INCRBY key increment (INCRBY | Docs),并在…

mysql 某个时间字段取值时间标识的字符串的值

SELECT STR_TO_DATE(substr(out_trade_no, 1,14), %Y-%m-%d %H:%i:%s) FROM o_order WHERE id 364457; UPDATE o_order SET created_time DATE_FORMAT(STR_TO_DATE(substr(out_trade_no, 1,14), %Y%m%d %H%i%s), %Y-%m-%d %H:%i:%s) WHERE id 364457; 举例: 1…

第9章 EM算法:例题及课后习题

1 概要 1.EM算法是含有隐变量的概率模型极大似然估计或极大后验概率估计的迭代算法。含有隐变量的概率模型的数据表示为 P ( Y , Z ∣ θ ) P(Y,Z|\theta) P(Y,Z∣θ)。这里, Y Y Y是观测变量的数据, Z Z Z是隐变量的数据, θ \t…

▶《强化学习的数学原理》(2024春)_西湖大学赵世钰 Ch4 值迭代 与 策略迭代 【动态规划 model-based】

PPT 截取必要信息。 课程网站做习题。总体 MOOC 过一遍 1、视频 学堂在线 习题 2、过 电子书 补充 【下载: 本章 PDF 电子书 GitHub】 [又看了一遍视频。原来第一次跳过了好多内容。。。] 3、总体 MOOC 过一遍 习题 学堂在线 课程页面链接 中国大学MOOC 课程页面链…

keep-alive实现页面缓存

<!--router-view 实现页面缓存--> <router-view v-slot"{Component}"><keep-alive :max"8"><component :is"Component"></component></keep-alive> </router-view>

【环境搭建】windows下MySQL8与5共存

目录 一、安装MySQL81.官网下载2.初始化mysql文件夹中my.ini文件3.初始化data文件夹&#xff0c;并记录初始密码4.安装服务&#xff0c;指定服务名称5.启动服务6.测试登录并修改密码 二、安装MySQL51.mysql5文件夹中初始化my.ini文件2.初始化data文件夹&#xff0c;并记录初始密…

什么是正态分布

最重要的连续分布的通用名是概率密度函数&#xff0c;而标准正态分布&#xff08;Standard Normal Distribution&#xff09; 是最重要的概率密度函数。这个连续分布之所以重要&#xff0c;我认为是因为它非常常见&#xff0c;换句话说&#xff0c;我们会很常用到它。标准正态分…

JVM专题六:JVM的内存模型

前面我们通过Java是如何编译、JVM的类加载机制、JVM类加载器与双亲委派机制等内容了解到了如何从我们编写的一个.Java 文件最终加载到JVM里的&#xff0c;今天我们就来剖析一下这个Java的‘中介平台’JVM里面到底长成啥样。 JVM的内存区域划分 Java虚拟机&#xff08;JVM&…

浙江工商大学24计算机考研数据,好几个专业都接收调剂,计专复试线284分!

浙江工商大学&#xff08;Zhejiang Gongshang University&#xff09;&#xff0c;简称“浙商大”&#xff08;ZJSU&#xff09;&#xff0c;坐落于浙江省杭州市&#xff0c;是中华人民共和国教育部、中华人民共和国商务部和浙江省人民政府共建的浙江省重点建设高校&#xff0c…

代理的匿名级别有哪些?为什么匿名性很重要?

在互联网时代&#xff0c;代理服务器在许多领域都扮演着重要的角色。无论是个人用户还是企业&#xff0c;都可能需要使用代理来保护自己的隐私和数据安全。在选择代理服务时&#xff0c;匿名级别是一个重要的考虑因素。本文将介绍代理的匿名级别&#xff0c;并解释为什么匿名性…

Tampermonkey油猴 跨域请求下载图片示例

Tampermonkey油猴 跨域请求下载图片示例 前言项目目标网站代码编写 运行效果 前言 需要用油猴采集并下载一个网站的图片&#xff0c;直接下下不了&#xff0c;搜了一下&#xff0c;是禁止跨域&#xff0c;使用CORS Unblock也不行&#xff0c;所以使用油猴自带的GM_xmlhttpRequ…

35 - 最后一个能进入巴士的人(高频 SQL 50 题基础版)

35 - 最后一个能进入巴士的人 -- sum(weight) over(order by turn) as total,根据turn升序&#xff0c;再求前面数的和 selectperson_name from(selectperson_name,sum(weight) over(order by turn) as totalfromQueue) new_Queue wheretotal<1000 order by total desc lim…

四川汇聚荣科技有限公司靠谱吗?

在如今这个信息爆炸的时代&#xff0c;了解一家公司是否靠谱对于消费者和合作伙伴来说至关重要。四川汇聚荣科技有限公司作为一家位于中国西部地区的企业&#xff0c;自然也受到了人们的关注。那么&#xff0c;这家公司究竟如何呢?接下来&#xff0c;我们将从多个角度进行深入…

高考填报志愿(选专业),怎样找准自己的兴趣?

在很多的高考报考指南中&#xff0c;第一要点&#xff0c;都会建议我们根据自己的兴趣来选择自己的专业。很多人虽然是依据这条规则&#xff0c;选择了自己大学的专业。却依然在学习的过程中发现&#xff0c;好像自己对这个专业并不是那么的有兴趣。 甚至对专业学习深入了解之…

2-13 基于matlab的电力负荷预测

基于matlab的电力负荷预测&#xff0c;论文阐述了负荷预测的应用研究现状&#xff0c;概括了负荷预测的特点及其影响因素&#xff0c;归纳了短期负荷预测的常用方法&#xff0c;并分析了各种方法的优劣&#xff1b;采用最小二乘支持向量机&#xff08;LSSVM&#xff09;模型&am…