学机器学习要学数学建模吗 参加数学建模用MATLAB,还是Python?

[更新]
·
·
分类:行业
3535 阅读

学机器学习要学数学建模吗

参加数学建模用MATLAB,还是Python?

参加数学建模用MATLAB,还是Python?

想参加数学建模,官方指定是用MATLAB,但是网上都说学Python比MATLAB好,我该怎么办?还有什么情况下用MATLAB什么情况用Python?

当我第一眼看到这个提问的时候,请原谅我,有一点懵的感觉!
为什么呢?
我们知道MATLAB是一款工程领域的软件,常常用来进行各种领域的建模使用。而Python是一门编程语言,常常使用其来进行脚本开发,编制各种程序。这两种应该是没有太大的比较性的。
当然如果非要扯上一点关系的话,也不是不可以。MATLAB一般在实验室、科研机构、学校使用较多,而Python近年来在人工智能、大数据领域大放异彩。所以我们会在建立数学模型,建立3D、仿真模型时使用MATLAB,常常在数据处理,数据分析,编制脚本程序、实现机器学习、深度学习时选择Python。

机器学习需要哪些数学基础?

对于搞机器学习的同学来说,高等数学、线性代数和概率论与数理统计是最重要的三门的数学基础了。下面我来分别说明这三方面在机器学习中的作用
一. 高等数学高等数学里面的微积分、牛顿迭代、拉格朗日乘数法、泰勒展开等等知识点在机器学习中都有应用到。例如在逻辑回归模型求梯度时候需要求偏导、优化目标使用的牛顿迭代方法、带约束优化问题的SVM需要用到拉格朗日乘数法等等,还有其它高等数学的知识点在机器学习中或多或少都有体现。
二. 线性代数推荐系统使用的SVD分解、张量分解、非负矩阵分解NMF,PCA主成分分析中求特征值、矩阵运算。下面我贴一下之前我用矩阵求导解最小二乘问题的公式推导过程,可以体会一下线性代数的重要程度。
最小二乘的解,可以通过梯度下降迭代或牛顿迭代方法求解,但也可以基于矩阵求导来计算,它的计算方式更加简洁高效,不需要大量迭代,只需解一个正规方程组。
总之,线性代数对于机器学习来说比高数还重要。
三. 概率论与数理统计概率论与数理统计那就更重要了,比如朴素贝叶斯分类和概率图模型用到的贝叶斯公式,高斯过程、最大熵模型,采样方法,NLP领域的大部分算法都与概率论相关,像基于LDA的主题模型、基于CRF的序列标注模型、分词系统等等。
所以要搞机器学习,高等数学、线性代数和概率论与数理统计都是必不可少的数学基础。