发布时间:2023-07-19 15:00
一、引言
(1)为什么要进行数据预处理?
现实世界的数据是“脏的”——数据多了什么都会出现。比如会出现(不完整、有噪声、数据不一致)。
(2)数据预处理为什么重要?
因为没有高质量的数据 ,就没有高质量的挖掘结果。
二、下面用一个实例说明数据预处理的详细流程。(解决问题的步骤不一定要按照此顺序,先后顺序不同结果,会有出入,具体问题具体分析,随机应变)
第一步:
深拷贝数据文件,查看基本数据类型,对数值型数据进行描述性统计。代码如下:
import numpy as np
import pandas as pd
data=pd.read_excel('D:/a/数据挖掘/Students.xls')#注意反斜杠
my_data=data.copy()
print(my_data.head(4))
print(my_data.info())#查看数据类型函数
print(my_data.describe())#查看数据统计性描述
第二步:
去除重复行。
(1)首先查看是否有重复行。代码如下:
print(my_data.duplicated())
(2)删除重复行。代码如下:
print(my_data=my_data.drop_duplicates())
第三步:
删除特征数据集中无用的那些特征(一般都是字符型数据:人工处理)
第四步:处理缺失值(可以用均值,中位数,众数代替,具体情况具体分析)
(1) 显示缺失值的具体位置(bool)
print(my_data.isnull())
(2)删除有缺失值所在的整行(补充说明:运行完这个代码我们可以用info()函数进行检验)
my_data=my_data.dropna()
print(my_data.head(4))
第五步:
去除字符型特征列中文本字段的空格
my_data["性别"]=my_data["性别"].str.strip()
my_data["是否无偿献血"]=my_data["是否无偿献血"].str.strip()
my_data["家长是否鼓励"]=my_data["家长是否鼓励"].str.strip()
第六步:
字符特征值列大小写转换
(1)先用nique()函数进行查找,代码如下:
print(my_data["性别"].unique())
print(my_data["是否无偿献血"].unique())
print(my_data["家长是否鼓励"].unique())
print(my_data["是否参与"].unique())
(2)用到serise的str属性进行调试,代码如下:
my_data["性别"]=my_data["性别"].str.title()
my_data["是否无偿献血"]=my_data["是否无偿献血"].str.title()
第七步:
数值型特征列异常点检测和处理
(1)异常值检测:聚类、箱线图,3。
from pylab import *
mpl.rcParams['font.sans-serif']=['SimHei']
figure(figsize=[5,4])
plt.boxplot(my_data['年龄'])
plt.xlabel('年龄')
plt.ylabel('变量值')
plt.show()
def up_low_value(d): ##找箱线图的上下限
Q1=d.quantile(0.25)
Q3=d.quantile(0.75)
IQR=Q3-Q1 #四分位距
up_value=Q3+1.5*IQR
low_value=Q1-1.5*IQR
return up_value,low_value
up1,low1=up_low_value(my_data['年龄'])
(2) 异常值处理:置空并用均值填充
my_data.loc[(my_data['年龄']>up1)|(my_data['年龄']
第八步:
定性特征数量化,代码如下:
print(my_data['性别'].unique())
size_mapping={'M':0,'男':0,'F':1,'女':1}
my_data['性别']=my_data['性别'].map(size_mapping)
print(my_data['性别'].unique())
CAD二次开发--像纬地与CASS程序一样双击桌面图标实现插件的自动挂载(不用netload也不用进入后输入挂载命令)
**基于 Apache Mahout 实现高效的协同过滤推荐电影**
Meta “透明内存卸载” 功能亮相:可为 Linux 服务器节省 20%-32% 内存
C++ 学习(一)Visual Studio 2022配置、Git配置及第一个程序
<论文阅读>LVI-SAM: Tightly-coupled Lidar-Visual-Inertial Odometry via Smoothing and Mapping
Android Flutter利用CustomPaint绘制基本图形详解
python箭头函数_JavaScript 箭头函数究竟是什么?