重要的机器学习算法

摘要: 本文旨在为那些获取关于重要机器学习概念知识的人们提供一些机器学习算法,同时免费提供相关的材料和资源。并且附上相关算法的程序实现。

点此查看原文:http://click.aliyun.com/m/42631/

本文旨在为那些获取关于重要机器学习概念知识的人们提供一些机器学习算法,同时免费提供相关的材料和资源。并且附上相关算法的程序实现。

通用的机器学习算法包括:

  1. 1.决策树。
  2. 2.SVM。
  3. 3.朴素贝叶斯。
  4. 4.KNN。
  5. 5.K均值。
  6. 6.随机森林。

24252a3e2279c278a7cafc07dcb81febc4b20a18

下面是使用Python和R代码实现并简要解释这些常见机器学习算法。

1.决策树:

这是作者最喜欢的算法之一,作者经常使用它。它是一种主要用于分类问题的监督学习算法。令人惊讶的是,它竟然适用于分类和连续因变量。在这个算法中,我们可以将人口分成两个或更多的齐次集合。这需要基于一些非常重要的属性和独立变量完成的,以使组群尽可能独立。

Python代码

#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 object 
model = tree.DecisionTreeClassifier(criterion='gini') # for classification, here you can change the algorithm as gini or entropy (information gain) by default it is gini  
# model = tree.DecisionTreeRegressor() for regression
# Train the model using the training sets and check score
model.fit(X, y)
model.score(X, y)
#Predict Output
predicted= model.predict(x_test)

R

library(rpart)
x <- cbind(x_train,y_train)
# grow tree 
fit <- rpart(y_train ~ ., data = x,method="class")
summary(fit)
#Predict Output 
predicted= predict(fit,x_test)

2.支持向量机(SVM)

这是一种分类方法。在这个算法中,我们将每个数据项绘制为一个n维空间中的一个点(其中n是你拥有的特征的数量),每个特征的值是特定坐标的值。

例如,如果我们只有两个特征,比如一个人的身高和头发长度,我们首先将这两个变量绘制在二维空间中,每个点有两个坐标值表示(称为支持向量)。接着,我们将找到一些将两个不同分类的数据组之间的数据分割的行,这将是两组中最近点之间距离最远的线。

Python代码

#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 object 
model = svm.svc() # there is various option associated with it, this is simple for classification. You can refer link, for mo# re detail.
# Train the model using the training sets and check score
model.fit(X, y)
model.score(X, y)
#Predict Output
predicted= model.predict(x_test)

R

library(e1071)
x <- cbind(x_train,y_train)
# Fitting model
fit <-svm(y_train ~ ., data = x)
summary(fit)
#Predict Output 
predicted= predict(fit,x_test)

3.朴素贝叶斯:

这是一种基于贝叶斯定理的分类技术,假设预测变量之间具有独立性。简而言之,朴素贝叶斯分类器假设类中特定特征的存在与任何其他特征的存在无关。例如,如果果实呈红色,圆形,直径约3英寸,则果实可以被认为是苹果。即使这些特征依赖于彼此或者依赖于其他特征的存在,朴素贝叶斯分类器也会考虑所有这些特性来独立地预测该水果是苹果的可能性。

朴素贝叶斯模型很容易构建,对于非常大的数据集特别有用。朴素贝叶斯是众所周知的,高度复杂的分类方法。

贝叶斯定理提供了一种计算P(c),P(x)和P(x|c)的后验概率的方法:P(c|x)。

·         P(c|x)是给定预测器(属性)的类(目标)的后验概率。

·         P(c)是类的先验概率。

·         P(x|c)是预测器给定类的概率的可能性。

·         P(x)是预测器的先验概率。

Python代码

#Import Library
from 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, Refer link
# Train the model using the training sets and check score
model.fit(X, y)
#Predict Output
predicted= model.predict(x_test)

R

library(e1071)
x <- cbind(x_train,y_train)
# Fitting model
fit <-naiveBayes(y_train ~ ., data = x)
summary(fit)
#Predict Output 
predicted= predict(fit,x_test)

4.KNN(最近邻居):

这个算法可以用于分类和回归问题。但在ML行业中分类问题更为广泛。K近邻是一种简单的算法,它存储所有可用的案例,并通过其K个邻居的多数投票来分类新案例。KNN算法的核心是如果一个样本在特征空间中的K个最相邻样本值得大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。其中判断的依据是距离函数的计算。

这些距离函数可以是欧几里得,曼哈顿,闵可夫斯基或汉明距离。前三个函数用于连续函数,Hamming用于分类变量。如果K = 1,那么这个情况就被简单地分配给它最近的邻居的类别。有时候,在执行KNN建模时选择K是一个巨大的挑战。

KNN可以很容易地映射到我们的真实生活中。如果你想了解一个你不了解的人,你可能会想知道他们的密友和他们进入的圈子,以获得他们的信息!

选择KNN之前需要考虑的事项是:

  • KNN在计算资源上是昂贵的。
  • 变量应该被标准化,否则较高范围的变量可能会偏差。
  • 在进行KNN之前更多地处理预处理阶段,如异常值/噪音消除。

Python代码

#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 Output
predicted= model.predict(x_test)

R

library(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)

5.K均值:

这是一种解决聚类问题的无监督算法,其过程遵循一个简单的方法,即通过一定数量的聚类来分类给定的数据集(假设K个聚类)。群集内的数据点与同级群组是同质且异质的。

还记得从墨迹中弄出形状吗?K-means有点类似于这个活动。你可以通过看形状破译有多少不同的群集/人口存在!

K-means如何形成一个集群:

  1. K-均值为每个群集选取K个点数,称为质心。
  2. 每个数据点形成具有最接近质心的群集,即K个群集。
  3. 根据现有集群成员查找每个集群的质心。
  4. 由于我们有新的质心,请重复步骤2和步骤3.从新质心找到每个数据点的最近距离,并与新的K个聚类关联。重复这个过程直到收敛,即质心不变。

如何确定K的价值:

在K-means中,我们有簇,每个簇都有自己的质心。集群内质心和数据点之差的平方和构成该集群平方值的总和。另外,当所有群集的平方和的总和被加上时,它成为群集解决方案的平方和的总和。

我们知道,随着簇数量的增加,这个值会不断下降,但是如果你绘制结果的话,你可能会看到,平方距离的总和急剧下降到某个K值,然后慢得多。这样,我们就可以找到最佳的簇数。

Python代码

#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 Output
predicted= model.predict(x_test)

R

library(cluster)
fit <- kmeans(X, 3) # 5 cluster solution

6.随机森林:

随机森林是一个决策树集合的术语。在随机森林里,我们有一系列被称为森林的决策树。为了根据属性对新的对象进行分类,每棵树都给出了一个分类,并且我们说这棵树对那个分类“投票”,森林选择票数最多的分类(在森林中的所有树上)。

每棵树种植和生长如下:

  1. 如果训练集中的病例数为N,则随机抽取N个病例样本,并进行替换。
  2. 如果有M个输入变量,则指定一个数m << M,使得从M中随机选择每个m变量,并且使用m上的最佳划分来分割节点。在森林生长期间,m的值保持不变。
  3. 每棵树都尽可能地生长。没有修剪。

Python代码

#Import Library
from 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 object
model= RandomForestClassifier()
# Train the model using the training sets and check score
model.fit(X, y)
#Predict Output
predicted= model.predict(x_test)

R

library(randomForest)
x <- cbind(x_train,y_train)
# Fitting model
fit <- randomForest(Species ~ ., x,ntree=500)
summary(fit)
#Predict Output 
predicted= predict(fit,x_test)

扫描二维码,获取更多资讯:


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/522665.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux红帽知识内容,RedHat基础入门(一)

Tips&#xff1a;转载自作者TedLau_R怎么说呢&#xff0c;要想学好linux&#xff0c;记命令肯定是必不可少的&#xff0c;虽然命令很多&#xff0c;但是我们不用害怕&#xff0c;其实用的一些常用的命令不算多&#xff0c;我们多刷题&#xff0c;多敲命令就一定可以学好它。当然…

如何从零开始用Keras开发一个机器翻译系统

摘要&#xff1a; 作者拥有大量的实战经验&#xff0c;快来跟着作者开发属于你自己的神经网络翻译系统吧。点此查看原文&#xff1a;http://click.aliyun.com/m/42632/机器翻译是一项非常具有挑战性的任务&#xff0c;按照传统方法是使用高度复杂的语言知识开发的大型统计模型。…

第1篇:Flowable快速工作流脚手架Jsite_克隆项目

JSite 快速开发框架&#xff0c;内置Flowable工作流引擎 五大基础模块 前后端基础代码自动生成 权限精确控制。 说明&#xff1a;此版本我已经调通&#xff0c;最新版本正在更新&#xff0c;页面未处理好&#xff0c;因此采用历史版本。 文章目录一、克隆/打开项目1. 搜索项…

基于阿里云MaxCompute实现游戏数据运营

摘要&#xff1a; 一、总览 一个游戏/系统的业务数据分析&#xff0c;总体可以分为图示的几个关键步骤&#xff1a; 1、数据采集&#xff1a;通过SDK埋点或者服务端的方式获取业务数据&#xff0c;并通过分布式日志收集系统&#xff0c;将各个服务器中的数据收集起来并送到指…

Spark精华问答 | 为什么选择Spark作为流计算引擎?

总的来说&#xff0c;Spark采用更先进的架构&#xff0c;使得灵活性、易用性、性能等方面都比Hadoop更有优势&#xff0c;有取代Hadoop的趋势&#xff0c;但其稳定性有待进一步提高。我总结&#xff0c;具体表现在如下几个方面。1Q&#xff1a;为什么选择Kafka去承担类似数据总…

linux c调用wcf服务,Silverlight+WCF实现跨域调用

在这篇文章中&#xff0c;WCF扮演服务器&#xff0c;向外提供LoginVaild服务&#xff1b;Silverlight扮演客户端&#xff0c;调用WCF提供的LoginVaild服务。思路有了&#xff0c;下面进行代码实现。数据库脚本实现新建T_User表&#xff0c;在表中添加两个字段username、passwor…

第3篇:Flowable快速工作流脚手架Jsite_关闭演示模式

接上一篇&#xff1a;第2篇&#xff1a;Flowable快速工作流脚手架Jsite_配置项目 https://blog.csdn.net/weixin_40816738/article/details/103387623 说明&#xff1a;此版本我已经调通&#xff0c;最新版本正在更新&#xff0c;页面未处理好&#xff0c;因此采用历史版本。 文…

从单租户IaaS到多租户PaaS——金融级别大数据平台MaxCompute的多租户隔离实践

摘要&#xff1a;在2017年云栖大会•北京峰会的大数据专场中&#xff0c;来自阿里云的高级技术专家李雪峰带来了主题为《金融级别大数据平台的多租户隔离实践》的演讲。在分享中&#xff0c;李雪峰首先介绍了基于传统IaaS单租户架构做隔离时面临的问题&#xff1b;然后&#xf…

IDC 2019Q1云市场报告重磅出炉;英特尔与百度签署3年新协议;谷歌收购云存储公司 Elastifile,增强自家……...

关注并标星星CSDN云计算极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go ChinaJoy中任天堂亮相&#…

可靠度理论中“设计基准期”、“设计使用年限”、“使用寿命”几个概念的区分

文章目录 0. 背景1. 重现期2. 设计基准期3. 设计使用年限调整系数4. 一把杆秤5. 调整系数的补充说明Last 0. 背景 在可靠度理论中&#xff0c;经常遇见“设计基准期”、“设计使用年限”、“使用寿命”几个概念。这些概念搞不清楚对于梳理结构荷载组合而言就是致命的。本文也是…

第4篇:Flowable快速工作流脚手架Jsite_启动项目

接上一篇&#xff1a;第3篇&#xff1a;Flowable快速工作流脚手架Jsite_关闭演示模式 https://blog.csdn.net/weixin_40816738/article/details/103388349 说明&#xff1a;此版本我已经调通&#xff0c;最新版本正在更新&#xff0c;页面未处理好&#xff0c;因此采用历史版本…

基于MaxCompute搭建社交好友推荐系统

摘要&#xff1a;本次由阿里云驻云科技资深架构师翟永东带来了“基于MaxCompute搭建社交好友推荐系统”为主题的分享&#xff0c;主要对大数据在好友推荐系统中的应用、好友推荐系统的分析模型、好友推荐系统在阿里云上的实现方式和MaxCompute技术进行了精彩的介绍。 点此查看原…

高德地图基于阿里云MaxCompute的最佳实践

摘要&#xff1a; 云计算带来的变革不言而喻&#xff0c;作为一种新型的IT交付模式&#xff0c;切实为企业节省IT成本、加快IT与企业业务结合效率、提升创新能力、加强管理水平以及增强系统本身的可靠性等方面提供巨大支持&#xff0c;是企业实现新发展的重要途径&#xff0c;它…

如何从零开始设计一颗芯片?

戳蓝字“CSDN云计算”关注我们哦&#xff01;来源&#xff1a;陌上风骑驴看IC作者&#xff1a;陌上风骑驴在各方助力下&#xff0c;集成电路成了时代热点&#xff0c;有大量文章在写芯片设计之复杂之困难&#xff0c;老驴打算从EDA 使用角度捋一遍芯片设计流程。在老驴画出第一…

第5篇:Flowable快速工作流脚手架Jsite_请假实战_部署流程和发起流程

接上一篇&#xff1a;第4篇&#xff1a;Flowable快速工作流脚手架Jsite_启动项目 https://blog.csdn.net/weixin_40816738/article/details/103388465 说明&#xff1a;此版本我已经调通&#xff0c;最新版本正在更新&#xff0c;页面未处理好&#xff0c;因此采用历史版本…

离线计算中的幂等和DataWorks中的相关事项

摘要&#xff1a; 概念 幂等这个词在软件研发中经常被提到。比如消息发送时不应该同时给同个用户推送多次相同的消息&#xff0c;针对同一笔交易的付款也不应该在重试过程中扣多次钱。曾见过一个案例&#xff0c;有个对于一个单据的确认模块没有考虑到幂等性&#xff0c;导致对…

解决在待办任务菜单中都会抛出异常,由于definitionId=undefined导致的问题

文章目录一、部门经理流转1. 登录dept账号2. 在待办任务中&#xff0c;签收任务3. 在待办任务中&#xff0c;办理任务3.1. 响应码5003.2. 请求的url3.3. 页面传递的参数3.4. 控制台报错信息提取3.5. 在获取代办列表FlowTaskService的104行3.6. 在获取代办列表FlowTaskService的…

程序员竟以身试“色”,只因给女友选七夕礼物!看完我酸了

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 伍杏玲出品 | 程序人生&#xff08;ID&#xff1a;coder_life&#xff09;铛铛档&#xff0c;你知道 8 月 7 号是什么日子吗&#xff1f;除了是工作日的星期三&#xff0c;它还是七夕情人节&#xff01;在程序员一片哀嚎“我…

第6篇:Flowable快速工作流脚手架Jsite_请假实战_部门经理审批

接上一篇&#xff1a;第5篇&#xff1a;Flowable快速工作流脚手架Jsite_请假实战_部署流程和发起流程https://blog.csdn.net/weixin_40816738/article/details/103388680 说明&#xff1a;此版本我已经调通&#xff0c;最新版本正在更新&#xff0c;页面未处理好&#xff0c;因…

华为正式发布方舟编译器,相关源码已开放下载;微软开源量子开发工具包 QDK;GitHub回应突然断供:也很无可奈何的样子……...

关注并标星星CSDN云计算极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 本田1.34亿份文档&#xff0…