1. Python/C++/R/Java
如果你希望在机器学习领域获得一份工作,那么在某种程度上,你很可能必须学习这里所列出的所有编程语言。C++ 能够加速代码执行速度。R 在统计绘图方面十分出 色,Hadoop 是以 Java 为基础的,因此,你可能需要在 Java 中完成 Map/Reduce 算法。
2. Probability and Statistics(概率和统计)
概率和统计理论能够帮助你学习算法。很多常用的模型例如朴素贝叶斯、高斯混合模型和隐马尔可夫模型等,需要你有很好的概率和统计背景知识去理解。甚至你需要全身心的投入并且研究测度理论,同时需要理解一些统计指标,这些指标常作为模型评价标准,例如混淆矩阵,ROC曲线, P值等。
3. Applied Math and Algorithms(数学和算法)
对算法理论有相当深入的认识并且了解算法运行的机制, 能够帮助你对模型加以区分, 例如支持向量机模型 (译者注:支持向量机模型包括许多不同的核函数,核函数的不同, 具体模型的原理、应用和结论也不同)。 你需要理解一些数学方法, 例如梯度下降, 凸优化, 拉格朗格方法, 二次规划, 偏微分方程等类似的理论和方法。同时,你也需要熟悉求和运算[http://en.wikipedia.org/wiki/Summation]。
4. Distributed Computing(分布式计算)
大多数时候,机器学习需要处理大型的数据集。使用单机无法处理这些数据,因此,你需要通过集群进行分布式计算。像 Apache Hadoop 架构和 Amazon 的 EC2 云服务等项目能够使这一过程更加容易, 从而提高成本效益。
5. Expanding the Expertise in Unix Tools(使用Unix工具来拓宽你的专业知识)
你应该掌握专门为以下工作而设计的Unix命令或工具: cat, grep, nd, awk, sed, sort, cut, tr 等。由于所有这些处理过程都运行于基于linux平台的设备, 因此, 你需要熟悉这些工具。学习并很好的使用这些工具, 会使你的工作更加轻松。
6. Learning more about Advanced Signal Processing techniques(学习一些信号处理技术)
特征提取是机器学习最重根据部分之一。不同问题需要不同的解决方案, 你可以使用非常酷的高级信号处理算法,例如小波变换,剪切波变换,曲线波,轮廓波和 bandlets 变换等。学习时频分析技术,并用它来解决你的问题。如果你还不知道傅里 叶分析和卷积原理,你同样也需要学习这些知识。二进制码信号处理技术是解决问题 的重要方法。
7. Other skills
(a) 提升自己:你必须时刻保持与新技术的同步以应对将要到来的挑战。这也意 味着你必须注意以下几方面的最新动态:关于这些工具理论的变更日志和会议,算 法的研究论文、博客和会议视频等。(b) 大量阅读。阅读一些像 Google Map-Reduce, Google File System, Google Big Table,以及 e Unreasonable Effectiveness of Data 之类的 论文。此外,网上也有许多免费的机器学习书籍,你同样也应该读一读。
appy Machine Learning!
CIO之家 www.ciozj.com 公众号:imciow