#####5 数据预处理#####
#####5.1 数据集加载#####
library(lattice)
library(nnet)
library(MASS)
library(mice)
data(nhanes2) #获取nHanes2数据集
nrow(nhanes2);ncol(nhanes2) #显示行列数
summary(nhanes2)
#从概括信息中可以看出,age和hyp是定型变量,分别分为3类和2类,bmi和chl是定量变量;
#age没有缺失值,bmi有9个缺失值,hyp有8个缺失值,chl有10个缺失值
#补充说明:数据中存在缺失值的情况主要有两种:其一,但数据输入其中时其中某个观测值
#缺失,数据表的相应位置显示为NA,如上变量中出现NA值就是这种情况;其二,当数据表经由
#其他数据表计算得来时,存在计算错误或计算值不符合要求时,也会显示NA。
#age:年龄段,取值1,2,3;
#bmi:身高质量指数,单位为kg/m^2;
#hyp:是否患高血压,1代表“否”,2代表“是”;
#chl:血清胆固醇总量,单位为mg/dL
head(nhanes2)
#####5.2 数据清理#####
pay=c(11,19,14,22,14,28,13,81,12,43,11,16,31,16,23,42,22,26,17,22,13,27,180,16,
43,82,14,11,51,76,28,66,29,14,14,65,37,16,37,35,39,27,14,17,13,38,28,40,85,32,
25,26,16,12,54,40,18,27,16,14,33,29,77,50,19,34) #年薪超过十万的经理收入(单位为10万)
par(mfrow=c(2,2)) #将绘图窗口划成2*2,可同时显示4幅图
hist(pay) #绘制直方图
dotchart(pay) #绘制点图
boxplot(pay,horizontal = T) #绘制箱型图
qqnorm(pay);qqline(pay) #绘制Q-Q图
#第23个观测值远离其他变量,可以认为存在异常值,需要对异常值进行清理。
#####5.2.1 缺失值处理#####
sum(is.na(nhanes2)) #计算nhanes2中缺失值的数量
sum(complete.cases(nhanes2)) #计算nhanes2中完整样本的数量
md.pattern(nhanes2) #观测缺失值的情况
#其中1表示没有缺失数据,0表示存在缺失数据。
#直接删除,变量均值或中位数代替,要求缺失数据是随机出现的
#多重插补法通过变量间的关系对缺失数据进行预测,利用蒙特卡洛方法生成多个完整的数据集,再对这些数据分别
#进行分析,最后对分析结果进行汇总处理。mice(data, m=5, ...)其中data代表一个有缺失值的数据框或矩阵,
#缺失值用NA表示;m表示插补重数,即生成m个完整的数据集,默认为m=5。
imp=mice(nhanes2, m=4) #生
5.数据预处理
最新推荐文章于 2024-10-05 15:44:34 发布
数据预处理是机器学习中至关重要的环节,它包括数据清洗、缺失值处理、异常值检测、数据标准化和归一化等。通过有效的预处理,可以提高数据质量,降低噪声,使得模型能更好地理解和学习数据的特征,从而提升预测精度和模型稳定性。
摘要由CSDN通过智能技术生成