算法

本文介绍了机器学习中的基础算法,包括knn近邻算法的实现示例,朴素贝叶斯分类器的代码展示,以及图算法的探讨。通过对这些算法的理解,有助于读者掌握机器学习的基本概念和技术。
摘要由CSDN通过智能技术生成

算法

提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、knn

代码如下(示例):

# KNN近邻分类
# 随机抽取1/2的样本作为训练集,另外一半的样本作为测试集来验证模型的效果
iris1<-iris
set.seed(1234)
# 利用caret包的createDataPartition函数按不同类别等比例抽取50%
library(caret)
ind <- createDataPartition(iris1$Species,times=1,p=0.5,list=F)
traindata <-iris1[ind,]  #构建训练集
testdata <- iris1[-ind,] #构建测试集
# 利用class包中的knn函数对测试集的分类进行预测。
library(class)
a=knn(traindata[,1:4],testdata[,1:4],traindata[,5],k=3) #指定k值为3
a[1];a[75] # 查看第一条和最后一条测试数据的预测结果
# KNN算法流程验证:
ceshi <- function(n=1,k=3){
  # 计算第n个测试集样本与训练集样本的距离
  x <- (traindata[,1:4]-testdata[rep(n,75),1:4])^2
  traindata$dist1 <- apply(x,1,function(x) sqrt(sum(x)))
  # 对距离进行升序排序,选择最近的K个邻居
  mydata <- traindata[order(traindata$dist1)[1:k],5:6]
  # 统计不同类别的频数
  result <- data.frame(sort(table(mydata$Species),decreasing = T))
  # 给出最后的预测结果
  return(result[1,1])
}
ceshi() # 第一个样本的预测结果
ceshi(n=75) # 最后一个样本的预测结果

二、朴素贝叶斯

代码如下(示例):

# 朴素贝叶斯分类
# 导入car数据集
car <- read.table("car.data",sep = ",")
# 对变量重命名
colnames(car) <- c("buy","main","doors","capacity",
                   "lug_boot","safety","accept")
str(car)
# 随机选取75%的数据作为训练集建立模型,25%的数据作为测试集用来验证模型
library(caret)
# 构建训练集的下标集
ind <- createDataPartition(car$accept,times=1,p=0.75,list=FALSE) 
# 构建测试集数据好训练集数据
carTR <- car[ind,]
carTE <- car[-ind,]

# 使用naiveBayes函数建立朴素贝叶斯分类器
install.packages("e1071")
library(e1071)

naiveBayes.model <- naiveBayes(accept~.,data=carTR)
# 预测结果
carTR_predict <- predict(naiveBayes.model,newdata=carTR) # 训练集数据
carTE_predict <- predict(naiveBayes.model,newdata=carTE) # 测试集数据
# 构建混淆矩阵
tableTR <- table(actual=carTR$accept,predict=carTR_predict)
tableTE <- table(actual=carTE$accept,predict=carTE_predict)
# 计算误差率
errTR <- paste0(round((sum(tableTR)-sum(diag(tableTR)))*100/sum(tableTR),
                      2),"%")
errTE <- paste0(round((sum(tableTE)-sum(diag(tableTE)))*100/sum(tableTE),
                      2),"%")
errTR;errTE

在这里插入图片描述

二、图

代码如下(示例):

install.packages("rpart")
library(rpart)
install.packages("rpart.plot")
library(rpart.plot)
fit<-rpart(Species~.,method="class",iris)
rpart.plot(fit)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值