实验文档11-1-r语言数据分析与挖掘操作资料

上传人:w****i 文档编号:102325563 上传时间:2019-10-02 格式:PDF 页数:15 大小:461KB
返回 下载 相关 举报
实验文档11-1-r语言数据分析与挖掘操作资料_第1页
第1页 / 共15页
实验文档11-1-r语言数据分析与挖掘操作资料_第2页
第2页 / 共15页
实验文档11-1-r语言数据分析与挖掘操作资料_第3页
第3页 / 共15页
实验文档11-1-r语言数据分析与挖掘操作资料_第4页
第4页 / 共15页
实验文档11-1-r语言数据分析与挖掘操作资料_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《实验文档11-1-r语言数据分析与挖掘操作资料》由会员分享,可在线阅读,更多相关《实验文档11-1-r语言数据分析与挖掘操作资料(15页珍藏版)》请在金锄头文库上搜索。

1、R 语言数据分析与挖掘操作训练(初级、中级) 第一部分:初级操作 机器学习、数据挖掘领域的比如关联规则挖掘、聚类、分类等问题。R 统计分析计算包都提供了 足够的支持。 关联规则问题源于“买了这件商品的顾客还买了什么”这个问题,现在已经广泛应用于客户行为 分析以及互联网用户行为分析中。关联规则挖掘领域最经典的算法为 Apriori,R 的第三方包 arules,就是专门用于做关联规则挖掘的。以下例子需要你已经安装了 arules 包。 library(arules) data - paste(“item1,item2“,“item1“,“item2,item3“, sep=“n“) write(

2、data, file = “demo_basket“) tr - read.transactions(“demo_basket“, format = “basket“, sep=“,“) data(“Adult“) rules - apriori(Adult, parameter = list(supp = 0.5, conf = 0.9, target = “rules“) 最后一行的 apriori 函数接受一个 transaction 对象的输入,输出关联规则对象 rules,为 方便起见,这里用于计算的 transaction 对象 Adult 是通过第 5 行从 arules 包中现

3、成载入进来 的,第 24 行说明了怎么从一个文本文件中读入数据并生成一个 transaction 对象。 聚类算法使用最广泛的高效算法无疑是 kmeans,R 在其默认载入的 stats 包中就包含了这个函 数,以下是一个来自 kmean 说明文档的例子: x - rbind(matrix(rnorm(100, sd = 0.3), ncol = 2), matrix(rnorm(100, mean = 1, sd = 0.3), ncol = 2) cl - kmeans(x, 2) plot(x, col = cl$cluster) points(cl$centers, col = 1:2

4、, pch = 8, cex=2) 代码第 1 行生成两组两维的正态分布的数据,第一组均值为 0,第二组均值为 1,两组数据方差 都为 0.3。第 2 行对该数据进行聚类,第 3 和第 4 行把聚类结果画出来。 分类器是模式识别领域的研究主题,也是人类认知活动的中心。多年来的学术研究积累下来很 多种类型的分类器,而其中常用的分类器基本都能在 R 中找到对应的实现。诸多分类器中以 svm 最 为著名,它也被一些人称为是单分类器的王道。以下是一个利用 svm 对著名的 iris 数据集进行分 类的过程,运行该例子需要已经安装了 e1071 这个包。 library(e1071) data(iris

5、) x - subset(iris, select = -Species) y - iris$Species model - svm(x, y) summary(model) pred - predict(model, x) table(pred, y) 第 5 行代码调用 svm 函数,计算由 x 作为特征 y 作为类别标签的分类器模型,第 7 行把模型应 用于原数据进行预测。 第二部分:R 线性算法操作 每个算法都会从两个视角进行呈现(利用数据挖掘包来求解) : 1) 常规的训练和预测方法 2) caret 包的用法 因此,需要知道给定算法对应的软件包和函数,同时还需了解如何利用 care

6、t 包实现这些常用的 算法,从而你可以利用 caret 包的预处理、算法评估和参数调优的能力高效地评估算法的精度。 本文中将用到两个标准的数据集(标准测试数据集) : Boston Housing dataset for regression (BostonHousing from the mlbench library). Pima Indians Diabetes dataset for classification (PimaIndiansDiabetes from the mlbench library). 1) 回归模型:BHD(Boston Housing Dataset) 2)

7、分类模型: PIDD(Pima Indians Diabetes Dataset) 具体的数据分析算法将被分成两组进行介绍: 1) 线性算法:简单、较大的偏倚、运算速度快 2) 非线性算法:复杂、较大的方差、高精确度 所有代码都是完整的,因此你可以将其保存下来并运用到下个机器学习项目中。 线性算法 这类方法对模型的函数形式有严格的假设条件,虽然这些方法的运算速度快,但是其结果偏倚较 大。这类模型的最终结果通常易于解读,因此如果线性模型的结果足够精确,那么你没有必要采用较 为复杂的非线性模型。 1. 线性回归模型 stat 包中的 lm()函数可以利用最小二乘估计拟合线性回归模型。 # load

8、 the library library(mlbench) # load data data(BostonHousing) # fit model fit - lm(medv., BostonHousing) # summarize the fit print(fit) # make predictions predictions - predict(fit, BostonHousing) # summarize accuracy mse - mean(BostonHousing$medv - predictions)2) print(mse) # use caret # load libra

9、ries library(caret) library(mlbench) # load dataset data(BostonHousing) # train set.seed(7) control - trainControl(method=“cv“, number=5) fit.lm - train(medv., data=BostonHousing, method=“lm“, metric=“RMSE“, preProc=c(“center“, “scale“), trControl=control) # summarize fit print(fit.lm) 2. 罗吉斯回归模型(lo

10、gistic regression) stat 包中 glm()函数可以用于拟合广义线性模型。 它可以用于拟合处理二元分类问题的罗吉斯回 归模型。 # load the library library(mlbench) # Load the dataset data(PimaIndiansDiabetes) # fit model fit - glm(diabetes., data=PimaIndiansDiabetes, family=binomial(link=logit) # summarize the fit print(fit) # make predictions probabil

11、ities - predict(fit, PimaIndiansDiabetes,1:8, type=response) predictions 0.5,pos,neg) # summarize accuracy table(predictions, PimaIndiansDiabetes$diabetes) 方法二:caret 方法 # load libraries library(caret) library(mlbench) # Load the dataset data(PimaIndiansDiabetes) # train set.seed(7) control - trainCo

12、ntrol(method=“cv“, number=5) fit.glm - train(diabetes., data=PimaIndiansDiabetes, method=“glm“, metric=“Accuracy“, preProc=c(“center“, “scale“), trControl=control) # summarize fit print(fit.glm) 3. 线性判别分析(Linear Discriminant Analysis) MASS 包中的 lda()函数可以用于拟合线性判别分析模型。 # load the libraries library(MASS

13、) library(mlbench) # Load the dataset data(PimaIndiansDiabetes) # fit model fit - lda(diabetes., data=PimaIndiansDiabetes) # summarize the fit print(fit) # make predictions predictions - predict(fit, PimaIndiansDiabetes,1:8)$class # summarize accuracy table(predictions, PimaIndiansDiabetes$diabetes)

14、 方法二: # load libraries library(caret) library(mlbench) # Load the dataset data(PimaIndiansDiabetes) # train set.seed(7) control - trainControl(method=“cv“, number=5) fit.lda - train(diabetes., data=PimaIndiansDiabetes, method=“lda“, metric=“Accuracy“, preProc=c(“center“, “scale“), trControl=control)

15、 # summarize fit print(fit.lda) 4. 正则化回归(Regularized Regression) glmnet 包中的 glmnet()函数可以用于拟合正则化分类或回归模型。 分类模型例子 Classification Example:: # load the library library(glmnet) library(mlbench) # load data data(PimaIndiansDiabetes) x - as.matrix(PimaIndiansDiabetes,1:8) y - as.matrix(PimaIndiansDiabetes,9

16、) # fit model fit - glmnet(x, y, family=“binomial“, alpha=0.5, lambda=0.001) # summarize the fit print(fit) # make predictions predictions - predict(fit, x, type=“class“) # summarize accuracy table(predictions, PimaIndiansDiabetes$diabetes) 方法二: # load libraries library(caret) library(mlbench) library(glmnet) # Load the dataset data(PimaIndiansDiabetes) # train set.seed(7) control - trainControl(method=“cv“, number=5) fit.glmnet - train(diabetes., data

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号