第七次作业

统计软件第七次作业

处理缺失值(knn和相关性)

第一题

利用变量间的相关性借补时,由于会发生最相关的变量对应位置处的观测值也恰好缺失的情形,所以请将这样的情形也考虑在内,即考虑用能借补的那些变量中相关性最大的那个即可。

代码

library(DMwR)
data(algae)
head(algae)
algae1<-algae[manyNAs(algae,0),]
algae2<-algae[-manyNAs(algae,0),]
symnum(cor(algae2[,4:18]))
cor(algae2[,c(5,6,10)])
lm1<-lm(PO4~oPO4,data=algae2)
lm2<-lm(PO4~mnO2,data=algae2)
f1<-function(x) {
  if(is.na(x))
return(NA)
 else {
a<-47.08+1.271*x
  }
  return(a)
}
f2<-function(x) {
  if(is.na(x))
return(NA)
  else {
a<-371-24.88*x
  }
  return(a)
}
algae1[is.na(algae1$PO4),'PO4']<-sapply(algae1[is.na(algae1$PO4),'oPO4'],f1)
algae1[is.na(algae1$PO4),'PO4']<-sapply(algae1[is.na(algae1$PO4),'mnO2'],f2)

第二题

在最近邻( KNN )方法中,采用只考虑借助于没有缺失的案例(Cases)的情形。

代码

library(DMwR)
head(algae)
dm<-function(x){
  x<-x[!is.na(x[,'NH4']),]
  x<-x[!is.na(x[,'oPO4']),]
  d<-matrix(rep(NA,nrow(x)^2),nrow(x))
  for(i in 1:nrow(x)){
for(j in 1:nrow(x)){
  d[i,j]<-sqrt((x[i,'NH4']-x[j,'NH4'])^2+(x[i,'oPO4']-x[j,'oPO4'])^2)
}
  }
  return(d)
}
kn<-function(i,x,k=11){  
  if(i>nrow(x)) return(nrow(x)+1)
  else d<-order(x[i,])[2:(k+1)]
  return(d)
}
knn<-function(x,k=11){
  d1<-dm(x)  
  for(i in which(is.na(x[,'PO4']))){
d2<-kn(i,d1,k=k)
x[i,'PO4']<-mean(x[d2,'PO4'],na.rm=T)
  }
  return(x)
}
dm1<-function(x){
  x<-x[!is.na(x[,'mxPH']),]
  x<-x[!is.na(x[,'mnO2']),]
  d<-matrix(rep(NA,nrow(x)^2),nrow(x))
  for(i in 1:nrow(x)){
for(j in 1:nrow(x)){
  d[i,j]<-sqrt((x[i,'mxPH']-x[j,'mxPH'])^2+(x[i,'mnO2']-x[j,'mnO2'])^2)
}
  }
  return(d)
}
knn1<-function(x,k=11){
  a<-knn(x)
  a1<-dm1(a)
for(i in which(is.na(a[,'PO4']))){
d2<-kn(i,a1,k=k)
a[i,'PO4']<-mean(a[d2,'PO4'],na.rm=T)
  }
  return(a)
}

运行

which(is.na(knn1(algae)[,'PO4']))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
人工智能原理与算法第四次作业主要包括以下内容: 1. 线性回归:线性回归是一种常见的机器学习算法,用于建立输入变量与输出变量之间的线性关系。通过拟合最优的直线来进行预测和判断。 2. 逻辑回归:逻辑回归是一种常用于分类问题的线性模型。通过将线性回归的结果通过sigmoid函数进行转换,将输出限制在0-1之间,从而进行二分类预测。 3. 决策树:决策树是一种基于树结构的分类方法。通过一系列的决策节点和叶节点来对样本进行分类。决策树的训练过程包括选择最佳的节点和最优的划分特征。 4. K近邻算法:K近邻算法是一种基于实例的学习方法,通过计算输入样本与训练样本之间的距离,选择K个最近邻的样本来进行分类或回归。 5. 支持向量机:支持向量机是一种常用的二分类算法。通过将样本转换到高维空间,将样本分割为不同的类别,构造最优的超平面来进行分类。 6. 朴素贝叶斯:朴素贝叶斯是一种基于贝叶斯概率理论的分类方法。通过统计样本的特征向量在每个类别中的条件概率来进行分类。 7. 随机森林:随机森林是一种集成学习方法,通过多个决策树的集成来进行分类或回归。每个决策树使用不同的训练集和特征子集进行训练。 8. 神经网络:神经网络是一种模仿人脑神经元之间连接方式的计算模型。通过多个神经元的连接和权重调整来进行分类、回归等任务。 以上是人工智能原理与算法第四次作业的内容,涵盖了常用的机器学习算法和分类方法,这些方法在实际应用中具有广泛的应用价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值