Python和R代码机器学习算法速查对比表

在拿破仑·希尔(Napolean Hill)所著的《思考致富》(Think and Grow Rich)一书中,他为我们引述了Darby苦挖金矿多年后,就在离矿脉一步之遥的时候与宝藏失之交臂的故事。

思考致富中文版的豆瓣阅读链接:

http://read.douban.com/reader/ebook/10954762/

根据该书内容进行的修改

如今,我虽然不知道这故事是真是假,但是我明确知道在我身边有不少这样的“数据Darby”。这些人了解机器学习的目的和执行,对待任何研究问题只使用2-3种算法。他们不用更好的算法和技术来更新自身,只因为他们太顽固,或者他们只是在耗费时间而不求进步。

像Darby这一类人,他们总是在接近终点的时候而错失良机。最终,他们以计算量大、难度大或是无法设定合适的阈值来优化模型等借口,放弃了机器学习。这有什么意义?你听说过这些人吗?

今天给出的速查表旨在改变这群“数据Darby”对机器学习的态度,使他们成为身体力行的倡导者。这里收集了10个最为常用的机器学习算法,附上了Python和R代码。

考虑到机器学习方法在建模中得到了更多的运用,以下速查表可以作为代码指南来帮助你掌握机器学习算法运用。祝你好运!

对于那些超级懒惰的数据Darbies,我们将让你的生活过得更轻松。你可以在此下载PDF版的速查表,便可直接复制粘贴代码。


机器学习算法


类 型


监督学习


非监督学习


增强学习


决策树

K-近邻算法

随机决策森林

Logistics回归分析


Apriori算法

K-均值算法

系统聚类


马尔科夫决策过程

增强学习算法(Q-学习)

线性回归


#Import Library

#Import other necessary libraries like pandas,

#numpy...

from sklearn import linear_model

#Load Train and Test datasets

#Identify feature and response variable(s) and

#values must be numeric and numpy arrays

x_train=input_variables_values_training_datasets y_train=target_variables_values_training_datasets x_test=input_variables_values_test_datasets

#Create linear regression objectlinear = linear_model.LinearRegression()

#Train the model using the training sets and #check scorelinear.fit(x_train, y_train) linear.score(x_train, y_train)

#Equation coefficient and Intercept print('Coefficient: \n', linear.coef_) print('Intercept: \n', linear.intercept_) #Predict Output

predicted= linear.predict(x_test)


#Load Train and Test datasets

#Identify feature and response variable(s) and

#values must be numeric and numpy arrays

x_train <- input_variables_values_training_datasets

y_train <- target_variables_values_training_datasets

x_test <- input_variables_values_test_datasets

x <- cbind(x_train,y_train)

#Train the model using the training sets and

#check score

linear <- lm(y_train ~ ., data = x)summary(linear)

#Predict Output

predicted= predict(linear,x_test)

逻辑回归


#Import Library

from sklearn.linear_model import LogisticRegression

#Assumed you have, X (predictor) and Y (target)

#for training data set and x_test(predictor)

#of test_dataset

#Create logistic regression object

model = LogisticRegression()

#Train the model using the training sets

#and check score

model.fit(X, y)

model.score(X, y)

#Equation coefficient and Intercept

print('Coefficient: \n', model.coef_)

print('Intercept: \n', model.intercept_)

#Predict Output

predicted= model.predict(x_test)


x <- cbind(x_train,y_train)

#Train the model using the training sets and check #score

logistic <- glm(y_train ~ ., data = x,family='binomial') summary(logistic)

#Predict Outputpredicted= predict(logistic,x_test)


#Import Library

#Import other necessary libraries like pandas, numpy... from sklearn import tree

#Assumed you have, X (predictor) and Y (target) for

#training data set and x_test(predictor) of #test_dataset

#Create tree objectmodel = tree.DecisionTreeClassifier(criterion='gini') #for classification, here you can change the #algorithm as gini or entropy (information gain) by

#default it is gin

#model = tree.DecisionTreeRegressor() for

#regression

#Train the model using the training sets and check #score

model.fit(X, y)

model.score(X, y)

#Predict Outputpredicted= model.predict(x_test)


#Import Library

library(rpart)

x <-cbind(x_train,y_train)

#grow tree

fit <- rpart(y_train ~ ., data = x,method="class") summary(fit)

#Predict Outputpredicted= predict(fit,x_test)

支持

向量机


#Import Library

from sklearn import svm

#Assumed you have, X (predictor) and Y (target) for #training data set and x_test(predictor) of test_dataset

#Create SVM classification objectmodel = svm.svc()

#there are various options associatedwith it, this is simple for classification.

#Train the model using the training sets and check #score

model.fit(X, y)

model.score(X, y)

#Predict Outputpredicted= model.predict(x_test)


#Import Library

library(e1071)

x <- cbind(x_train,y_train) #Fitting model

fit <-svm(y_train ~ ., data = x) summary(fit)

#Predict Outputpredicted= predict(fit,x_test)

贝叶斯算法


#Import Libraryfrom sklearn.naive_bayes import GaussianNB

#Assumed you have, X (predictor) and Y (target) for

#training data set and x_test(predictor) of test_dataset

#Create SVM classification object model = GaussianNB()

#there is other distribution for multinomial classes like Bernoulli Naive Bayes

#Train the model using the training sets and check

#scoremodel.fit(X, y)

#Predict Outputpredicted= model.predict(x_test)


#Import Librarylibrary(e1071)

x <- cbind(x_train,y_train)#Fitting model

fit <-naiveBayes(y_train ~ ., data = x) summary(fit)

#Predict Outputpredicted= predict(fit,x_test)

k-近邻算法析


#Import Library

from sklearn.neighbors import KNeighborsClassifier

#Assumed you have, X (predictor) and Y (target) for

#training data set and x_test(predictor) of test_dataset

#Create KNeighbors classifier object model KNeighborsClassifier(n_neighbors=6)

#default value for n_neighbors is 5

#Train the model using the training sets and check score model.fit(X, y)

#Predict Outputpredicted= model.predict(x_test)


#Import Librarylibrary(knn)

x <- cbind(x_train,y_train)

#Fitting model

fit <-knn(y_train ~ ., data = x,k=5) summary(fit)

#Predict Output

predicted= predict(fit,x_test)

硬聚类算法


#Import Library

from sklearn.cluster import KMeans

#Assumed you have, X (attributes) for training data set

#and x_test(attributes) of test_dataset

#Create KNeighbors classifier object model

k_means = KMeans(n_clusters=3, random_state=0)

#Train the model using the training sets and check score model.fit(X)

#Predict Outputpredicted= model.predict(x_test)


#Import Library

library(cluster)

fit <- kmeans(X, 3)

#5 cluster solution

随机森林算法


#Import Libraryfrom sklearn.ensemble import RandomForestClassifier

#Assumed you have, X (predictor) and Y (target) for

#training data set and x_test(predictor) of test_dataset

#Create Random Forest objectmodel= RandomForestClassifier()

#Train the model using the training sets and check score model.fit(X, y)

#Predict Outputpredicted= model.predict(x_test)


#Import Library

library(randomForest)

x <- cbind(x_train,y_train)

#Fitting model

fit <- randomForest(Species ~ ., x,ntree=500) summary(fit)

#Predict Outputpredicted= predict(fit,x_test)

降维算法


#Import Library

from sklearn import decomposition

#Assumed you have training and test data set as train and

#test

#Create PCA object pca= decomposition.PCA(n_components=k) #default value of k =min(n_sample, n_features)

#For Factor analysis

#fa= decomposition.FactorAnalysis()

#Reduced the dimension of training dataset using PCA train_reduced = pca.fit_transform(train)

#Reduced the dimension of test datasettest_reduced = pca.transform(test)


#Import Library

library(stats)

pca <- princomp(train, cor = TRUE)

train_reduced <- predict(pca,train)

test_reduced <- predict(pca,test)

GB

D

T


#Import Library

from sklearn.ensemble import GradientBoostingClassifier

#Assumed you have, X (predictor) and Y (target) for

#training data set and x_test(predictor) of test_dataset

#Create Gradient Boosting Classifier object

model= GradientBoostingClassifier(n_estimators=100, \ learning_rate=1.0, max_depth=1, random_state=0)

#Train the model using the training sets and check score model.fit(X, y)

#Predict Output

predicted= model.predict(x_test)


#Import Library

library(caret)

x <- cbind(x_train,y_train)

#Fitting modelfitControl <- trainControl( method = "repeatedcv", + number = 4, repeats = 4)

fit <- train(y ~ ., data = x, method = "gbm",+ trControl = fitControl,verbose = FALSE)

predicted= predict(fit,x_test,type= "prob")[,2]

原文发布时间为:2015-12-02

时间: 2024-11-02 06:32:39

Python和R代码机器学习算法速查对比表的相关文章

机器学习算法一览(附python和R代码)

"谷歌的无人车和机器人得到了很多关注,但我们真正的未来却在于能够使电脑变得更聪明,更人性化的技术,机器学习. " -- 埃里克 施密特(谷歌首席执行官) ◆ ◆ ◆ 当计算从大型计算机转移至个人电脑再转移到云的今天,我们可能正处于人类历史上最关键的时期.之所以关键,并不是因为已经取得的成就,而是未来几年里我们即将要获得的进步和成就. 对我来说,如今最令我激动的就是计算技术和工具的普及,从而带来了计算的春天.作为一名数据科学家,我可以建造一个数据处理系统来进行复杂的算法运算,这样每小时能

10 种机器学习算法的要点(附 Python 和 R 代码)(转载)

前言 谷歌董事长施密特曾说过:虽然谷歌的无人驾驶汽车和机器人受到了许多媒体关注,但是这家公司真正的未来在于机器学习,一种让计算机更聪明.更个性化的技术. 也许我们生活在人类历史上最关键的时期:从使用大型计算机,到个人电脑,再到现在的云计算.关键的不是过去发生了什么,而是将来会有什么发生. 工具和技术的民主化,让像我这样的人对这个时期兴奋不已.计算的蓬勃发展也是一样.如今,作为一名数据科学家,用复杂的算法建立数据处理机器一小时能赚到好几美金.但能做到这个程度可并不简单!我也曾有过无数黑暗的日日夜夜

Python vs R : 在机器学习和数据分析领域中的对比

  为了鼓励新工具的出现,机器学习和数据分析领域似乎已经成了"开源"的天下.Python 和 R 语言都具有健全的生态系统,其中包括了很多开源工具和资源库,从而能够帮助任何水平层级的数据科学家展示其分析工作. 机器学习和数据分析之间的差异有些难以言明,但二者最主要的不同就在于,比起模型的可解释性,机器学习更加强调预测的准确性;而数据分析则更加看重模型的可解释性以及统计推断.Python ,由于更看重预测结果的准确性,使其成为机器学习的一把利器. R ,作为一种以统计推断为导向的编程语言

C# 文字代码页 文字编码的代码页名称速查表_C#教程

Info.CodePage Info.Name Info.DisplayName 37 IBM037 IBM EBCDIC (US-Canada) 437 IBM437 OEM United States 500 IBM500 IBM EBCDIC (International) 708 ASMO-708 Arabic (ASMO 708) 720 DOS-720 Arabic (DOS) 737 ibm737 Greek (DOS) 775 ibm775 Baltic (DOS) 850 ib

快速选择合适的机器学习算法

更多深度文章,请关注云计算频道:https://yq.aliyun.com/cloud 本文主要适用于初学者到中级数据科学家或分析师,他们有兴趣识别和应用机器学习算法来解决他们感兴趣的问题. 一个初学者面临各种机器学习算法的典型问题是"我应该使用哪种算法?"问题的答案取决于许多因素,包括: 数据的大小.质量和性质. 可用计算时间. 任务的紧迫性. 你想用数据做什么. 即使是经验丰富的数据科学家也不能在尝试不同的算法之前,判断哪种算法会最好. 我们并不是倡导一个一步到位的方法,但是我们希

SAS首席科学家:如何选择机器学习算法?

面对各种各样的机器学习算法--"我应该用哪一个?",是一名初学者经常遇到的问题.问题的答案,取决于许多因素,包括: 数据的大小,质量和性质 可用的计算时间 任务的紧迫性 你想对数据做什么 即便是经验丰富的数据科学家,也无法在尝试各种算法之前,判断出哪种算法的效果最好.在这里,我并不是忽悠大家要一步到位.我的意思是,要根据明确的因素,搞清楚应该优先尝试哪些算法. 机器学习算法速查表 该流程图展示了何时使用哪些算法 机器学习算法速查表,帮助你找到适合不同具体问题的算法.本文将引导你如何使用

机器学习算法基础(Python和R语言实现)

简介 谷歌的无人驾驶汽车已经受到了世人很大的关注,但公司的未来却是在机器学习领域,因为这项技术将使电脑更智能,更人性化.--埃里克·施密特(谷歌主席) 我们可能正经历着人类最明确定义的阶段,这个阶段计算机计算从大型主机,到个人电脑,到云计算.但这些并不是根本原因,而是接下来几年中将会发生的. 这个时期使那些像我一样的人们兴奋的是工具和技术的开放,这得以于计算机领域的蓬勃发展.今天,作为一名数据科学家,我能以很低的成本搭建一个拥有复杂算法的数据处理系统.但是达到这样的结果,我也经历了在黑夜中艰苦的

确定不收藏?十张机器学习和深度学习工程师必备速查表!

本文讲的是十张机器学习和深度学习工程师必备速查表,对于初学者,机器学习和深度学习课程会很困难,此外各类深度学习库也十分难理解.我在Github上创建了一个本地库(https://github.com/kailashahirwar/cheatsheets-ai ),里面包含了从不同渠道收集的速查表,可以直接下载.尽管拿去用吧,同时欢迎补充完善! 1. Keras Karas是Theano和TensorFlow平台上一款强大易用的深度学习库.它为发展和训练深度学习模型提供高阶神经网络API接口. 来

机器学习算法与Python实践之(五)k均值聚类(k-means)

       机器学习算法与Python实践这个系列主要是参考<机器学习实战>这本书.因为自己想学习Python,然后也想对一些机器学习算法加深下了解,所以就想通过Python来实现几个比较常用的机器学习算法.恰好遇见这本同样定位的书籍,所以就参考这本书的过程来学习了.        机器学习中有两类的大问题,一个是分类,一个是聚类.分类是根据一些给定的已知类别标号的样本,训练某种学习机器,使它能够对未知类别的样本进行分类.这属于supervised learning(监督学习).而聚类指事先