首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

机器学习算法:选择您问题的答案

当我开始涉足数据科学时,我经常面临为如何我的问题选择最合适的算法的问题。如果你像我一样,当你看到一些关于机器学习算法的文章时,你会看到许多详细的描述。...但是,即使看了这么多的算法文章,你依然不懂得要如何选择合适的算法。 在Statsbot的这篇文章中,我将尝试解释一些基本概念,并教你如何针对不同问题选择相应的算法。...机器翻译是RNN最着名的应用之一。 结论 我希望您现在能够理解最常用的机器学习算法的,并就如何针对您的具体问题凭直觉选择一个方法。...为了让你方便的理解,我将各个算法的性质进行了总结: 线性回归和线性分类器: 尽管表面简单,但是当其他比较好的算法会过度拟合数据时可以选择这类方法。...K-means:一个很原始但很容易理解的算法,可以作为各种问题的基线完美。 PCA:以最小的信息损失降低特征空间维度的绝佳选择。

1.1K70

如何为你的机器学习问题选择合适的算法?

随着机器学习越来越流行,也出现了越来越多能很好地处理任务的算法。但是,你不可能预先知道哪个算法对你的问题是最优的。如果你有足够的时间,你可以尝试所有的算法来找出最优的算法。...本文介绍了如何依靠已有的方法(模型选择和超参数调节)去指导你更好地去选择算法。...步骤 3:实现所有适用的算法 对于任何给定的问题,通常有多种候选算法可以完成这项工作。那么我们如何知道选择哪一个呢?通常,这个问题的答案并不简单,所以我们必须反复试验。 原型开发最好分两步完成。...在这个阶段,我们只处理一小部分的算法,所以我们可以把注意力转到真正神奇的地方:特征工程。 步骤 4:特征工程 或许比选择算法更重要的是正确选择表示数据的特征。...从上面的列表中选择合适的算法是相对简单直接的,然而特征工程却更像是一门艺术。 主要问题在于我们试图分类的数据在特征空间的描述极少。

1.1K90
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    贪心算法-活动选择问题(Python实现)

    # 有n个活动的集合E={1,2,…,n},其中每个活动都要求使用同一资源, # 如演讲会场等,而在同一时间内只有一个活动能使用这一资源。...# 每个活动i都有一个要求使用该资源的起始时间si和一个结束时间fi,且si <fi 。 # 如果选择了活动i,则它在半开时间区间[si, fi]内占用资源。...# 若区间[si, fi]与区间[sj, fj]不相交,则称活动i与活动j是相容的。 # 也就是说,当si≥fj或sj≥fi时,活动i与活动j相容。...# 活动安排问题就是要在所给的活动集合中选出最大的相容活动子集合, # 是可以用贪心算法有效求解的很好例子。 # 该问题要求高效地安排一系列争用某一公共资源的活动。...# 贪心算法提供了一个简单、漂亮的方法使得尽可能多的活动能兼容地使用公共资源。 import ioTool #编程任务:在所给的活动集合中选出最大的相容活动子集合。

    1.1K20

    算法浅谈——怪盗基德的珠宝选择问题与贪心算法

    他的包的体积是10,那么请问,基德应该采取什么策略呢? 学过算法的同学会一眼就看出来,这是一个背包问题。 ? 我们假装没学过,就按照常理来分析。...所以正确的答案是应该先拿C再拿B,这样能够拿到的价值是11,否则只能装下A一个,价值是10。 我们每次做决定的时候都选择当下回报最多的选项,这种算法叫做贪心法。...贪心法有反例这个结论并不难,很容易想明白,难的是我们如何判断当前的问题下,能不能使用贪心算法呢?尤其是我们可能一时半会想不出反例的情况下。...有一个比较取巧的方法叫做均等假设法,这个名字是我取的,没听说过很正常,不用纠结。事实上课本当中谈及贪心算法,也根本不会阐述这个问题,然而这个问题在实际当中又是非常重要的。那么,什么叫均等假设法呢?...显然这两个选择的最终结果很有可能不同,因为如果出现一个会议是[3,4]。那么如果选择了第一个会议,就可以安排上,而选择第二个则不能。所以会影响最终结果,因此这种贪心策略不可行。

    65330

    【学术】为回归问题选择最佳机器学习算法

    AiTechYun 编辑:xiaoshan 任何类型的机器学习(ML)问题,都有许多不同的算法可供选择。...在机器学习中,有一种叫做“无免费午餐(No Free Lunch)”的定理,意思是没有任何一种ML算法对所有问题都是最适合的。不同ML算法的性能在很大程度上取决于数据的大小和结构。...因此,除非我们直接通过简单的试验和错误来测试我们的算法,否则我们往往不清楚是否正确选择了算法。 但是,我们需要了解每个ML算法的优点和缺点。...尽管一种算法并不总是优于另一种算法,但是我们可以通过了解每种算法的一些特征来快速选择正确的算法并调整超参数。...我们将研究一些关于回归问题的比较重要的机器学习算法,并根据它们的优缺点来决定使用它们的准则。 线性和多项式回归 ?

    70960

    【干货】对于回归问题,我们该怎样选择合适的机器学习算法

    【导读】机器学习算法往往各自具有优缺点,没有哪一种算法可以适合所有的问题。因此,理解常用机器学习算法的原理和优缺点能帮助我们针对不同的问题“对症下药”,找到特定问题的最好算法。...Selecting the best Machine Learning algorithm for your regression problem 为你的回归问题选择最佳的机器学习算法 当处理机器学习(...ML)的问题时,可以选择许多不同的算法。...在机器学习中,有一种叫做“没有免费的午餐”的定理,即没有任何一种ML算法在处理所有问题的时候都适合。不同ML算法的性能很大程度上取决于数据的大小和结构。...因此,除非我们就事论事地评估算法的错误率,否则很难找到最好的算法。 每种ML算法都有优点和缺点, 了解它们 可以指导我们去选择最合适我们问题的算法。

    1.2K70

    算法-排序算法-选择排序

    /** * 排序算法-选择排序 * 选择排序(Selection Sort)算法也是比较简单的排序算法,其思路比较直观。选择排序算法在每一步中选取最小值来重新排列,从而达到排序的目的。...* 选择排序算法通过选择和交换来实现排序,其排序流程如下: * (1)首先从原始数组中选择最小的1个数据,将其和位于第1个位置的数据交换。...* (2)接着从剩下的n-1个数据中选择次小的1个数据,将其和第2个位置的数据交换。 * (3)然后不断重复上述过程,直到最后两个数据完成交换。至此,便完成了对原始数组的从小到大的排序。...* * 选择排序算法在对n个数据进行排序时,无论原数据有无顺序,都需要进行n-1步的中间排序。 * 这种排序方法思路很简单直观,但是缺点是执行的步骤稍长,效率不高。....*; public class SelectionSort { public static void main(String[] args) { //生成一个10个的随机数组

    1.5K30

    选择排序算法

    上文:冒泡排序算法 ---- 背景 一组整型无序数组,通过选择排序算法进行排序,从小到大排序或者从大到小。.../** * @author: csh * @Date: 2021-08-29 21:31 * @Description:选择排序 */ public class SelectionSort {..., 13, 99, 111] 第:5次排序[1, 2, 6, 7, 13, 100, 99, 111] 第:6次排序[1, 2, 6, 7, 13, 99, 100, 111] 通过上面数据可以得知,选择排序的实现原理是...: 先获取第i位,然后通过子循环,判断当前位与接下来的数据匹配大小,如果小于则交换坐标到临时min中,直至子循环结束,然后再外循环进行交换数据。...时间复杂度和稳定性 由于遍历一次的复杂度为O(N),而遍历多少次取决于数组长度N-1,所以选择排序的时间复杂度为

    96110

    选择排序算法

    冒泡排序算法是算法与数据结构中最基础的排序算法。学会这个算法是有必要,在2010年左右的时候,很多时候面试都会冒泡排序算法。那时候IT行业没现在这么卷,大部分都考察一下冒泡排序就OK了。...现在去面试不问个leetcode的hard难度的级别题都不过瘾。那现在有必须在学习冒泡排序吗?当然有必要,基础算法必须掌握,体现你的技术热情,对走技术路线是有绝对的帮助的。...冒泡排序就是排队一样,矮的排前面,高的排后面。  刚开始是乱序的,那就从第一个开始调整,把最高排到后面。排完这个之后,这个位置就被占用。 那再从第一个开始,再找出一个最高的放在倒数第二个位置。...发现没有,每个最高的放在最后,然后缩小数组范围,再找出一个高的放在最后。 关键点:  每次都从第一个开始,写代码的时候要注意。 一趟比较后,最后那个位置放最大的数。...与第一趟是 一样的,只是范围变窄了。

    79830

    置换-选择算法

    为什么要引入置换-选择排序 我们都知道,减少初始归并段个数r可以减少归并趟数S。若总的记录个数为n,每个归并段的长度为t,则归并段的个数为r=[n/t]。...采用内部排序方法得到的各个初始归并段长度都相同(除最后一段外),它依赖于内部排序时可用内存空间工作区的大小。因此,必须探索新的方法,用来产生更长的初始归并段,这就是引入置换-选择算法的原因。...算法实现步骤 选择内存缓冲区中的一个数,该数需要符合以下的条件: 该数必须大于当前初始归并段中任意数字 该数是符合条件1的可选数中最小的一个 如果符合上述条件,则将该数加入当前初始归并段,直到内存缓冲区中的所有记录都比当前初始归并段最大的记录小时...l-1 个记录,若初始文件不为空,则从初始文件中输入下一个记录到内存工作区中; 从内存工作区中的所有比 MINIMAX 值大的记录中选出值最小的关键字的记录,作为新的 MINIMAX 记录; 重复过程...3—5,直至在内存工作区中选不出新的 MINIMAX 记录为止,由此就得到了一个初始归并段; 重复 2—6,直至内存工作为空,由此就可以得到全部的初始归并段。

    90530

    机器学习算法选择

    对于你的分类问题,你知道应该如何选择哪一个机器学习算法么?...当然,如果你真的在乎精度(accuracy),最好的方法就是通过交叉验证(cross-validation)对各个算法一个个地进行测试,进行比较,然后调整参数确保每个算法达到最优解,最后选择最好的一个。...但是如果你只是在寻找一个“good enough”的算法来解决你的问题,或者这里有些技巧可以参考,因为其中会有一些基本准则。...决策树中很重要的一点就是选择一个属性进行分枝,因此要注意一下信息增益的计算公式,并深入理解它。 信息熵的计算公式如下: ? 其中的n代表有n个分类类别(比如假设是2类问题,那么n=2)。...优点 能够处理大型特征空间 能够处理非线性特征的相互作用 无需依赖整个数据 缺点 当观测样本很多时,效率并不是很高 有时候很难找到一个合适的核函数 算法选择参考 首当其冲应该选择的就是逻辑回归,如果它的效果不怎么样

    61130

    【排序算法】选择排序

    1.基本介绍 选择排序基本思想:它首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。...3.算法思路 小编认为要用循环嵌套,内循环执行比较,得出最小值,在外循环中,实现交换元素,以及确定内循环执行的次数。...当然还要注意索引的问题,在第一次循环比较时,是第一个元素,第二次循环时,是地二个数字进行比较。...演示结果: 第1次排序后的队列为[2, 5, 8, 7, 3, 4] 第2次排序后的队列为[2, 3, 8, 7, 5, 4] 第3次排序后的队列为[2, 3, 4, 7, 5, 8] 第4次排序后的队列为...,在100000个随机数据中只用了3秒,比小编上期的冒泡排序少了很多(冒泡排序http://t.csdnimg.cn/9mqj4) 7.总结 选择排序的时间复杂度为On(n^2) ,空间复杂度为O(1)

    7510

    排序算法-选择排序

    算法简介 选择排序就是找到数组中最小元素将其和数组第一个元素交换位置,然后在剩下的元素中找到最小元素并将其与数组第二个元素进行交换,以此类推,直至整个数组排序结束。...算法描述 找到数组中最小元素并将其和数组第一个元素交换位置 在剩下的元素中找到最小元素并将其与数组第二个元素交换,直至整个数组排序 ?...代码实现 /** * 选择 * * @param array */ private static void selectionSort(int[]...由于每次都是选取未排序序列R中的最小元素 a 与 R 中的第一个元素交换,很可能破坏了元素间的相对位置,因此选择排序是不稳定的。...排序算法 平均时间复杂度 最好情况 最坏情况 空间复杂度 稳定性 选择排序 \(O(n^2)\) \(O(n^2)\) \(O(n^2)\) \(O(1)\) 不稳定

    1.6K40

    排序算法---选择排序

    排序是我们学习算法过程中重要且基础的一环,例如对下面的排序问题,我们应该怎么做呢?...选择排序思想和实现思路 提到排序问题,很容易想到的思路就是找出来所有数据中最大(或最小)的元素,放在一个新列表的第一位,然后再在剩下的元素中找出最大(或最小)的元素,放在新列表的第二位,以此类推......这就是选择排序(selection sort)的算法思想。 上图就是选择排序算法思想,但一个算法的实现往往不能通过一个简单的思想就搞定(这就是思想与现实的距离,哈哈~)。...选择算法的实现并不会新建一个空白列表(因为这样太奢侈了),而是直接在原列表上进行操作:首先先从列表中找出最大(或者最小)的元素,将其与列表中的第一个元素互换位置,然后再从剩余元素中挑选出最大(或者最小)...具体的实施步骤如下: 算法实现 接下来我们看一下其具体的算法实现: #include #include using namespace std; struct

    68810
    领券