算法是程序员在学习软件编程开发技术的时候需要重点掌握的一项技术,而今天我们就一起来了解一下,程序员算法学习需要注意哪些方面。
参数调整是一方面,参数其实可以让机器去调整。人工调整主要还是特征的处理和模型的选择。不同的模型针对不同的数据效果是不一样的。模型的选择一方面靠前人的工作总结,另一方面靠个人经验,衡量的标准是综合效果和运算效率。模型不是选择效果越好的就越能实际应用,要在现实和理想之间平衡,选择折中的方案。
模型要用到很多数学知识,例如建模的时候,数据要从高维的空间导到低维的空间,会用到矩阵分析的知识。矩阵分析是线性代数的高级版,需要很强的空间思维能力,矩阵分析会把向量做各种各样的变换。像计算广告里面提取上亿的维度的特征,一般都会做特征变换再扔给模型去学习。有一门很难的课,叫泛函分析,全是抽象的东西。空间的概念就已经很抽象了,泛函分析中用一个符号代表空间,这个符号还要跟其它各种表示函数或空间的符号算来算去,还有函数的函数,的确很难理解。
技术面试都会涉及基础的数据结构和算法,一般来说,面试比如会问一些树,链表等数据结构,排序、动态规划等也是常考的算法。
区别还是对数学的要求不一样,有些公司要考察对数学模型的理解,面试官会问你常用的机器学习模型,问模型的原理是什么,有时候会让你把公式写出来。工作中不同的地方在于做事的方式不一样,算法更侧重于数据和效果,系统开发工程师更注重稳定性。不过说到后,不管是做算法,还是做系统开发,工作的意义都是一样的,只是侧重点不一样。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。