当前位置:首页 » 新媒体运营 » 正文

用于分类的神经网络算法,程序员必知的40个算法

1750 人参与  2022年05月14日 10:35  分类 : 新媒体运营  评论

多久能搞定算法面试题?

我隔三差五的就会收到私信询问这类问题,我的回复一般是这样:

算法很有必要学习,建议你制定一个短期计划和长期计划。短期为了应付面试有一套策略,但面试过了,也要长期学习它。

任何事情都有规律性,我们得尊重基本的规律,尊重基本的实事。就像足球得按照规律办事,老想投机取巧,老想急功近利,最后往往是办不好的。

学习算法就像搞足球一样,也得按照规律做事,心急不得!

能做到真正吃透这个常见的算法,一定是一件非常周期长的事情,也许年、年或年,得有这种心理预期,打持久战的准备。

你或许看过我的一个专栏:天精通Python技术栈,但我绝不会去写:天精通个程序员必知算法:

这是很不负责任的!

会让学习者变得很焦躁,让他们形成一些说大不大、说小不小的感觉:

我他妈的当时都看懂答案了,为啥一到面试就写不出来!是我的记性不好吗?

ai,压根和记性没关系,什么时候学算法也变成背模板、记小抄诸如此类的活动呢?

这是学习算法非常大的误区!

掌握算法,绝不是短时间就能做到的。

我们应该放平心态,我做算法年有余,看到某些算法书,实话讲,理解也没有太好,依然还得和大家一起学习。

学算法到底要学啥?

从零学算法该怎么做?比如这是一个行之有效的学习算法的路线:

  1. 学习基础算法,比如学习排序算法、搜索算法、贪心算法

  2. 学习非监督机器学习算法,如聚类,数据降维,关联规则挖掘

  3. 学习传统监督算法,如分类和回归

  4. 神经网络相关算法

  5. 推荐、NLP等相关算法

知道这些,依然没有毛用!

还要建立一个更重要的思维意识,学习上面每一个算法时该思考哪些问题:

  1. 这个算法解决了什么问题,它的输入是什么?输出是什么?

  2. 这个算法的时间性能如何?能不能应对高并发或大数据量输入?

  3. 空间性能又如何?

  4. 最好情况是什么?最坏情况是什么?

  5. 这个算法能并行吗?程序员必知的个算法

如何设计个算法?

接下来,在上面学习了这么多算法后,开始设计算法。先来看看算法设计的目标:

Designing an algorithm is an effort to create a mathematical recipe in the most efficient way that can effectively be used to solve a real-world problem

翻译过来:

设计一个算法就是努力用最高效的方法创造一个数学配方,确保它能有效的求解现实问题。

解决某个问题的算法设计步骤是什么?比如最简单的就拿leetcode上某道题目来说,通常包括:

  1. 首先理解需求。理解待解决的问题,及问题的每一个细节

  2. 设计并确定使用的算法,考虑准确度和时间性能个维度。

就leetcode上的题目而言,一般都能求出精确解,只考虑优化求解方法即可。但现实世界,鱼和熊掌往往不可兼得,要面临两者选择,比如短时间内求出近似解。

  1. 编码,使用一门语言编程步骤形成的算法伪代码。

  2. 测试并部署到线上生产环境

程序员必知的个算法

Algorithms Every Programmer Should Know

这是我见过最好的一本算法书:从第一性原理出发,如贪心策略、动规、分治,一直平滑过渡到监督、非监督、NLP,推荐等算法,一共个程序员必知的算法,全书使用的编程语言是Python,作者是Ahmad博士。

  1. 首先要掌握基础算法,培养算法思维,比如先掌握排序算法、搜索算法、贪心算法

  2. 学习非监督机器学习算法,如聚类,数据降维,关联规则挖掘

  3. 学习传统监督算法,如分类和回归

  4. 神经网络相关算法

  5. 推荐、NLP等相关算法

本文链接:http://www.woshiqian.com/post/115277.html

百度分享获取地址:https://share.baidu.com/code
用于分类的神经网络算法  

我是钱微信/QQ:5087088

广告位、广告合作QQ:5087088

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

       

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。