Python 数据分析师必备的入门学习路线和技能

article/2025/4/10 16:24:04

最近几年,做的这些项目,大多与数据分析与算法应用相关。岗位虽然是算法工程师,但是与数据分析打得交道也很多,双管齐下,最后才能确保算法的落地。在几年前,我还想当然地认为做算法的就应该偏重算法研究与应用,可能数据分析相关的技术真的没那么重要,不过我很快意识到自己的错误,重新将数据分析放在一个重要的位置,去研究学习。

结合过往经历,说下自己对算法设计和数据分析工作的一些浅显体会。

1、数据分析行业的发展情况

对于算法落地而言,个人认为准确性和稳定性是最重要的。在校园时,相信老师都跟我们讲过算法的几个重要性质,比如算法的时间复杂度,空间复杂度,鲁棒性等等,都具备了这些性质的算法当然是一个好算法。

然而,实际情况是,实际场景往往比较复杂,比如,影响因素及之间的关系很复杂;数据匮乏不说,手上的数据还有一半是垃圾等等,这一系列难点,都加大了我们算法设计的难度,哪怕只是设计一个满足基本场景的算法。这使我明白,设计的算法要优先保证能得到一个正确的结果。

其次,作为工程项目,确保系统的稳定性,尽量或者上线后基本没有 bug 显得同样重要。否则,你连觉都睡不好,还提什么其他性能。所以为了稳妥起见,大部分算法设计都不会从零做起,大都会基于成熟稳定的开源框架,然后在上面扩展,开花结果。

已经说的很直白了,还没有工作的小伙伴,可以思考一下。光鲜的事物背后,未必有它真正看起来那样的光彩夺目。

2、数据分析学习路线

作为数据分析的入门课程,首先说一下入门数据科学的完整学习路线;然后,介绍数据分析中花费时间较多的:数据清理 (data munging)。

学习路线、主要任务介绍完后,接下来就要开始动手实践、实现这些任务了。Python 作为数据分析和人工智能的首选语言,介绍关于它的一些核心知识,让帮助入门者快速上手。

每个人学习一门新知识前,大都想去了解下这门知识的学习思路是怎样的,都有哪些知识是必须要学的。所以,我先把我的数据分析思维导图展现给大家,希望能抛砖引玉。
在这里插入图片描述
1)统计学基本知识

首先,入门数据分析需要必备一些统计学的基本知识,在这里我们简单列举几个入门级的重要概念。概率,平均值,中位数,众数,四分位数,期望,标准差,方差。在这些基本概念上,又衍生出的很多重要概念,比如协方差,相关系数等。

当然,你还得了解,事件,离散事件,连续性事件,了解数据的常见分布,比如泊松分布,正态分布等,归一化等知识。限于篇幅,在此,我就不一一展开了。我为大家推荐一本精简的这方面入门书籍,浙大盛骤等老师合编的《概率论与数理统计》这本书,大家可以有选择地学习书中的重要个概念。

2)机器学习基本算法

说统计学是一种基于事实的演绎学问,它是严谨的,可以给出确切解释的。不过,机器学习就不一样了,它是一门归纳思想的学问,比如深度学习得出的模型,你就很难解释其中的具体参数为什么取值为某某某。它的应用在于可以提供一种预测,给我们未来提供一种建设性的指导。

数据分析师需要了解机器学习的基本理论、常见的那十几种算法,这样对于我们做回归、分类、聚类分析,都是不可缺少的。

直到现在,也有很多小伙伴在公众号后台,问我,该如何入门机器学习。我通常的回答都是,先理解一种基本的算法,包括从算法的原理,公式推导,手写编码实现这个算法,可视化算法的结果。当完成整个一遍时,你也就差不多入门了,知道机器学习是怎么一回事了。

3)编程语言及工具

如果说数学是纯理论,可能只需要动脑的学问地话,计算机和它最不同的一点就是,需要动手。记得 linux 大神托瓦兹,作为世界上最著名的程序员、计算机科学家,linux 内核和 git 的主要发明人。他就曾经说过,talk is poor, show me the code.

的确,计算机属于工科学问,动手编码的能力非常重要,现在越来越多的理工科博士,也开始注重编码能力了,而且有的编码能力也是超强,写出来的代码可读性、可扩展性都很好。

数据分析和机器学习领域,同样需要能熟练使用至少一门变成语言,目前此领域,使用较多的就是 Python 和 R 语言。Python 又适合与机器学习领域,所以数据分析相关的从业人员,目前使用 Python 的也较多,当然 R 语言也不少。基于 Python 的生态环境也很不错,有很多数据科学包,比如文中提到的 NumPy、SciPy、Pandas 等等。

入行前,多多动手实践一些项目和名校的开源课程,可以驱动我们掌握它们,毕竟面对一些实际需求,这样做目标明确,自然会驱使你去掌握这些包的更多功能和 API 使用。

接下来就是数据分析的重头戏,数据整理(data munging)。

4)理解你的业务数据

我们在拿到需要分析的数据后,千万不要急于立刻开始做回归、分类、聚类分析。

第一步应该是认真理解业务数据,可以试着理解去每个特征,观察每个特征,理解它们对结果的影响程度。

然后,慢慢研究多个特征组合后,它们对结果的影响。借助上个章节提到的,常用的统计学指标,比如四分位,绘制箱形图,可以帮助我们寻找样本的取值分布。

同时,可以借助另一个强大的可视化工具:seaborn ,绘制每个特征变量间的相关系数热图 heatmap,帮助我们更好的理解数据。

5)明确各个特征的类型

明确我们的数据类型,也是数据整理阶段的必备任务之一。

如果这些数据类型不是算法部分期望的数据类型,你还得想办法编码成想要的。比如常见的数据自增列 id 这类数据,是否有必要放到你的算法模型中,因为这类数字很可能被当作数字读入。

6)找出异常数据

有时候我们的数据存在异常值,并且这种概率挺大的。这实际上会导致结果出现偏差。比如,统计中国家庭人均收入时,如果源数据里面,有王建林,马云等这种富豪,那么,人均收入的均值就会受到极大的影响,这个时候最好,绘制箱形图,看一看百分位数。因此,了解数据范围,设定最大值、最小值限度是很非常重要的。

7)不得不面对缺失值

现实生产环境中,拿到的数据恰好完整无损、没有任何缺失数据的概率,和买彩票中将的概率差不多。

数据缺失的原因太多了,业务系统版本迭代, 之前的某些字段不再使用了,自然它们的取值就变为 null 了;再或者,压根某些数据字段在抽样周期里,就是没有写入数据…

处理缺失数据,最好弄明白它们为什么缺失了,比如,像上面说道的,如果是在抽样周期里,这些字段取值缺失了,那么可以咨询业务人员,这些字段大概率会取得哪些值。

极端情况下,如果发现模型的效果受此字段影响较大,发现彻底删除此字段效果更好,那完全剔除可能是不错的选择。不过这样做也有风险,可能为模型带来更大的偏差。

8)令人头疼的数据不均衡

理论和实际总是有差距的,理论上很多算法都存在一个基本假设,即数据分布总是均匀的。这个美好的假设,在实际中,真的存在吗?很可能不是!

算法基于不均衡的数据学习出来的模型,在实际的预测集上,效果往往差于训练集上的效果。实际数据往往分布得很不均匀,存在所谓的 “长尾现象”,又称:“二八原理”。

就不均衡解决的难易程度而言,数据量越大,不均衡的问题越容易解决,相反,数据量很小,再不均衡,解决起来就比较困难了,比如典型的太空中是否有生命迹象这个事情,压根就没有太多相关的因素数据,如果某个特征的取值远多于另外一种,处理这种数据不均衡问题,就比较困难了。

所有以上 5 个方面的问题,对于一个数据分析师或数据科学家而言,都是需要认真处理对待的。限于篇幅,每个方面的详细解决技术,大家可以自行搜索相关文献和技术博客,一般大都有对应的解决措施。

文章来源:网络 版权归原作者所有

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系小编,我们将立即处理


http://chatgpt.dhexx.cn/article/ysaVpBZt.shtml

相关文章

Python入门经典(2K超清)

我在多次python培训时,对学员讲解编程对人生具有重大影响。曾经大学毕业时也迷茫过,不知道以后要干嘛。面对招聘会上密密麻麻的人群,经不知所措。自从接触python编程后,我对这门快速,高效程序语言表示惊讶,…

python入门学习笔记

python入门学习笔记目录 1.编程概论1.1 注释1.2 打印与标记符1.2.1 打印 print1.2.2标记符 1.3 代码行1.3.1 单行语句1.3.2 多行语句1.3.3 缩进1.3.4 复合语句 1.4 关键字1.5 基本对象数据类型1.5.1type() 函数1.5.2 isinstance() 判断函数1.5.3 type 与 isinstance 1.6 常量与…

Python机器学习:适合入门的8个项目

再多的理论也不能代替动手实践。 教科书和课程会让你误以为精通,因为材料就在你面前。但当你尝试去应用它时,可能会发现它比看起来更难。而「项目」可帮助你快速提高应用的 ML 技能,同时让你有机会探索有趣的主题。 此外,你可以将…

python基础入门级别的宝库。

刚刚开始学python的跟狗头军师一起来学习吧。 更加方便的使用pythonpython的安装编译器的选择 python安装完了,接下来就是常用基础语法知识点了,没学过的可以学一学,学过的捧个人场。python的直接输出python注释功能python数据类型语法if判断…

大数据入门必须知道八大实战项目

大数据如果应用不当可能很容易失控,并可能消耗企业资源和预算。在这里将介绍避免混乱的一些大数据的最佳实践。   大数据可以为用户提供卓越的洞察力,也有可能让企业不堪重负。而企业根据其收集数据做出自己的选择。企业面临的主要问题是大数据是由技术专业人员收集的技术解…

html js比较字符串,js字符串和数字的比较

在进行比较时js会先将两边的类型自动转成一致再对比。 1. 纯数字之间的比较 2 < 5 //true; 直接进行比较。 2. 纯数字与数字型字符串之间比较 js会优先选择将字符串转成数字 2 < 5 // true 3. 数字和其它字符串比较 数字和其它字符串进行比较时&#xff0c;js会将其它字符…

JS中字符串比较大小判断的问题(转数字比较)

因为最近你在写JS页面&#xff0c;有时候需要写到验证&#xff0c;就遇到比较的问题&#xff1a; JS验证代码如下&#xff1a; 页面效果&#xff1a; &#xff08;前面开始的时间段3-9&#xff0c;21-23会出现验证&#xff0c;10-20不会&#xff09; 问题原因&#xff1a;得到…

js坑之数字型字符串比对只比较第一位数字

这是我今天接手项目里面求最大值的一段代码&#xff1a; var dataY this.getDataY(); // 判断点击类型if (this.datatype 0) {var max 0;dataY.forEach(x > {if (x > max) {max x;}});} 其中dataY是一个数组&#xff0c;最大值为max&#xff0c;咋一看好像没啥问题。…

JS比较字符串大小

JavaScript中可以直接使用大于(>)、小于(<)运算符进行字符串大小比较。此方法会根据第一个不同的字符的ascii码进行比较。 例: (function(){console.log(123>5); // 输出&#xff1a;false 第一个字符ascii相比较 1 < 5console.log(5>6); // 输出&#xff…

JavaScript 中的字符串比较

今天收到一个测试的BUG&#xff0c;自己重测了下&#xff0c;没问题&#xff0c;测试当我面测试了下&#xff0c;发现的确是问题的&#xff0c;问题根源是俩个input框value的值做比较&#xff0c;我console.log(val1); console.log(val2);console.log(val1>val2);值分别是 3…

JS字符串数值比较大小问题

对于JS字符串的比较大小问题&#xff1a;如果比较的字符串位数一致&#xff0c;没有问题。但是如果比较的位数不一致&#xff0c;就会以位数的第一位开始比较&#xff01; let a 62; let b 41; console.log(a>b) // true;let aa 6; let bb 41; console.log(aa>bb) /…

js字符串的比较

字符串的比较规则&#xff1a; 逐字符比较&#xff0c;先拿各自的第一个字符比较&#xff0c;第一个字符相等了&#xff0c;再拿各自的第二个字符比较 <script>var a11var b9console.log(a>b)// 字符串是逐字符进行比较的,输出为flase&#xff0c;因为1和9比完大小就…

JS中比较

一、类型介绍 1、原始值 包含&#xff1a;undefined、null、布尔值、数字和字符串 2、对象 包含&#xff1a;数组和函数 3、包装对象 String、Number、Boolean // 一个字符串、数字和布尔值 let s "test", n 1, b true; let S new String(s); // …

【3D游戏建模全流程教学】使用3dmax制作教堂场景

本文分享了使用3dmax制作教堂场景的流程&#xff0c;并解释V-Ray的渲染过程。 01场景制作 在网站中收集许多的参考图像&#xff0c;然后使用平面、立方体和圆柱体等基本形状来制作场景。再制作基础照明以了解场景的构图和总体外观&#xff0c;从视口制作预览动画。 下一步是创…

3D建模场景有哪些物理特性?

由于3D建模场景的材质渲染是基于物理的特性转化而来&#xff0c;3D建模场景的导入引擎也为此引入具有物理单位的照明参数&#xff0c;3D建模场景引擎使用基于物理的渲染和遵循真实光线的传播&#xff0c;以全局照明为目的&#xff0c;而3D建模场景工程师需要使用这些功能&#…

OpenGL,WebGL基于HTML5/WebGL的建模及构建3D场景

一、OpenGL和WebGL WebGL基于OpenGL ES,它缺少常规OpenGL具有的许多功能,例如仅支持顶点和片段着色器。OpenGL具有WebGL所不具备的功能,例如几何体着色器,镶嵌细分着色器和计算着色。在PC端web应用中,前端的webgl是通过js语句调用的是OpenGL部分接口,在移动设备是调用OpenGL ES…

3d游戏场景建模设计师需要学哪些软件?

一 跳出软件层面理解软件,我们要牵着软件的鼻子走。 关于3D建模软件有哪些,这个问题,我在下面会详细的讲解,一堆,会看的你眼疼,这个问题不着急,淡定。首先我需要讲的是跳出软件这个层面来理解软件,放大我们的格局来学习软件,只有理解了更大的层面,才能更好的去知道怎…

用3Ds Max做三维场景建模

今天的3ds max教程是三维场景建模中关于对场景进行布局和建模,了解如何使用3ds Max和Marmoset创建一个世界末日的立体模型,这是建模技能的完美组合展示。 场景布局和建模. 本教程将指导您完成创建diorama的过程,您将能够在Web浏览器中进行交互。本教程将分为三个部分。我将…

3D 游戏角色建模和场景建模哪个好

建模师&#xff0c;依据原画师的设计稿件进行三维立体模型的创造&#xff0c;对应原画设计中的角色设计、场景设计、道具设计&#xff0c;建模工作也有角色建模、场景建模、道具建模之分。很多人就问了&#xff1a;“游戏角色建模和场景建模哪个好&#xff1f;学哪个赚钱多&…

动画设计与制作——3D Max场景建模《我的家》V-Ray 4.1

《动画设计与制作》 下载源文件资源包&#xff08;文章结尾有说明&#xff09;&#xff1a; https://download.csdn.net/download/weixin_48388330/76484706 所使用的工具软件及环境&#xff1a; 3ds Max 2020、V-Ray 4.1 一、实验目的&#xff1a; 熟练使用3ds Max 2020&a…