数据分析图解常用的10个机器学习算法数据分析

在机器学习领域,有种说法叫做“世上没有免费的午餐”,简而言之,它是指没有任何一种算法能在每个问题上都能有最好的效果,这个理论在监督学习方面体现得尤为重要。

因此,你应该根据你的问题尝试许多不同的算法,同时使用数据测试集来评估性能并选出最优项。

当然,你尝试的算法必须和你的问题相切合,其中的门道便是机器学习的主要任务。打个比方,如果你想打扫房子,你可能会用到吸尘器、扫帚或者拖把,但你肯定不会拿把铲子开始挖坑吧。

对于渴望了解机器学习基础知识的机器学习新人来说,这儿有份数据科学家使用的十大机器学习算法,为你介绍这十大算法的特性,便于大家更好地理解和应用,快来看看吧。

线性回归可能是统计学和机器学习中最知名和最易理解的算法之一。

线性回归用一个等式表示,通过找到输入变量的特定权重(B),来描述输入变量(x)与输出变量(y)之间的线性关系。

LinearRegression

举例:y=B0+B1*x

给定输入x,我们将预测y,线性回归学习算法的目标是找到系数B0和B1的值。可以使用不同的技术从数据中学习线性回归模型,例如用于普通最小二乘和梯度下降优化的线性代数解。

逻辑回归是机器学习从统计领域借鉴的另一种技术。这是二分类问题的专用方法(两个类值的问题)。

逻辑回归与线性回归类似,这是因为两者的目标都是找出每个输入变量的权重值。与线性回归不同的是,输出的预测值得使用称为逻辑函数的非线性函数进行变换。

逻辑函数看起来像一个大S,并能将任何值转换为0到1的范围内。这很有用,因为我们可以将相应规则应用于逻辑函数的输出上,把值分类为0和1(例如,如果IF小于0.5,那么输出1)并预测类别值。

LogisticRegression

由于模型的特有学习方式,通过逻辑回归所做的预测也可以用于计算属于类0或类1的概率。这对于需要给出许多基本原理的问题十分有用。

传统的逻辑回归仅限于二分类问题。如果你有两个以上的类,那么线性判别分析算法(LinearDiscriminantAnalysis,简称LDA)是首选的线性分类技术。

LDA的表示非常简单。它由你的数据的统计属性组成,根据每个类别进行计算。对于单个输入变量,这包括:

每类的平均值。

跨所有类别计算的方差。

LinearDiscriminantAnalysis

LDA通过计算每个类的判别值并对具有最大值的类进行预测来进行。该技术假定数据具有高斯分布(钟形曲线),因此最好先手动从数据中移除异常值。这是分类预测建模问题中的一种简单而强大的方法。

决策树是机器学习的一种重要算法。

决策树模型可用二叉树表示。对,就是来自算法和数据结构的二叉树,没什么特别。每个节点代表单个输入变量(x)和该变量上的左右孩子(假定变量是数字)。

DecisionTree

树的叶节点包含用于进行预测的输出变量(y)。预测是通过遍历树进行的,当达到某一叶节点时停止,并输出该叶节点的类值。

决策树学习速度快,预测速度快。对于许多问题也经常预测准确,并且你不需要为数据做任何特殊准备。

朴素贝叶斯是一种简单但极为强大的预测建模算法。

该模型由两种类型的概率组成,可以直接从你的训练数据中计算出来:1)每个类别的概率;2)给定的每个x值的类别的条件概率。一旦计算出来,概率模型就可以用于使用贝叶斯定理对新数据进行预测。当你的数据是数值时,通常假设高斯分布(钟形曲线),以便可以轻松估计这些概率。

BayesTheorem

朴素贝叶斯被称为朴素的原因,在于它假设每个输入变量是独立的。这是一个强硬的假设,对于真实数据来说是不切实际的,但该技术对于大范围内的复杂问题仍非常有效。

KNN算法非常简单而且非常有效。KNN的模型用整个训练数据集表示。是不是特简单

通过搜索整个训练集内K个最相似的实例(邻居),并对这些K个实例的输出变量进行汇总,来预测新的数据点。对于回归问题,新的点可能是平均输出变量,对于分类问题,新的点可能是众数类别值。

成功的诀窍在于如何确定数据实例之间的相似性。如果你的属性都是相同的比例,最简单的方法就是使用欧几里德距离,它可以根据每个输入变量之间的差直接计算。

K-NearestNeighbors

KNN可能需要大量的内存或空间来存储所有的数据,但只有在需要预测时才会执行计算(或学习)。你还可以随时更新和管理你的训练集,以保持预测的准确性。

K-近邻的缺点是你需要维持整个训练数据集。学习矢量量化算法(或简称LVQ)是一种人工神经网络算法,允许你挂起任意个训练实例并准确学习他们。

LearningVectorQuantization

LVQ用codebook向量的集合表示。开始时随机选择向量,然后多次迭代,适应训练数据集。在学习之后,codebook向量可以像K-近邻那样用来预测。通过计算每个codebook向量与新数据实例之间的距离来找到最相似的邻居(最佳匹配),然后返回最佳匹配单元的类别值或在回归情况下的实际值作为预测。如果你把数据限制在相同范围(如0到1之间),则可以获得最佳结果。

如果你发现KNN在您的数据集上给出了很好的结果,请尝试使用LVQ来减少存储整个训练数据集的内存要求。

支持向量机也许是最受欢迎和讨论的机器学习算法之一。

超平面是分割输入变量空间的线。在SVM中,会选出一个超平面以将输入变量空间中的点按其类别(0类或1类)进行分离。在二维空间中可以将其视为一条线,所有的输入点都可以被这条线完全分开。SVM学习算法就是要找到能让超平面对类别有最佳分离的系数。

SupportVectorMachine

超平面和最近的数据点之间的距离被称为边界,有最大边界的超平面是最佳之选。同时,只有这些离得近的数据点才和超平面的定义和分类器的构造有关,这些点被称为支持向量,他们支持或定义超平面。在具体实践中,我们会用到优化算法来找到能最大化边界的系数值。

SVM可能是最强大的即用分类器之一,在你的数据集上值得一试。

随机森林是最流行和最强大的机器学习算法之一。它是一种被称为BootstrapAggregation或Bagging的集成机器学习算法。

bootstrap是一种强大的统计方法,用于从数据样本中估计某一数量,例如平均值。它会抽取大量样本数据,计算平均值,然后平均所有平均值,以便更准确地估算真实平均值。

在bagging中用到了相同的方法,但最常用到的是决策树,而不是估计整个统计模型。它会训练数据进行多重抽样,然后为每个数据样本构建模型。当你需要对新数据进行预测时,每个模型都会进行预测,并对预测结果进行平均,以更好地估计真实的输出值。

RandomForest

随机森林是对决策树的一种调整,相对于选择最佳分割点,随机森林通过引入随机性来实现次优分割。

因此,为每个数据样本创建的模型之间的差异性会更大,但就自身意义来说依然准确无误。结合预测结果可以更好地估计正确的潜在输出值。

如果你使用高方差算法(如决策树)获得良好结果,那么加上这个算法后效果会更好。

Boosting是一种从一些弱分类器中创建一个强分类器的集成技术。它先由训练数据构建一个模型,然后创建第二个模型来尝试纠正第一个模型的错误。不断添加模型,直到训练集完美预测或已经添加到数量上限。

AdaBoost是为二分类开发的第一个真正成功的Boosting算法,同时也是理解Boosting的最佳起点。目前基于AdaBoost而构建的算法中最著名的就是随机梯度boosting。

AdaBoost

因为算法极为注重错误纠正,所以一个没有异常值的整洁数据十分重要。

初学者在面对各种各样的机器学习算法时提出的一个典型问题是“我应该使用哪种算法”问题的答案取决于许多因素,其中包括:

数据的大小,质量和性质;

任务的紧迫性;

你想要对数据做什么。

即使是一位经验丰富的数据科学家,在尝试不同的算法之前,也无法知道哪种算法会表现最好。虽然还有很多其他的机器学习算法,但这些算法是最受欢迎的算法。如果你是机器学习的新手,这是一个很好的学习起点。

THE END
1.算法设计与分析众数问题——对于给定的由n个自然数组成的多重集S二、分析 三、运行结果 四、代码 一、问题描述 给定含有n个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数。多重集S中重数最大的元素称为众数。例如,S={1,2,2,2,3,5}。多重集S的众数是2,重数是3。 数据输入: 输入数据由文件名为input.txt的文本文件提供。文件的第1行为多重集Shttps://blog.csdn.net/qq_55930097/article/details/131501066
2.众数,中位数,平均数怎么求平均数、中位数、众数都是一组数据的代表,分别代表这一组数据的“一般水平”、“中等水平”和“多数水平”.应用时要依据实际问题的具体内容和调查目标,正确选用平均数、中位数和众数来代表一组数据相对应的基本特征 本文仅代表作者观点,不代表百度立场。未经许可,不得转载。来自搜课文化 https://xue.baidu.com/okam/pages/strategy-tp/index?strategyId=128928486909816&source=natural
3.一个RMQ问题的快速算法,以及区间众数之前写这个回答的时候从电脑里翻出了这个解决RMQ问题的算法。由于年代久远出处记不太清了,框架是受到MODULE 1e9+7在blog里写的 O(nlogn)-O(1) RMQ做法启发得到的(现在那个blog页面已经不存在了,还好我本地离线存了一份。大概就是对[1,2]这两篇文章的介绍)。优化到 O(n) 预处理的位运算做法或许https://zhuanlan.zhihu.com/p/79423299
4.数览向新请看常用的统计术语,他们之间都有哪些不同?统计是一门科学,也是人们认识客观事物的一种工具。而统计术语在数据分析中起着至关重要的作用,它们可以帮助我们更好地理解和解释数据。下面就向大家介绍一些常用的统计术语,让大家更客观公正的认知、理解和使用数据。 一、平均数、中位数和众数https://mp.weixin.qq.com/s?__biz=MzIwNTgyNTcwNg==&mid=2247510276&idx=3&sn=f380b8c43a88b0ddbac0f899d4ced211&chksm=969dd0eb791e8f688606fb98d5143e21880066646eec046f078c8a8ce747f71a83f891ff1b64&scene=27
5.基于C++解决众数问题(源码+剖析)码农集市专业分享IT编程学习资源通过以上代码,我们实现了一个简单的解决众数问题的函数 mode,并在 main 函数中进行了测试。该算法的时间复杂度为O(n),其中n是输入数组的大小。通过使用哈希表记录每个数的频次,我们可以高效地找出众数。 点赞(0)踩踩(0)反馈 所需:1积分电信网络下载https://www.coder100.com/index/index/content/id/3779056
6.算法原理:大数据处理的分治思想!腾讯云开发者社区3)快速排序算法问题:将一个n元数组A排序。 4)搜索第k元问题:n元数组A中,寻找大小排第k位的元素。 5)最近点对问题:空间n个点中,寻找距离最近的点对。 而通过应用举例分析理解分治算法的原理其实并不难,但是要想灵活应用并在编程中体现这种思想中却并不容易。所以,这里这里用分治算法应用在排序的时候的一个例https://cloud.tencent.com/developer/article/1691814
7.数据分析集中度怎么算帆软数字化转型知识库数据分析的集中度可以通过多种方法来计算,如平均值、中位数、众数、加权平均值等。其中,平均值是最常用的方法,因为它能够直观地反映数据的整体水平。平均值是所有数据点之和除以数据点的数量。中位数是排序后位于中间的数据点,能够有效抵御极端值的影响。众数则是数据集中出现频率最高的值,对于离散型数据尤其有效。https://www.fanruan.com/blog/article/339567/
8.2016年心理学考研真题及参考答案在别人提出建议之前,小明只知道口香糖是一种食物,并没有意识到口香糖可以粘东西的作用,属于功能固着对问题解决的作用。 12.进行三段论推理时,有时出现错误的结论。例如 “有些哲学家是诗人,有些诗人是画家,所以有些哲学家是画家。”伍德·沃斯对这种错误推理的解释是( )https://yjbys.com/kaoyan/daan/225120.html
9.支持C++,Java,Python,Go,JavaScript等多语言版本,从此算法学习其实我之前在知乎上回答过这个问题,回答内容大概是按照如下类型来刷数组-> 链表-> 哈希表->字符串->栈与队列->树->回溯->贪心->动态规划->图论->高级数据结构,再从简单刷起,做了几个类型题目之后,再慢慢做中等题目、困难题目。 但我能设身处地的感受到:即使有这样一个整体规划,对于一位初学者甚至算法老手https://portrait.gitee.com/programmercarl/leetcode-master
10.八年级数学教案(2)难点:求解最短路径算法的程序实现。 3、教学安排:最短路径问题包含两种情况:一种是求从某个源点到其他各结点的最短路径,另一种是求每一对结点之间的最短路径。根据教学大纲安排,重点讲解第一种情况问题的解决。安排一个课时讲授。教材直接分析算法,考虑实际应用需要,补充旅游景点线路选择的实例,实例中问题解决https://www.oh100.com/kaoshi/jiaoan/644780.html
11.八年级上册数学教案(精选20篇)(2)难点:求解最短路径算法的程序实现。 3、教学安排:最短路径问题包含两种情况:一种是求从某个源点到其他各结点的最短路径,另一种是求每一对结点之间的最短路径。根据教学大纲安排,重点讲解第一种情况问题的解决。安排一个课时讲授。教材直接分析算法,考虑实际应用需要,补充旅游景点线路选择的实例,实例中问题解决https://www.fwsir.com/jiaoan/html/jiaoan_20230108091844_2214776.html
12.2023年八年级下册湘教版数学教案(精选12篇)(2)难点:求解最短路径算法的程序实现。 3、教学安排:最短路径问题包含两种情况:一种是求从某个源点到其他各结点的最短路径,另一种是求每一对结点之间的最短路径。根据教学大纲安排,重点讲解第一种情况问题的解决。安排一个课时讲授。教材直接分析算法,考虑实际应用需要,补充旅游景点线路选择的实例,实例中问题解决https://www.ruiwen.com/jiaoan/5928158.html
13.百度算法岗武功秘籍(中)4 数据结构与算法分析相关知识点 5 编程高频问题:Python&C/C++方面 6 操作系统高频问题:数据库&线程等 7 技术&产品&开放性问题 3 百度面经涉及项目知识点 3.1 深度学习-CNN卷积神经网络方面 3.1.1 目标检测方面 3.1.1.1 讲解原理 ● 说一下Faster R-CNN,要详细画出图,说一下ROI polling与RPN? https://www.flyai.com/article/948
14.2018年硕士研究生入学考试考试大纲3.用相量法分析正弦稳态电路时的电路方程、电路定理,正弦稳态电路的分析,相量图。 4.正弦电流电路的瞬时功率、有功功率、无功功率、表观功率(视在功率),功率因数,功率因数的提高,复功率计算,复功率守恒,正弦稳态电路中的最大功率传输。 5.互感,耦合系数,并联耦合电路的去耦等效电路,含有耦合电感电路的计算。 https://yz.shmtu.edu.cn/2021/0426/c8936a133164/page.htm
15.南邮算法众数问题南邮算法众数问题 基础算法题: 给定含有n个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数,多重集合S中重数最大的元素称为众数。例如。多重集合S的众数是2,其重数为3。要求对于给定的由n个自然数组成的多重集合S,计算S的众数及其重数。https://www.jianshu.com/p/c164b0b874ea
16.求解众数问题(分治法)#include<iostream>#include<algorithm>算法分析 时间复杂度 在分治法求解众数问题的算法中,每次递归将数据集划分为两个子集,并对每个子集进行统计,时间复杂度为O(n),其中n是数据集的大小。因此,总的时间复杂度可以用递推关系式表示为: T(n) = 2T(n/2) + O(n) 根据主定理,可以得到该递推关系式的解为O(nlogn)。 空间复杂度 算法的空间复杂https://blog.51cto.com/u_16175454/7219354
17.求众数的两种方法算法设计与分析课内实验——分治法求众数。文档很齐全,包括算法分析过程和源代码(java语言eclipse环境) 上传者:qlanBy时间:2020-11-23 众数问题 算法分析与设计 ?给定含有n个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数。多重集S中重数最大的元素称为众数。例如,S={1,2,2,2,3,5}。其中https://www.iteye.com/resource/wangwang168-301697
18.众数问题(分治法求解mtzhang).pdf众数问题(分治法求解-mtzhang) ?、问题描述 给定含有n个元素的多重集合s,每个元素在s中出现的次数称为该元素的重数,多重集s中重数最? 的元素称为众数,给定多重集合s,求s中的众数集重数。 ?、算法思想及描述 我在?上看了,感觉都晦涩难懂,?上给的没有描述算法的思想,直接给了?个算法,这不https://max.book118.com/html/2022/0923/8120072122004141.shtm