学大数据需要什么基础?
2022-11-22 · 百度认证:北京惠企网络技术有限公司官方账号
大数据是指那些数据量特别大、数据类别特别复杂的数据集,这种数据集不能用传统的数据库进行转存、管理和处理是需要新处理模式才能具有更强大的决策力、洞察发现力和流程优化能力的海量、高增差率和多样化的信息资产。大数据属于交叉学科:以统计学、数学、计算机为三大支撑性学科:生物、医 学、环境科学、经济学、社会学、管理学为应用拓展性学科。
其实笼统地说大数据原理和基础都在数学这边,当然有很多偏应用和软件使用的技术,例如“深度学习调参”等,这些报个培训速成班就能学会的技术含量不那么高的东西,不在讨论范围内。
这里要讨论的,是如何系统的学习,然后自己能编出这机器学习或深度学习的程序或软件。我想,这才能称为一个合格的机器学习、数据科学家。
所以您准备好了吗?
大数据入门基础
1, 微积分(求导,极限,极值)和线性代数(矩阵表示、矩阵运算、特征根、特征向量)是基础中的基础,某篇图像分割1w+引用的神文核心思想便就求解构造矩阵的特征向量;
2, 数据处理当然需要编程了,因此C/C++/Python任选一门(推荐Python,因为目前很多库和Library都是用python封装),数据结构可以学学,让你编程更顺手更高效,但是编程不是数据处理的核心。
当然了,楼主所在的图像处理界,熟练使用matlab或者Python调用opencv库是必要条件,但是again他们只是工具,业余时间自学,多练练就没问题。有同学问用R行不行,补充一点,用什么编程语言很大部分取决于你的核心算法会调用什么已有的库函数,比如楼主的科研里面核心算法往往是MIP(混合整数规划)问题需要调用Cplex或Gurobi库函数,因此C/C++/Python/Java这些和Cplex接口良好的语言都可以拿来用,这时候R就别想了。(更新:最新Gurobi版本支持R)
另外虽然图像处理界一些open-source的code都用C++写的,但是鉴于使用方便都会提供Python的接口,因此需要用到这些code的话,用Python调用比较方便;但是,如果是高阶骨灰级玩家,需要修改甚至自己写源代码,那么还是推荐C/C++,因为他们的速度最快。
3,算法
通常高校都会有算法类的课程,会概述各类算法的基础和应用,其中包括:精确算法、近似算法、启发式算法、演化算法、递归算法、贪婪算法等待,还有各类优化算法。
算法非常核心,想必大家都听说过算法工程师这个职位。所以,我就不多赘述啦!
中级教程
1,概率论+统计(很多数据分析建模基于统计模型)、统计推断、随机过程等
2,线性规划+凸优化(或者只学一门叫numerical optimization,统计、机器学习到最后就是求解一个优化问题)、非线性规划等
3,数值计算、数值线代等
当年我是在数学系学的这门课,主要是偏微分方程的数值解。
但我觉得其开篇讲的数值计算的一些numerical issue更为重要,会颠覆一个数学系出身小朋友的三观。(原来理论和现实差距可以这么大!)
Conditional number, ill-conditioned problem,会让你以后的编程多留个心眼。
恭喜你,到这里,你就可以无压力地学习Machine Learning这门课了(其实机器学习,通篇都是在讲用一些统计和优化来做clustering 和 classification这俩个人工智能最常见的应用)。并且你就会发现,ML课中间会穿插着很多其他课的内容。恩,知识总是相通的嘛,特别是这些跨专业的新兴学科,都是在以往学科的基础上由社会需求发展而来。
到这里,其实你已经能看懂并且自己可以编写机器学习里面很多经典案例的算法了,比如regression,clustering,outlier detection。
学到Mid-level,就已经具备绝大部分理论基础了。然后做几个实际项目,就能上手然后就可以“骄傲”的说自己是搞机器学习的人啦,然后就能找到一份工作了。
但是要读Phd搞机器学习的科研,那么高阶课程真的是必不可少的,而且同一个topic你需要学好掌握好几门课,有时候很可能只是一本书中一个章节里面一小节里讲的算法,你都需要去用心改进他。
高阶课程
再高阶的课程,就是比较specific的课程了,可以看你做的项目或者以后的concentration再选择选修,比如:Probabilistic Graphical Models(概率图模型), Integer Programming(整数规划) ,计算机视觉,模式识别,视频追踪,医学图像处理,增强学习,深度学习, 神经网络,自然语言处理,网络信息安全,等等等等。
深度学习:目前非常火,打败了非常多几十年积累起来的经典方法。
增强学习:也很火,游戏AI、自动驾驶、机器人等等,它都是核心。
概率图模型:深度学习之前非常popular的“学习”方法,有严格的数学模型和优美的算法,虽然目前被前俩者盖过了风头,但是依然有它的立足之处。
再比如有用偏微分方程做图像处理的(比较小众),那么这时候你肯定要去学一下偏微分方程了,大都是以科研为主导的。
(1)SQL数据库的基本操作,会基本的数据管理
(2)会用Excel/SQL做基本的数据分析和展示
(3)会用脚本语言进行数据分析,Python or R
(4)有获取外部数据的能力,如爬虫
(5)会基本的数据可视化技能,能撰写数据报告
(6)熟悉常用的数据挖掘算法:回归分析、决策树、随机森林、支持向量机等
对于学习大数据,总体来说,先学基础,再学理论,最后是工具。基本上,每一门语言的学习都是要按照这个顺序来的。
1、学习数据分析基础知识,包括概率论、数理统计。基础这种东西还是要掌握好的啊,基础都还没扎实,知识大厦是很容易倒的哈。
2、你的目标行业的相关理论知识。比如金融类的,要学习证券、银行、财务等各种知识,不然到了公司就一脸懵逼啦。
3、学习数据分析工具,软件结合案列的实际应用,关于数据分析主流软件有(从上手度从易到难):Excel,SPSS,stata,R,Python,SAS等。
4、学会怎样操作这些软件,然后是利用软件从数据的清洗开始一步步进行处理,分析,最后输出结果,检验及解读数据。
当然,学习数学与应用数学、统计学、计算机科学与技术等理工科专业的人确实比文科生有着客观的优势,但能力大于专业,兴趣才会决定你走得有多远。毕竟数据分析不像编程那样,需要你天天敲代码,要学习好多的编程语言,数据分析更注重的是你的实操和业务能力。如今的软件学习都是非常简单便捷的,我们真正需要提升的是自己的逻辑思维能力,以及敏锐的洞察能力,还得有良好的沟通表述能力。这些都是和自身的努力有关,而不是单纯凭借理工科背景就可以啃得下来的。相反这些能力更加倾向于文科生,毕竟好奇心、创造力也是一个人不可或缺的。
2019-12-03 · 专注电脑教育33年做IT教育我们是认真的
2.介意去专业的电脑学院学习,因为专业的电脑学校都是零基础教学。学院从办学开始就是为计算机而生,有专业的领域老师,设备齐全,做到每天都在实训,为将来就业打捞基础。