数据预处理

发布时间: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)异常值检测:聚类、箱线图,\bar{x}\pm3\sigma

from pylab import *
mpl.rcParams['font.sans-serif']=['SimHei']
figure(figsize=[5,4])
plt.boxplot(my_data['年龄'])
plt.xlabel('年龄')
plt.ylabel('变量值')
plt.show()

 数据预处理_第1张图片              

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())

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号