Machine Learning常用算法: 机器学习常用算法和高频面试题都在这里了!

人工智能正热。当我们谈机器学习时,到底在谈些什么?Machine learning有哪些常用的算法呢?今天我们就来总结一下机器学习必须要懂的几大算法,希望对大家有所帮助。同时,我们也为大家整理了机器学习高频面试题。

机器学习是一种数据分析技术,让计算机执行人和动物与生俱来的活动:从经验中学习。机器学习算法使用计算方法直接从数据中“学习”信息,而不依赖于预定方程模型。当可用于学习的样本数量增加时,这些算法可自适应提高性能。随着大数据应用增加,机器学习经常适用于以下学科:

计算金融学,用于信用评估和算法交易

图像处理和计算机视觉,用于人脸识别、运动检测和对象检测

计算生物学,用于肿瘤检测、药物发现和 DNA 序列分析

能源生产,用于预测价格和负载

汽车、航空航天和制造业,用于预见性维护

自然语言处理,用于语音识别应用

机器学习常用算法分类

监督学习算法 (Supervised Algorithms):

在监督学习训练过程中,可以由训练数据集学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。该算法要求特定的输入/输出,首先需要决定使用哪种数据作为范例。例如,文字识别应用中一个手写的字符,或一行手写文字。主要算法包括神经网络、支持向量机、最近邻居法、朴素贝叶斯法、决策树等。

无监督学习算法 (Unsupervised Algorithms):

这类算法没有特定的目标输出,算法将数据集分为不同的组。

强化学习算法 (Reinforcement Algorithms):

强化学习普适性强,主要基于决策进行训练,算法根据输出结果(决策)的成功或错误来训练自己,通过大量经验训练优化后的算法将能够给出较好的预测。类似有机体在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的预期,产生能获得最大利益的习惯性行为。在运筹学和控制论的语境下,强化学习被称作“近似动态规划”(approximate dynamic programming,ADP)。

机器学习常见算法

Regression Algorithms(回归算法)

回归更多地关注自变量与因变量之间的关系,并通过对误差的测算来建模,回归算法是对于数学统计的一个很好应用,也被纳入统计机器学习中。

常见的回归算法包括:

Ordinary Least Squares Regression (OLSR,普通最小二乘回归)

Linear Regression(线性回归)

Logistic Regression(逻辑回归)

Stepwise Regression(逐步回归)

Multivariate Adaptive Regression Splines (MARS,多元自适应回归)

Locally Estimated Scatterplot Smoothing (LOESS,本地散点平滑估计)

Instance-based Algorithms(基于距离的算法)

基于距离学习的模型非常常见,这类的模型是对训练集数据进行建模并比较新数据与之的距离,而距离的衡量有很多,常见的是欧氏距离、曼哈顿距离等。

常见的算法包括:

k-Nearest Neighbor (kNN)

Learning Vector Quantization (LVQ,学习矢量量化)

Self-Organizing Map (SOM,自组织映射)

Locally Weighted Learning (LWL,局部加权学习)

Regularization Algorithms(正则化算法)

正则化是对另一种方法(通常是回归方法)的扩展,使基于其复杂性的模型受到惩罚,支持更简单的模型,这些模型在泛化能力方面也比较好。

常见的正则化算法包括:

Ridge Regression(岭回归算法)

Least Absolute Shrinkage and Selection Operator (LASSO算法,稀疏约束)

Elastic Net(弹性网络)

Least-Angle Regression (LARS,最小角回归算法)

Decision Tree Algorithms(决策树算法)

决策树方法构建基于数据中属性的实际值来建模的,决策树经常被训练用于分类和回归问题,决策树通常是快速和准确的,并且是机器学习中最受欢迎的。

常见的决策树算法包括:

Classification and Regression Tree (CART,分类回归树算法)

Iterative Dichotomiser 3 (ID3)

C4.5 and C5.0 (不同版本的区别)

Chi-squared Automatic Interaction Detection (CHAID)

Decision Stump(决策树桩)

MD5(Message-Digest Algorithm,讯息摘要算法)

Conditional Decision Trees(条件决策树)

Bayesian Algorithms(贝叶斯算法)

基于贝叶斯定理的方式来构建的算法,常用语分类与回归问题。

常见的贝叶斯算法包括:

Naive Bayes(朴素贝叶斯)

Gaussian Naive Bayes(高斯朴素贝叶斯)

Multinomial Naive Bayes(多项式朴素贝叶斯)

Averaged One-Dependence Estimators (AODE)

Bayesian Belief Network (BBN,贝叶斯定理网络)

Bayesian Network (BN,贝叶斯网络)

Clustering Algorithms(聚类算法)

聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法,同时也是数据挖掘的一个重要算法。

聚类(Cluster)分析是由若干模式(Pattern)组成的,通常,模式是一个度量(Measurement)的向量,或者是多维空间中的一个点。

聚类分析以相似性为基础,在一个聚类中的模式之间比不在同一聚类中的模式之间具有更多的相似性。

常见的聚类算法包括:

k-Means

k-Medians

Expectation Maximisation (EM,Expectation Maximization Algorithm,是一种迭代算法)

Hierarchical Clustering(层次聚类)

Association Rule Learning Algorithms(关联规则学习算法)

关联规则学习方法提取的规则最能解释数据中变量之间的关系,这些规则可以在大型多维数据集中发现重要和商业有用的关联,而被组织利用。

最常见的算法包括:

Apriori algorithm

Eclat algorithm

Artificial Neural Network Algorithms(人工神经网络算法)

人工神经网络是受生物神经网络结构和/或功能启发的模型,它们是一类模式匹配,通常用于回归和分类问题,但实际上是一个巨大的子字段,包含数百种算法和各种类型的问题类型。

最常见的算法包括:

Perceptron(感知器)

Back-Propagation(反向传播法)

Hopfield Network(霍普菲尔网络)

Radial Basis Function Network (RBFN,径向基函数网络)

Deep Learning Algorithms(深度学习算法)

深度学习方法是利用大量廉价计算的人工神经网络的更新,它关心的是构建更大更复杂的神经网络,正如上面所提到的,许多方法都与半监督学习问题有关,在这些问题中,大型数据集包含的标签数据非常少。

最常见的算法包括:

Deep Boltzmann Machine (DBM)

Deep Belief Networks (DBN)

Convolutional Neural Network (CNN)

Stacked Auto-Encoders

Dimensionality Reduction Algorithms(降维算法)

像聚类方法一样,维数的减少有利于寻找到数据的关联关系,但在这种情况下,是不受监督的方式,或者用较少的信息来概括或描述数据。

这些方法中的许多可以用于分类和回归。

常见的算法包括:

Principal Component Analysis (PCA)

Principal Component Regression (PCR)

Partial Least Squares Regression (PLSR)

Sammon Mapping

Multidimensional Scaling (MDS)

Projection Pursuit

Linear Discriminant Analysis (LDA)

Mixture Discriminant Analysis (MDA)

Quadratic Discriminant Analysis (QDA)

Flexible Discriminant Analysis (FDA)

常见的Machine Learning面试题

machine learning 机器学习常用算法

Q1: What’s the trade-off between bias and variance?

问题1: 什么是偏差(bias)、方差(variable)之间的均衡?

Bias 是由于你使用的学习算法过度简单地拟合结果或者错误地拟合结果导致的错误。它反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度,即算法本身的拟合能力。Bias 可能会导致模型欠拟合,使其难以具有较高的预测准确性,也很难将你的知识从训练集推广到测试集。

Variance 是由于你使用的学习算法过于复杂而产生的错误。它反映的是模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性。反应预测的波动情况。Variance 过高会导致算法对训练数据的高纬度变化过于敏感,这样会导致模型过度拟合数据。从而你的模型会从训练集里带来太多噪音,这会对测试数据有一定的好处。

Bias-Variance 的分解,本质上是通过在基础数据集中添加偏差、方差和一点由噪声引起的不可约误差,来分解算法上的学习误差。从本质上讲,如果你使模型更复杂并添加更多变量,你将会失去一些 Bias 但获得一些 Variance,这就是我们所说的权衡(tradeoff)。这也是为什么我们在建模的过程中,不希望这个模型同时拥有高的偏差和方差。

Q2: What is the difference between supervised and unsupervised machine learning?

问题2:监督学习和非监督学习有什么不同?

监督学习需要train有label的数据。例如,为了进行classification(一项受监督的学习任务),您需要首先标记将用于培训模型的数据,以便将数据分类到标记的组中。相反的,无监督学习不需要明确标记数据。

Q3: How is KNN different from k-means clustering?

问题3: KNN和 k-means 聚类由什么不同?

K-Nearest Neighbors是一种监督分类算法,而 k-means聚类是一种无监督的聚类算法。 虽然这些机制起初可能看起来相似,但这实际上意味着为了使K-Nearest Neighbors工作,你需要标记数据,以便将未标记的点分类(因此是最近邻居部分)。 K均值聚类仅需要一组未标记的点和阈值:算法将采用未标记的点并逐渐学习如何通过计算不同点之间的距离的平均值将它们聚类成组。

这里的关键区别在于,KNN需要标记点,因此是有监督的学习,而k-means不是,因此是无监督学习。

Q4: Explain how a ROC curve works.

问题4:解释一下ROC曲线的原理

ROC曲线是真阳率与各种阈值下的假阳率之间的对比度的图形表示。 它通常用作代表模型灵敏度(真阳性)与跌落之间的平衡或它将触发误报(假阳性)的概率。

Q5: Define precision and recall.

问题5:定义精度和召回率

召回(率)也称为真阳性率:您的模型声称的阳性数量与整个数据中的实际阳性数量相比。 精确度也称为阳性预测值,它衡量的是您的模型声称与实际声称的阳性数量相比的准确阳性数量。 在您预测在10个苹果的情况下有10个苹果和5个橙子的情况下,可以更容易地想到回忆和精确度。 你有完美的召回(实际上有10个苹果,你预测会有10个),但66.7%的精度,因为在你预测的15个事件中,只有10个(苹果)是正确的。

Q6: What is Bayes’ Theorem? How is it useful in a machine learning context?

问题6:什么是贝叶斯定理?它在机器学习环境中如何有用?

贝叶斯定理描述了当你不能准确知悉一个事物的本质时,你可以依靠与事物特定本质相关的事件出现的多少去判断其本质属性的概率。 它给出了已知先验知识下事件的后验概率。

在数学上,它表示为条件样本的真阳性率除以总体的假阳性率和条件的真阳性率之和。假设你在流感测试后有60%的机会真的感染了流感,但是在感染了流感的人中,50%的测试都是错误的,总人口只有5%的机会感染了流感。在做了阳性测试后,你真的有60%的机会患上流感吗?

贝叶斯定理说不,它说你有一个(0.6*0.05)(条件样本的真阳性率)/(0.6*0.05)(条件样本的真阳性率)+(0.5*0.95)(人群的假阳性率)= 5.94%的机会感染流感。

Q7: Why is “Naive” Bayes naive?

问题7:为什么我们要称“朴素”贝叶斯?

尽管 Naive Bayes 具有实际应用,特别是在文本挖掘中,但它被认为是“天真的”,因为它假设在实际数据中几乎不可能看到:条件概率被计算为组件个体概率的纯乘积。 这意味着特征的绝对独立性 – 这种情况在现实生活中可能永远不会遇到。

Q9: What’s your favorite algorithm, and can you explain it to me in less than a minute?

问题9:你最喜欢的算法是什么?把它解释一下。

这种类型的问题测试了你对如何用平衡来传达复杂和技术上的细微差别的理解,以及快速和有效地总结的能力。确保你有选择,确保你能简单有效地解释不同的算法,使一个五岁的孩子能够掌握基础知识!

Q10: What’s the difference between Type I and Type II error?

问题10:第一类误差和第二类误差有什么区别?

第一类误差指的是假正率,第二类指的是假负率。简单来说,第一类误差意味着假设为真的情况下,作出了拒绝原假设的一种错误推断。第二类误差意味着假设为假的情况下,做出了接受原假设的一种错误判断。

举个例子:第一类误差,你误判一个男的他怀孕了。第二类误差,你误判了一位其实已经怀孕的女子没怀孕。

Q11: What’s a Fourier transform?

问题11:什么是傅立叶变换?

傅立叶变换是将一般函数分解成对称函数叠加的一般方法。或者,正如这篇更直观的教程所说,在一杯冰沙中,我们就是这样找到配方的。傅立叶变换找到一组循环速度、振幅和相位,以匹配任何时间信号。傅立叶变换将信号从时间域转换为频率域-这是从音频信号或其他时间序列(如传感器数据)中提取特征的一种非常常见的方法。

Q12: What’s the difference between probability and likelihood?

概率和似然有什么区别?

概率和似然都是指可能性,但在统计学中,概率和似然有截然不同的用法。概率描述了已知参数时的随机变量的输出结果;似然则用来描述已知随机变量输出结果时,未知参数的可能取值。例如,对于“一枚正反对称的硬币上抛十次”这种事件,我们可以问硬币落地时十次都是正面向上的“概率”是多少;而对于“一枚硬币上抛十次,我们则可以问,这枚硬币正反面对称的“似然”程度是多少。

概率(密度)表达给定θ下样本随机向量X=x的可能性,而似然表达了给定样本X=x下参数θ1(相对于另外的参数θ2)为真实值的可能性。我们总是对随机变量的取值谈概率,而在非贝叶斯统计的角度下,参数是一个实数而非随机变量,所以我们一般不谈一个参数的概率,而说似然。

了解了以上知识,相信你已经对Machine Learning有了一定的认识。如果你还有其他的机器知识困惑,不如选择StudyGate在线辅导服务,全天候帮你解决machine learning所有问题。那么如何在StudyGate上找到合适的导师呢?

studygate作业代写

Step 1:提交作业要求

三分钟即可完成下单,下单时可以选择作业需要的时间和具体要求。

Step 2:选择专业导师

作业提交成功之后,导师审核要求,确认之后会联系报价,可自由选择专业学科相关导师,并且确认作业最终价格。

Step 3:完成订单, 准时交付

导师开始处理订单。在此期间有任何问题,都可以登录账号和导师随时沟通。作业完成后,系统自动发送至你的邮箱,所有信息安全保密。你也可以登录账号直接下载。

Step 4:收到答案14天之内确认,100%满意保证

收到作业之后14天之内,如果对作业有任何问题,都可以联系导师进行修改。100%满意保证,只有你选择满意答案之后,我们才会扣款,安全有保障。

Step 5:对导师提出评价

我们拥有严格的导师考核评价机制,服务好不好,全由你说了算!你的认同是我们前进的动力。

我们的服务范围包括但不限于:
C,C#,C++
Computer Science
Data structure/Machine Learning
Dreamweaver
HTML 代写
Java/JavaScript/JQuery
Linux/Windows/Mac socket Algorithm
Macintosh
Mathematica (programming)
R语言
Networking (computer)
Oracle
Pascal/Perl/PHP/Python
Revit/Rust/Ruby
SAS/Sketchup/Solidworks/SQL/STATA/Swift/SPSS
UNIX
Visual Basic
Web Design/Operating System

StudyGate专业理工科作业辅导,最靠谱的Machine Learning作业辅导

有任何问题,欢迎随时咨询网页客服!