想要成为数据科学家?知道这11种机器学习算法吗?

摘要: 想要成为数据科学家?知道这十几种机器学习算法吗?赶快来了解一下吧,文中附各种算法的资源地址!

机器学习从业者都有不同的个性,虽然其中一些人会说“我是X方面的专家,X可以训练任何类型的数据”,其中X是某种算法。但是,我们不得不承认的是在现实生活当中,不存在一个X可以训练任何类型的数据。某些算法落实到某些行业中是适合的,但到了那个行业就变得不适合了。

在数据科学界存在一个共识:作为数据科学家,我们必须尽可能多的了解通用的及其学习算法。这样我们才能在面临不同行业的问题时有更多的解决方案。本文对通用的机器学习算法进行了简要的阐述,并提供了关于他们的相关资源,从而帮助你能够快速掌握其中的奥妙。

1.主成分分析(PCA)/ SVD

PCA是一种无监督的方法,用于理解由矢量组成的数据集的全局属性。在这里我们着重分析数据点的协方差矩阵,以了解哪些维度/数据点更重要(即它们之间具有高度的协变性,但与其他变量之间的协变性较低)。考虑矩阵顶级主成分(PC)的一种方式是考虑具有最高特征值的特征向量。奇异值分解(SVD)本质上也是一种计算有序组件的方法,但你不需要获得点的协方差矩阵就可以得到它。

图片描述

这种算法通过获得维度缩小的数据点来帮助人们克服维度的诅咒

库地址:

https://docs.scipy.org/doc/scipy/reference/generated/scipy.linalg.svd.html

http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html

入门教程:

https://arxiv.org/pdf/1404.1100.pdf

2.最小二乘法和多项式拟合

还记得在大学里的数值分析课程吗?你可以使用它们来拟合机器学习中的具有低维度的小型数据集的曲线。(而对于具有多维的大数据或数据集,你可能最终会过度拟合。)OLS有一个封闭式的解决方案,因此你无需使用复杂的优化技术。

图片描述

上图很明显,使用这种算法可以拟合简单的曲线/回归

库地址:

https://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.lstsq.html https://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.polyfit html的

入门教程:

https://lagunita.stanford.edu/c4x/HumanitiesScience/StatLearning/asset/linear_regression.pdf

3.约束线性回归

最小二乘法可能会与异常值,假字段和数据中的噪声混淆。因此,我们需要约束来减少数据集上拟合产生的线方差。做到这一点的方法是拟合线性回归模型,以确保权重不会有误。模型可以有L1范数(LASSO)或L2(Ridge Regression)或两者兼具。通过这种方法就可以使均方损失得到优化。

图片描述

使用这个算法来拟合具有约束条件的回归线,可以避免过度拟合和掩盖模型中的噪音维度。

库地址:

http://scikit-learn.org/stable/modules/linear_model.html

入门教程:

https://www.youtube.com/watch?v=5asL5Eq2x0A

https://www.youtube.com/watch?v=jbwSCwoT51M

4.K均值聚类

大多数机器学习从业者都喜欢无监督聚类算法。给定一组矢量形式的数据点,我们可以根据它们之间的距离制作点集群。这是一个期望最大化算法,它迭代地移动聚类中心,然后聚焦每个聚类中心点。该算法所采用的输入是将要生成的簇的数量以及它将尝试聚集簇的迭代次数。

图片描述

从名字上可以明显看出,你可以使用此算法在数据集中创建K个群集。

库地址:

http://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html

入门教程

https://www.youtube.com/watch?v=hDmNF9JG3lo

https://www.datascience.com/blog/k-means-clustering

5.Logistic回归

Logistic回归是线性回归,在拥有权重后带有非线性(主要使用sigmoid函数,或者使用tanh函数)应用,因此把输出限制接近+/-类(对于sigmoid,为1和0)。交叉熵损失函数使用梯度下降进行优化。初学者注意:Logistic回归是用于分类的,而不是回归。你也可以将Logistic回归看作单层神经网络。使用梯度下降或L-BFGS等优化方法对Logistic回归进行训练。从事NLP的人经常会以最大熵分类器的名称来使用它。

这是一个Sigmoid的样子:

图片描述

库地址:

http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html

入门教程

https://www.youtube.com/watch?v=-la3q9d7AKQ

6.支持向量机(SVM)

支持向量机是线性/逻辑回归的线性模型,区别在于它们具有不同的基于边界的损失函数(支持向量的推导是我观察到的与特征值计算在一起的最美妙的数学结果之一)。你可以使用L-BFGS甚至SGD等优化方法优化损失函数。

图片描述

SVM的另一个创新是向数据工程师提供数据内核。如果你具有良好的洞察力,你可以用更聪明的RBF内核替换旧的RBF内核。

SVM可以做到的事情是学习一个类分类器。

支持向量机可以用来训练分类器(甚至是回归器(regressors))。

库地址:

http://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html

入门教程

https://www.youtube.com/watch?v=eHsErlPJWUU

注意:基于SGD的Logistic回归和SVM的训练可以在我经常使用的SKLearn中找到,因为它可以让我用一个通用接口来检查LR和SVM。

7.前馈神经网络(FFNN)

这可以算的上是多层Logistic回归分类器。许多权重层被非线性(S形,tanh,relu + softmax和selu)分开了。它另外一个的名字是多层感知器。FFNN可用于自动编码器的分类和无监督特征学习。

图片描述

多层感知器

图片描述

FFNN作为自动编码器

可以使用FFNN作为自动编码器训练分类器或用来特征提取。

库地址:

http://scikit-learn.org/stable/modules/generated/sklearn.neural_network.MLPClassifier.html#sklearn.neural_network.MLPClassifier

http://scikit-learn.org/stable/modules/generated/sklearn.neural_network.MLPRegressor.html

https://github.com/keras-team/keras/blob/master/examples/reuters_mlp_relu_vs_selu.py

入门教程

http://www.deeplearningbook.org/contents/mlp.html

http://www.deeplearningbook.org/contents/autoencoders.html

http://www.deeplearningbook.org/contents/representation.html

8.卷积神经网络(Convnets)

几乎当今世界上所有的最先进的基于视觉的机器学习结果都是使用卷积神经网络实现的。它们可用于图像分类、对象检测和图像分割。它是由Yann Lecun在80年代末90年代初发明的,Convnets具有卷积层作为分层特征提取器。你也可以在文本中使用它们(甚至是图表)。

图片描述

利用CNN对图像和文本分类,目标检测,图像分割的过程。

库地址:

https://developer.nvidia.com/digits

https://github.com/kuangliu/torchcv

https://github.com/chainer/chainercv

https://keras.io/applications/

入门教程

http://cs231n.github.io/

https://adeshpande3.github.io/A-Beginner%27s-Guide-To-Understanding-Convolutional-Neural-Networks/

9.递归神经网络(RNNS)

RNN模型序列通过在时间t递归地对聚集器状态施加相同的权重集,并且在时间t输入(给定序列在时间t处具有输入,并且在每个时间t具有隐藏状态,这是从RNN的t-1步输出的)。现在很少使用纯RNN,但是像LSTM和GRU这样的同类模型在大多数序列建模任务中是最先进的。

图片描述

RNN(如果存在密集连接的单元和非线性,则现在的f通常是LSTM或GRU)。LSTM单元用于替代纯RNN中的简单致密层。

图片描述

将RNN用于时间序列建模任务,特别是文本分类,机器翻译和语言建模。

库地址:

https://github.com/tensorflow/models(来自Google的许多不错的NLP研究论文都在这里!)

https://github.com/wabyking/TextClassificationBenchmark

http://opennmt.net/

入门教程:

http://cs224d.stanford.edu/

http://www.wildml.com/category/neural-networks/recurrent-neural-networks/

http://colah.github.io/posts/2015-08-Understanding-LSTMs/

10.条件随机字段(CRFS)

CRF可能是概率图形模型(PGM)系列中最常用的模型。它们用于像RNN一样的序列建模,也可以与RNN结合使用。在神经机器翻译系统进入CRF之前,它们是最先进的技术,并且在许多具有小数据集的序列标记任务中,他们仍然表现的比RNN更好。它们也可以用于其他结构化预测任务,如图像分割等。CRF对序列中的每个元素(比如句子)进行建模,使得近邻影响序列中某个组件的标签,而不是所有标签都彼此独立。

使用CRF标记序列(文本、图像、时间序列、DNA等)。

库地址:

https://sklearn-crfsuite.readthedocs.io/en/latest/

入门教程

http://blog.echen.me/2012/01/03/introduction-to-conditional-random-fields/

https://www.youtube.com/watch?v=GF3iSJkgPbA

11.决策树

比方说,我给了一张有关各种水果数据的Excel工作表,我必须标注这是苹果,那是其他类型的水果。那么,如果我要提出一个问题是“哪些水果是红色的,那些事圆形的?”并且将所有回答用“是”和“否”来表示。现在,所有的红色的和圆形的水果可能不是苹果,所有的苹果也都不会是红色和圆形的。所以我会问一个问题:“哪些水果有红色或黄色的提示?“红色且为圆形的水果,并会问“哪些水果是绿色且圆形的?而不是红色和圆形水果?基于这些问题,我可以等到准确的答案——苹果。这个问题的解决方式就是使用决策树。但是,这是基于我的直觉的决策树。直觉不能处理高维和复杂的数据。我们必须通过查看标记数据自动提出问题的级联,这就是基于机器学习的决策树所做的。像CART树这样的早期版本只能用于简单的数据,但是对于越来越大的数据集,偏差-方差的权衡需要通过更好的算法来解决。现在使用的两种常见决策树算法是随机森林(在其属性的随机子集上构建不同的分类器并将它们组合以用于输出)和增强树(Boosting Trees)(在其他树的基础上对树的级联进行训练,纠正它们下面的树的错误)。

决策树可以用来分类数据点(甚至是回归)。

图书馆

http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html

http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.GradientBoostingClassifier.html

http://xgboost.readthedocs.io/en/latest/

https://catboost.yandex/

入门教程

http://xgboost.readthedocs.io/en/latest/model.html

https://arxiv.org/abs/1511.05741

https://arxiv.org/abs/1407.7502

http://education.parrotprediction.teachable.com/p/practical-xgboost-in-python

以上是你可以学习成为数据科学家的十种机器学习算法。

本文由阿里云云栖社区组织翻译。

文章原标题《10 Machine Learning Algorithms You Should Know to Become a Data Scientist》

作者:Shashank Gupta

译者:虎说八道,审校:。

原文链接
干货好文,请关注扫描以下二维码:
图片描述

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

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

相关文章

Docker精华问答 | Consul是什么?

在计算机技术日新月异的今天, Docker 在国内发展的如火如荼。特别是在一线互联网公司 Docker 的使用是十分普遍的,甚至成为了一些企业面试的加分项,那么今天我们继续关于Docker 的精华问答。1Q:Consul是什么?A:Consul是一个分布式…

2020科目一考试口诀_二级建造师考试科目有哪些2020

2020二级建造师考试科目有哪些:2020年二级建造师考试设《建设工程施工管理》、《建设工程法规及相关知识》两个公共科目和《专业工程管理与实务》科目(包含六个专业类别,任选一科报考)。(一)《专业工程管理与实务》科目分为6个专业类别:建筑工…

机器学习用于金融市场预测难在哪?

摘要: 本文主要讲述了机器学习用于金融市场预测难在哪?——金融间序是典型的部分可见马尔科夫决策过程(POMDP) 数据分布 小样本 难以计算的数据 十分复杂 部分可见马尔科夫决策过程 推荐系统的相似性 结束思索金融市场已经成为最早…

full join 和full outer join_多表关联:公式展开、join、过滤条件的顺序

这是在实现多表关联时想到的。我们现在这套体系,实现多表关联比较复杂。如果Superset能官方支持多表关联,不知道会是什么样的方案,复杂度如何。在公式这个层面,没有关联条件,只有两个列、或者多个列,相互之…

异构计算助力客户春节webp图片编码

摘要: 背景与挑战 技博客 GigaOM 曾报道:YouTube 的视频略缩图采用 WebP 格式后,网页加载速度提升了 10%;谷歌的 Chrome 网上应用商店采用 WebP 格式图片后,每天可以节省几 TB 的带宽,页面平均加载时间大约…

发动机压缩比怎么计算公式_怎么判断发动机有积碳,发动机积碳多的症状有哪些...

经过时间的积累,积碳作为发动机的通病几乎无处不有,很多车主也对此十分头疼。不过,很多车主小白并不了解车辆积碳是如何产生的,更不知道如何判断发动机是否有积碳,其实发动机积碳多的症状很容易让车主误以为车辆出现其…

Kubernetes之路 1 - Java应用资源限制的迷思

摘要: 随着容器技术的成熟,越来越多的企业客户在企业中选择Docker和Kubernetes作为应用平台的基础。然而在实践过程中,还会遇到很多具体问题。本文分析并解决了Java应用在容器使用过程中关于Heap大小设置的一个常见问题。随着容器技术的成熟&…

你家的饮水机,到底可以有多脏?

戳蓝字“CSDN云计算”关注我们哦!作者 | 胡巍巍出品 | CSDN(ID:CSDNnews)几年前,笔者在一所培训学校工作。因为学生多、学校大,老师也多,自然办公室也多。这种情况下,学校为了省事&a…

java http get_我是如何进入阿里巴巴的-面向春招应届生Java面试指南(九)

基础篇基本功面向对象的特征1.final, finally, finalize 的区别 final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为f…

链表的快慢指针思想的解决

看接下来的一道题目 1、给定一个头结点为 head 的非空单链表,返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 例子:[1,2,3,4,5] 返回中间节点3 [1,2,3,4,5,6] 返回中间节点4 我们该如何做呢,首先这里用到了快慢…

使用Helm 在容器服务k8s集群一键部署wordpress

摘要: Helm 是啥? 微服务和容器化给复杂应用部署与管理带来了极大的挑战。Helm是目前Kubernetes服务编排领域的唯一开源子项目,做为Kubernetes应用的一个包管理工具,可理解为Kubernetes的apt-get / yum,由Deis 公司发起&#xff…

Jupyter Notebook数据科学高效技巧

摘要: 本文有一些关于Jupyter Notebook的干货,希望看完文章可以给你带来收获当我学习有关深度学习的优秀的fast.ai课程时,我学到了很多适用于通用软件工程的干货。我写这篇文章是为了总结这些技巧并与你分享。1.Jupyter Notebook拓展标准的Ju…

格罗方德起诉台积电侵犯16项专利、影响巨大;中兴通讯与印尼Smartfren展开合作;网传FB开发新通讯应用Threads……...

关注并标星星CSDN云计算极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go 索尼将于9月5日在IFA 2019上…

JS之前台参数提交到后台,双引号转义为解决办法

问题描述 var param $("#searchForm").serializeJson(); 前台封装好了键值对形式的字符串,使用了EasyUI的treeGrid控件,传到后台后,双引号转义为" 解决办法 apache工具包common-lang中有一个很有用的处理字符串的工具类&am…

MaxCompute理解数据、运算和用户的大脑:基于代价的优化器

摘要: 回顾大数据技术领域大事件,最早可追溯到06年Hadoop的正式启动,而环顾四下,围绕着数据库及数据处理引擎,业内充斥着各种各样的大数据技术。在云栖社区2017在线技术峰会大数据技术峰会上,阿里云大数据计…

MaxCompute与OSS非结构化数据读写互通(及图像处理实例)

摘要: MaxCompute作为阿里巴巴集团内部绝大多数大数据处理需求的核心计算组件,拥有强大的计算能力,随着集团内外大数据业务的不断扩展,新的数据使用场景也在不断产生。在这样的背景下,MaxCompute(ODPS&…

装mysql最后一步没响应_每天14点遭遇惊魂时刻,如何一步一步揪出真凶?

“ 笔者所在的公司有一款大 DAU(日活)的休闲游戏。这款游戏的后端架构很简单,可以简单理解为通讯-逻辑-存储三层结构。其中存储层大量使用了 Redis 和 MySQL。图片来自 Pexels随着存量用户的增加,Redis 就隔三差五的出现问题。所以笔者打算把遇到的一系列…

form表单提交,后台实体类接收转义问题

问题:前台表单用ajax提交,data为validateForm.serializeArray(),后台用实体类接收参数,&符号被转义为&但是从request中直接取值是没问题的,请问如何解决实体类接收到的参数的转义问题。 代码如下:…

AI落地谁最强?AI Top 30+案例评选等你来秀

人工智能历经百年发展,如今迎来发展的黄金时期。目前,AI 技术已涵盖自然语言处理、模式识别、图像识别、数据挖掘、机器学习等领域的研究,在汽车、金融、教育、医疗、安防、零售、家居、文娱、工业等行业获得了令人印象深刻的成果。在各行业宣…

NAT网关之SNAT进阶使用(二)构建ECS级别SNAT出网方式

摘要: NAT网关是云上VPC ECS访问Internet的出入口。阿里云NAT网关控制台创建SNAT条目默认只支持交换机粒度。如何设置ECS粒度的SNAT规则呢,本文将为您揭晓。 背景 NAT网关是云上VPC ECS访问Internet的出入口。阿里云NAT网关控制台创建SNAT条目默认只支持…