R语言实现数据挖掘

数据挖掘算法R语言实现KNN、朴素贝叶斯、决策树 本文是数据挖掘中的一些常用算法介绍,包含了KNN、朴素贝叶斯、决策树,并举例说明。 阅读详情

 这一周集中学习R实现的一些算法包,把一些简单的用法归结在这里,后面将继续学习。使用这些包的前提是要对算法熟悉,还好我去年看过几本算法的书,以下为总结:

1、一元线性回归

2、多元线性回归

3、Logistic回归

4、泊松回归

5、关联规则

6、决策树

7、机器集成学习

8、随机森林法则


一、一元线性回归

 使用women数据框

#查看数据情况
<span style="font-family: Arial, Helvetica, sans-serif;">str(women)</span>
#先观察散点图,看是否可能存在线性关系
plot(women$weight,women$height)
#抽取一定的数据作为训练集和测试集
ind<-sample(2,nrow(women),replace=TRUE,prob=c(0.7,0.3))
train<-women[ind==1,]
test<-women[ind==2,]
#线性拟合
fit<-lm(weight~height,data=train)
#查看拟合的统计情况
summary(fit)
#画出散点图再加上拟合的曲线
plot(train$weight~train$height)
abline(fit)

#回归诊断
library(gvlma)
gv<-gvlma(fit)
summary(gv)

由回归诊断可知这次回归存在Link Function不满足条件,我们用plot(fit)来查看那个条件不满足:


由四个图可知线性、正态性以及同方差性好像都满足得不是很好,可以考虑加一个二次项:

fit2<-lm(weight~height+I(height^2),data=train)
plot(train$weight,train$height)
lines(train$weight,fitted(fit2))
opar<-par(mfrow=c(2,2))
plot(fit2)


这次看上去正态性效果好,但线性和同方差性满足不到,再次用

 gv2-gvlma(fit2)查看,同样发现存在假设不接受,那我们再次考虑加一个3次项拟合:

fit3<-lm(weight~height+I(height^2)+I(height^3),data=train)
Gv3<-gvlma(fit3)
summary(gv3)

这次假设都接受。

我们看看plot(fit3)


#预测

weight_pre<-predict(fit3,test)

> test$weight

[1] 115 117 123 126 129 135 139 164

画出实际和预测的图像:

plot(test$height,weight_pre,col="red",pch=17,type="b")
lines(test$height,test$weight,col="blue",type="b")
legend("topleft",col=c("red","blue"),pch=c(17,1),legend = c("weight_test","weight_pre"),inset = .05)


数据也吻合得较好。但从实际问题角度分析,重量是身高的3次多项式,这个具体的意义怎么解释?


二、多元线性回归

使用state.x77数据集
x<-state.x77[,c("Murder","Population","Income","Illiteracy","Frost")]
x<-as.data.frame(x)
fit<-lm(Murder~Population+Income+Illiteracy+Frost,data=x)
gv<-gvlma(fit)
summary(gv)

可以看到所有假设都可以接受,再看看summary(fit)

由结果可知,Income、Frost的显著性都不高,可以考虑去掉这两个后重新试一次。

fit2<-lm(Murder~Population+Illiteracy,data=x)
 gv2<-gvlma(fit2)
 summary(gv2)

可以看到这次所有假设也都接受,再看看summary(fit)也都符合条件,再看看plot(fit)

有图可知假设条件确实都满足较好。

由coef()函数读取系数

由此可得:

Murder=0.0002241861*Population+4.0807366362*Illiteracy+1.6515497424

三、Logistic回归

#数据准备

data(Affairs,package ="AER")
x<-Affairs
str(x)
summary(x)

#数据抽样

x$affairs[x$affairs==0]<-0
x$affairs[x$affairs>0]<-1
x$affairs<-factor(x$affairs,levels = c(0,1),labels =c("no","yes") )
ind<-sample(2,nrow(x),replace=TRUE,prob=c(0.7,0.3))
train<-x[ind==1,]
test<-x[ind==2,]

#训练数据

fit<-glm(affairs~gender+age+yearsmarried+children+religiousness+education+occupation+rating,data=train,family = binomial())
summary(fit)

#由此可知affairs可能与gender,children,education,occupation没有关系,所以可以考虑去掉这几项重新训练

fit2<-glm(affairs~age+yearsmarried+religiousness+rating,data=train,family = binomial())
summary(fit2)

#预测数据

pre<-predict(fit2,test)
pre=exp(pre)/(1+exp(pre))
pre[pre<0.5]<-0
pre[pre>0.5]<-1
pre<-factor(pre,levels = c(0,1),labels=c("no","yes"))
z0<-table(pre,test$affairs)

#计算正确率

E0<-(sum(z0)-sum(diag(z0)))/sum(z0)
Q0<-1-E0

#探究各个变量对结果概率的影响

testdata<-data.frame(rating=c(1,2,3,4,5),age=mean(train$age),yearsmarried=mean(train$yearsmarried) ,religiousness=mean(train$religiousness))
testdata$prob<-predict(fit2,newdata = testdata,type="response")
四、泊松回归

#数据准备

data(Affairs,package ="AER")
x<-Affairs
str(x)
summary(x)

#数据抽样

ind<-sample(2,nrow(x),replace=TRUE,prob=c(0.7,0.3))
train<-x[ind==1,]
test<-x[ind==2,]

#训练数据

fit<-glm(affairs~age+yearsmarried+religiousness+rating,data=train,family =poisson(link="log"))
summary(fit)

#发现age可能需要去掉

fit2<-glm(affairs~yearsmarried+religiousness+rating,data=train,family =poisson(link="log"))
summary(fit2)

#预测数据

pre<-predict(fit2,test)

#预测的是平均计数---r

pre<-round(exp(pre),0)
五、关联规则

#数据准备

library(arules)
groceries<-read.transactions("https://raw.githubusercontent.com/TigerInnovate/PredictiveModeling/master/groceries.csv",format="basket",sep=",")
x<-groceries
summary(x)

#抽样数据-----不需要抽样数据,没有训练集,只是发现规则而不是预测。

rules<-apriori(x,parameter=list(support=0.01,confidience=0.5,minlen=2))

#查看规则

inspect(rules)

#按提升度排序

rules<-sort(rules,by="lift")

#挑选提升度大于3的规则

myrules<-inspect(rules)
myrules<-myrules[myrules$lift>3,]
六、决策树

#数据准备

library(rpart)
library(rpart.plot)
data("iris")
x<-iris
summary(x)

#数据抽样

ind<-sample(2,nrow(x),replace=TRUE,prob=c(0.7,0.3))
train<-x[ind==1,]
test<-x[ind==2,]

#建立树模型

tree<-rpart(Species~.,data=train,method="class")

#画出树模型

rpart.plot(tree)
rpart.plot(tree, branch=1, branch.type=2, type=1, extra=102,
           shadow.col="gray", box.col="green",
           border.col="blue", split.col="red",
           split.cex=1.2, main="Kyphosis决策树");


#查看cp和xerror

printcp(tree)

#预测

pre<-predict(tree,test,type='class')
z0<-table(pre,test$Species)

#计算错误率

E0<-(sum(z0)-sum(diag(z0)))/sum(z0)
七、机器集成学习

#数据准备

library(adabag)
data("iris")
x<-iris
summary(x)

#数据抽样

ind<-sample(2,nrow(x),replace=TRUE,prob=c(0.7,0.3))
train<-x[ind==1,]
test<-x[ind==2,]

#boosting学习

boost<-boosting(Species~.,data=train)
summary(boost)

#预测

pre<-predict(boost,test,type="class")

#可以直接由预测结果得出预测的效果,错误率为0.04761905

#baging学习

bag<-bagging(Species~.,data=train)
summary(bag)

#预测

pre<-predict(bag,test,type="class")

#可以直接由预测结果得出预测的效果,错误率为 0.07142857,由此可知boosting的效果比baging的效果要好

barplot(bag$importance)#画出变量的重要性比较
b<-errorevol(bag,iris)#计算全体的误差演变
plot(b$error,type="l",main="AdaBoost error vs number of trees") #对误差演变进行画图

八、随机森林法则

 #数据准备

library(randomForest)

rf<-randomForest(Species~.,data=train)
summary(rf)

#预测

pre<-predict(rf,test,type="class")
Z0<-table(pre,test$Species)

#计算错误率

E0<-(sum(Z0)-sum(diag(Z0)))/sum(Z0)
E0

#错误率为0.04761905

#画出重要性柱图

barplot(t(rf$importance))












r语言 svm 大样本_利用R语言实现支持向量机(SVM)数据挖掘案例 建立模型svm()函数在建立支持向量机模型的时候有两种建立方式。简单地说,一种是根据既定公式建立模型;而另外一种方式则是根据所给的数据模型建立模型。根据函数的第一种使用格式,针对上述数据建模时,应该先确定所建立的模型所使用的数据,然后再确定所建立模型的结果变量和特征变来那个。代码如下:library(e1071)data(iris)#建立svm模型model 在使用第一种格式建立模型时,如果使用数... 阅读详情

相关推荐

《R语言数据挖掘》R代码和案例数据

《R语言数据挖掘》R代码和案例数据《R语言数据挖掘》R代码和案例数据《R语言数据挖掘》R代码和案例数据

【R语言进行数据挖掘】决策树和随机森林

1、使用包party建立决策树这一节学习使用包party里面的函数ctree()为数据集iris建立一个决策树。属性Sepal.Length(萼片长度)、Sepal.Width(萼片宽度)、Petal.Length(花瓣长度)以及Petal.Width(花瓣宽度)被用来预测鸢尾花的Species(种类)。在这个包里面,函数ctree()建立了一个决策树,predict()预测另外一个数据集。在建立模型之前,iris(鸢尾花)数据集被分为两个子集:训练集(70%)和测试集(30%)。

csdn_manong1的博客 2081

【数据分析应用】数据挖掘:基于R语言的实战(数据).zip

【数据分析应用】数据挖掘:基于R语言的实战(数据).zip

R语言数据挖掘概述(一)

1.数据分析与挖掘的必要性 数据量的规模由传统的GB,TB量级,变为PB,EB,ZB级别,大数据的"4V"特点即大量(volume)、高速(velocity)、多样(variety)、价值(value). 因此一般的大数据分析需要四个核心要素:基于云计算的基础设施,分布式的大数据体系,数据分析方法与算法,行业应用知识与经验。人类的数据生产能力达到空前,从数据挖掘方法入手,无疑是最佳选择。 2...

冷月无声的博客 3128

从AAAI 2025被拒到ACM MM 2025录用:我的论文投稿经验与教训总结

本文分享了作者从AAAI 2025被拒到ACM MM 2025录用的论文投稿经验与教训。详细解析了格式要求、可复现性清单等关键细节,提供了精准转投策略和提升录用概率的实用技巧,帮助研究者避免常见错误并优化投稿策略。

weixin_29207533的博客 504

麦克风声源定位原理_声源定位—如何定位到噪声根源?

前言TPA(传递路径分析)专题系列已经开篇。其遵循方法论:源(Source)——路径(Path)——响应(Receiver)有人说TPA好,它可以识别出路径处甚至源的载荷特征,可以量化各个路径的贡献量。有人说声源定位好,不管东西南北中,“源”自其中。但是,声源定位识别出来色彩丰富的一个结果,这结果被您拿来应付工作了,还是真正帮您解决了问题?声源定位定位到了噪声的根源了么?对于一些声源现,...

weixin_39943678的博客 3973

R语言--数据挖掘2--数据理解与准备

数据理解与准备 数据理解 主要是理解数据,包括分析抽样偏差,数据粒度,数据得精确含义,变量类型,冗余变量,完整性,缺省值,数据链接。这里主要先查看数据,处理冗余变量,进行缺失值的分析等。 获取并查看数据: 首先读取bankloan.csv文件中的数据为数据框bankLoan,并且使用R语言中的summary(bankLoan)初步查看数据的位置分布特征。 library(dplyr) library(purrr) library(xlsx) setwd("D:/lagua/CODING/R-learn/R

小果一粒沙的博客 3009

AUTOSAR RTE配置实战:从ECU分区到Task映射的完整指南

本文提供了一份AUTOSAR RTE配置的完整实战指南。从创建ECU分区、定义OS任务,到实现Runnable Entity与Task的精确映射,详细解析了每一步的操作要点与常见陷阱。文章结合配置工具界面,旨在帮助开发者高效完成RTE配置,确保系统实时性与数据一致性,是掌握AUTOSAR核心开发流程的实用参考。

weixin_29228203的博客 485

R语言数据挖掘实战系列(5)

R语言数据挖掘实战系列(5)——挖掘建模一、分类与预测分类和预测是预测问题的两种主要类型,分类主要是预测分类标号(离散属性),而预测主要是建立连续值函数模型,预测给定自变量对应的因变量的值。1.实现过程(1)分类分类是构造一个分类模型,输入样本的属性值,输出对应的类别,将每个样本映射到预先定义好的类别。分类模型建立在已有类标记的数据集上,模型在已有样本上的准确率可以方便地计算...

weixin_34408624的博客 2231

用UltraISO制作镜像以RAW格式刻录系统到U盘后,在Windows上无法识别的解决办法

在这篇文章中,用UltraISO制作镜像后,会使得U盘无法识别!!!那么,如何抹掉U盘的数据,格式化U盘呢?

拥抱具身智能,昇腾Ascend C 2730

Visual Studio 命令提示符工具区别与使用场景

Visual Studio会提供一系列命令提示符工具,这些工具应用在哪些场景呢?本文进行了相关介绍。

cicada15的博客 3493

R语言与数据挖掘:探索各种算法和模型

作者:禅与计算机程序设计艺术 《R语言与数据挖掘:探索各种算法和模型》技术博客文章 引言 1.1. 背景介绍 随着互联网和大数据时代的到来,数据挖掘和机器学习技术被

AI天才研究院 4953

【AFAC2026金融智能-赛题四】我做了一个疯狂的决定,把Embedding和Reranker全删了

本文介绍了AFAC2026金融智能挑战赛赛道四的解题思路,核心是在500万token的严格限制下实现金融长文本的高效问答。作者通过四步流水线(规划、BM25检索、记忆压缩、LLM推理)优化流程,重点创新在于: 采用零API调用的纯BM25检索,配合多路查询、封面页加权和页面邻接扩展等策略 设计高效的检索算法,从问题中提取专有名词并构建多路查询组合 深入理解评分公式,平衡准确率和token消耗,最终在准确率提升的同时将token消耗从数百万降至百万级 这些创新使方案在严格限制下实现了性能突破,展示了在资源受限

227

利用R语言实现支持向量机(SVM)数据挖掘案例

利用R语言实现支持向量机(SVM)数据挖掘案例 建立模型 svm()函数在建立支持向量机模型的时候有两种建立方式。简单地说,一种是根据既定公式建立模型;而另外一种方式则是根据所给的数据模型建立模型。 根据函数的第一种使用格式,针对上述数据建模时,应该先确定所建立的模型所使用的数据,然后再确定所建立模型的结果变量和特征变来那个。代码如下: library(e1071) data...

weixin_33688840的博客 2111

2.1 直流无刷电机(BLDC):机械结构与组件

本文详细解析了直流无刷电机(BLDC)的机械结构与核心组件。BLDC电机通过电子换向取代传统机械电刷,主要包含定子、转子、位置传感器和电子换向器四大组件。定子采用硅钢片叠压结构,配有三相绕组;转子采用永磁体材料,结构设计影响转矩特性;位置传感器(霍尔、编码器、旋转变压器)实现精准换向;电子换向器通过功率逆变拓扑完成电流控制。文章还对比了不同绕组类型、永磁材料及传感器技术的性能特点,为BLDC电机的设计与应用提供了理论基础。

技术工作者 391

2026美赛数学建模竞赛 MCM C题:与星共舞的数据 问题一 粉丝投票估计模型 详细解题思路和代码

2026美赛数学建模竞赛 MCM C题:与星共舞的数据 问题一 粉丝投票估计模型 详细解题思路和代码.。开发一个(或多个)数学模型,用于估算每位选手在他们参赛的各周的粉丝投票数(这是未知且严格保密的)。您的模型是否能正确估算出导致每周淘汰结果一致的粉丝投票数?提供一致性度量。您估算出的粉丝投票总数有多少确定性?这种确定性对于每位选手/每周是否总是相同?为您的估算提供确定性度量。

YOLO 852

数据挖掘算法R语言实现之决策树

数据挖掘算法R语言实现之决策树 最近,看到很多朋友问我如何用数据挖掘算法R语言实现之决策树,想要了解这方面的内容如下: > library("party")导入数据包 > str(iris) 集中展示数据文件的结构 'data.frame': 150 obs. of 5 variables: 150条观测值,5个变量 $ Sepal.Length: num 5.1 4.9 4....

weixin_30586085的博客 231

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

R语言数据挖掘2.2.4.3 R语言实现

2.2.4.3 R语言实现 FP-growth算法的主要部分的R语言实现代码如下所示。

weixin_34090643的博客 269

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

R语言NBA球员数据挖掘简单实现

数据集下载地址: 链接:https://pan.baidu.com/s/1KN_A9JLMvHcl0hHTBSQ4HA 提取码:spsa 第一步骤:(导入csv数据) 使用read.table()导入一个带分隔符的文本文件,其输出类型为数据框。语法如下: read.table(file , header=F , sep=”” ,quote , row.names , col.nam...

mike_jun的博客 9264

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

《R语言数据挖掘》——2.5 R语言实现

本节书摘来自华章出版社《R语言数据挖掘》一书中的第2章,第2.5节,作者[哈萨克斯坦]贝特·麦克哈贝尔(Bater Makhabel),李洪成 许金炜 段力辉 译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。 2.5 R语言实现 算法主要部分的R语言实现为: 2.5.1 SPADE算法 使用等价类的序列模式发现(Sequential Patt...

weixin_33994444的博客 247

十大数据挖掘算法的R语言实现

iris数据集 iris以鸢尾花的特征作为数据来源,常用在分类操作中。该数据集由3种不同类型的鸢尾花的50个样本数据构成。其中的一个种类与另外两个种类是线性可分离的,后两个种类是非线性可分离的。library(ggplot2) summary(iris) qplot(Petal.Length, Petal.Width, data=iris, color=Species)1:C5.0决策树 先加载

cmddds11235的博客 1754

R语言算法实现整理

最近在学习R语言,想用R语言做数据分析,整理R数据挖掘算法实现的资料如下: 1、http://www.madio.net/thread-123595-1-1.html BP神经网络实现,从基本语言实现,未采用包,没有跑通,思路可以借鉴; 2、http://cdmd.cnki.com.cn/Article/CDMD-10559-2007192737.htm 介绍数据挖掘算法R语...

afa778899的博客 336

R语言公交地铁路线网络图实现数据挖掘实战

原文链接对于庞大的公交地铁路线信息的数据挖掘,一般软件遇到的问题主要有两点:1.对于文本信息的挖掘,特别是中文词汇的挖掘,缺乏成熟的工具或者软件包,2.对于大数据量,一般软件的读取和处理会遇到问题。即使一个月的部分区域路线信息也会达到几百m以上,因此,对于这类数据,无论从算法运行还是数据读取来说普通的SQL语言或者matlab软件处理起来都乏善可陈。对于这类数据,我们一般用r软件可以轻松实现读取,...

拓端研究室TRL 169

计算机编程语言r语言,计算机编程语言 Python与R语言的简要对比

数据挖掘技术日趋成熟和复杂,随着互联网发展以及大批海量数据的到来,之前传统的依靠spss、SAS等可视化工具实现数据挖掘建模已经越来越不能满足日常需求,依据美国对数据科学家(data scientist)的要求,想成为一名真正的数据科学家,编程实现算法以及编程实现建模已经是必要条件;目前很多从事数据挖掘工作的人,大多都是出身非计算机,本身对编程基础比较低,所以找到一门快速上手而又高效的编程语言是至...

weixin_28931507的博客 498
上一篇: Hbase总结
下一篇: R语言获取历史股票数据
JavaChaoCo
博客等级 码龄12年 67粉丝 36原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值