您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
100万条数据跑机器学习要多久?
复杂度,算法,时间100万条数据跑机器学习要多久?
发布时间:2016-12-08加入收藏来源:互联网点击:
100万条数据跑机器学习要多久?
回答于 2019-09-11 08:43:50
回答于 2019-09-11 08:43:50
人工智能兴起得时代,什么神经网络、增强学习、深度学习等诸多牛掰的算法让人云里雾里,在学习各种各样应用不同的算法之前,不如缓一缓来了解一下如何来判断一个算法是好是坏。算法好坏直接影响到程序执行的效率,曾经读过一本关于中国象棋算法设计的书籍,该书算法设计的基本思路就是构建博弈树进行深度遍历搜素。理想的状态就是搜索到可以获胜为止,但是象棋局面的复杂度搜索起来足以让你等到胡子花白。所以作者采用了α-β搜索剪枝的办法来提高执行效率,这就使得博弈算法变得比以往要好的多。
怎么来评估算法的好坏,主要两个方面的判断:时间复杂度&空间复杂度。
时间复杂度【O】的计算:(本质就是数程序运行次数)
用常数1取代运行时间中的所有加法常数。在修改后的运行次数函数中,只保留最高阶项。如果最高阶项存在且不是1,则改为1。这样得到的结果就是大O阶。
假设计算机运行一次基础代码需要执行一次运算,那么下面的main函数中运行玩需要执行两次运算。
加上for循环可以看出main函数中两次循环后执行的运算次数为1+2*1+1 = 4次
运算次数的函数f(n) = 4,根据上面时间复杂度的计算规则第一条便知,时间复杂度是O(1),而不是O(4)。
时间复杂度的分类大致分为常数阶、线性阶、平方阶、立方阶、对数阶等。比如某个函数的运算次数函数为f(n)=32 + 2n + 1,则时间复杂度为O(n3)。如下表:
常见的时间复杂度如下:
时间消耗比较:
O(1) < O(logn) < O(n) < O(nlogn) < O(n2) < O(n3) < O(2n) < O(n!) < O(nn)
对于算法的设计,数据量越大,对于时间复杂度的需求便越严格,否则时间的损耗都是不同数量级的差距。
空间复杂度【S】的计算:(就是计算算法所需要的存储空间)
公式:S(n) = O(f(n)),其中,n代表问题的规模,f(n)是语句关于n所占存储空间的函数。
空间复杂度不知道该说些什么好,其实在编写代码的时候,我们要有一种空间使用的概念,而不是说只知道自己在敲代码。尤其涉及到硬件开发,比如STM32,FPGA,嵌入式开发之类,它们不像PC机,由于滥用资源就会导致程序溢出空间不足。
根据你程序复杂度以及步骤才能详细计算。
回答于 2019-09-11 08:43:50
什么数据,什么配置的机器
回答于 2019-09-11 08:43:50
这个很难回答,什么机器,什么配置,采用什么算法,参数怎么配置,任何因素都能决定时间长短
回答于 2019-09-11 08:43:50
这个问题毕业考虑机器人的智能程度,比如你让一个小孩和一个中学生去学习高中数学,肯定学习能力也不同,机器人也一样,如果一个机器人有超级计算机那样的大脑,那完全可以用秒计算
上一篇:如何看待网络喷子和跟风心理?
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |