Python和R语言的区别

Python023

Python和R语言的区别,第1张

如下:

Python入门简单,而R则相对比较难一些。R做文本挖掘现在还有点弱,当然优点在于函数都给你写好了,你只需要知道参数的形式就行了,有时候即使参数形式不对,R也能"智能地”帮你适应。这种简单的软件适合想要专注于业务的人。

Python几乎都可以做,函数比R多,比R快。它是一门语言,R更像是一种软件,所以python更能开发出flexible的算法

Python适合处理大量数据,而R则在这方面有很多力不从心,当然这么说的前提是对于编程基础比较一般的童鞋,对于大牛来说,多灵活运用矢量化编程的话,R的速度也不会太差。

介绍

Python和R本身在数据分析和数据挖掘方面都有比较专业和全面的模块,很多常用的功能,比如矩阵运算、向量运算等都有比较高级的用法,所以使用起来产出比大。

这两门语言对于平台方面适用性比较广,linux、window都可以使用,并且代码可移植性还算不错的。对于学数理统计的人来说,应该大多用过MATLAB以及mintab等工具,Python和R比较贴近这些常用的数学工具,使用起来有种亲切感。

R语言利用caret包比较ROC曲线

我们之前探讨了多种算法,每种算法都有优缺点,因而当我们针对具体问题去判断选择那种算法时,必须对不同的预测模型进行重做评估。为了简化这个过程,我们使用caret包来生成并比较不同的模型与性能。

操作

加载对应的包与将训练控制算法设置为10折交叉验证,重复次数为3:

library(ROCR)

library(e1071)

library("pROC")

library(caret)

library("pROC")

control = trainControl(method = "repaetedcv",

number = 10,

repeats =3,

classProbs = TRUE,

summaryFunction = twoClassSummary)

使用glm在训练数据集上训练一个分类器

glm.model = train(churn ~ .,

data= trainset,

method = "glm",

metric = "ROC",

trControl = control)

使用svm在训练数据集上训练一个分类器

svm.model = train(churn ~ .,

data= trainset,

method = "svmRadial",

metric = "ROC",

trControl = control)

使用rpart函数查看rpart在训练数据集上的运行情况

rpart.model = train(churn ~ .,

data = trainset,

method = "svmRadial",

metric = "ROC",

trControl = control)

使用不同的已经训练好的数据分类预测:

glm.probs = predict(glm.model,testset[,!names(testset) %in% c("churn")],type = "prob")

svm.probs = predict(svm.model,testset[,!names(testset) %in% c("churn")],type = "prob")

rpart.probs = predict(rpart.model,testset[,!names(testset) %in% c("churn")],type = "prob")

生成每个模型的ROC曲线,将它们绘制在一个图中:

glm.ROC = roc(response = testset[,c("churn")],

predictor = glm.probs$yes,

levels = levels(testset[,c("churn")]))

plot(glm.ROC,type = "S",col = "red")

svm.ROC = roc(response = testset[,c("churn")],

predictor = svm.probs$yes,

levels = levels(testset[,c("churn")]))

plot(svm.ROC,add = TRUE,col = "green")

rpart.ROC = roc(response = testset[,c("churn")],

predictor = rpart.probs$yes,

levels = levels(testset[,c("churn")]))

plot(rpart.ROC,add = TRUE,col = "blue")

三种分类器的ROC曲线

说明将不同的分类模型的ROC曲线绘制在同一个图中进行比较,设置训练过程的控制参数为重复三次的10折交叉验证,模型性能的评估参数为twoClassSummary,然后在使用glm,svm,rpart,三种不同的方法建立分类模型。

从图中可以看出,svm对训练集的预测结果(未调优)是三种分类算法里最好的。

不一样。

1、R语言。R 语言是主要用于统计分析、绘图的语言和操作环境。 R 本来是由来自新西兰奥克兰大学的 Ross Ihaka 和 Robert Gentleman 开发。 (也因此称为 R)现由 “R 开发核心团队” 负责开发。 R 是基于 S 语言的一个 GNU 项目,所以也可以当作 S 语言的一种实现,通常用 S 语言编写的代码都可以不作修改的在 R 环境下运行。 R 的语法是来自 Scheme。

2、rust语言。Rust是一门系统编程语言,专注于安全 ,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言。Rust在语法上和C++类似,但是设计者想要在保证性能的同时提供更好的内存安全。 Rust最初是由Mozilla研究院的Graydon Hoare设计创造,然后在Dave Herman, Brendan Eich以及很多其他人的贡献下逐步完善的。