学数据分析,Python必学吗?

        在现实生活问题中,我们得到的原始数据往往非常混乱、不全面,机器学习模型往往无法从中有效识别并提取信息。数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已,在采集完数据后,机器学习建模的首要步骤以及主要步骤便是数据预处理。

真实的训练数据总是存在各种各样的问题

  • 各特征(变量)的尺度(量纲)和数量级差异大
  • 存在噪声:包含错误和异常值

存在上述问题的数据有时也称为“脏数据”,这些"脏数据"会影响机器学习模型预测的有效性(有时会得到相反的结论)、可重复性和泛化能力,从而影响模型的质量。

数据预处理包含哪些处理?

  • 特征缩放:数据标准化处理
  • 数据转换:数据类型转换和数据分布转换
  • 将分类变量(非数值)转换为数值变量
  • 组合/汇总来自多个资源的数据

        若原始数据中各维数据特征分布范围差异大,如果直接使用原始数据来建模,会突出数值尺度较大的特征在建模中的作用,而相对削弱或忽略数值尺度较小的特征的作用。因此,为了保证模型的有效性、可靠性,需要对原始数据的特征做特征缩放,使得各维特征对目标函数有相同权重的影响

        通常为了能够消除数据不同特征的尺度差异大的影响,需要把各维特征都缩放同一个标准时,这样才具有可比性,这个过程就是数据标准化处理。

  • 目标:使各维特征的取值均在相同的范围内以去除不同尺度特征的干扰。
  • 作用:加快训练速度以及避免模型被分布范围较大或较小的特征干扰

1.1数据标准化处理包含哪些方法?

  • 将数据各维特征映射到指定的范围之内:[0, 1]或者[-1, 1]

就是将数据各维特征映射到指定的范围之内(通常映射到[0, 1]或者[-1, 1]之间)或者。

1)极大极小归一化公式如下所示

  式中,为原始数据集,有m个样本,n项特征。、表示对原始数据集的各列特征分别取极值。

2)均值归一化公式如下所示

式中, 表示对原始数据集的各列特征分别取均值。

3)非线性归一化指对原数据取对数。

        非线性归一化没有把原数据各维特征缩放到某一范围内而是缩小各维特征的尺度(量纲)。平时在一些数据处理中,经常会把原始数据取对数后在做进一步处理。之所以这样做是基于对数函数在其定义域内是单调增函数,取对数之后不会改变数据的性质和相关关系,还可以压缩特征的尺度(量纲)。

  • 特点:归一化会改变原始数据的数据分布,所以不能保留原始信息
    对不同特征做伸缩变换,其目的是使得各个特征维度对目标函数的影响权重是同等程度的。同时,由于对不同特征做伸缩变换程度不同,使得那些扁平分布的目标函数的投影等高线趋于圆形,这样也就改变了原始数据的分布类型。
  • 1、加快训练速度:如迭代算法中目标函数的收敛速度
    2、平衡各维特征权重,避免数值尺度过大、过小的特征对模型的干扰 归一化处理数据后,虽然平衡了各维特征权重,但也改变了原始数据的数据分布,即破坏了数据结构。

        z-score对数据标准化处理就是将数据缩放到以0为中心,标准差为1的某种数据分布(注意:均值为0,标准差为1的数据分布不一定是正态分布,也有可能是t分布或者其他分布),此外,z-score保留原始数据信息不会改变原数据分布类型。z-score的目的也是使原始数据的不同特征具有可比性。

 式中,为原始数据集的各列特征的均值的向量,=,为原始数据集的各列特征的标准差的向量。z-score的一个应用是测量原始数据与数据总体均值相差多少个标准差,如下所示

  • 都是对原始数据做线性变换,即都是将样本点平移然后缩短距离,使原始数据的不同特征具有可比性。
  • 归一化对目标函数的影响体现在数值上,而z-score对目标函数的影响体现在数据几何分布上
  • 归一化改变了数据的量级并同时也改变了数据的分布,Z-score只改变了数据的量级但未改变数据的分布类型
  • 标准化处理数据,不会改变目标函数的等高线投影,并且会继续保持原有目标函数扁平性,而归一化处理数据会使目标函数的等高线投影呈现圆形。
  • 在梯度下降算法中,归一化处理数据有助于加快算法收敛速度。

 图片来自知乎:

为什么归一化改变了数据分布类型,而z-score没有改变?

        归一化和标准化,都是将样本点平移然后缩短距离,不同的是,由于缩短尺度不同,要从公式方面理解,二者的主要不同是分母的缩短尺度不同,一个是极值差,另一个平均差(标准差)。

        对于归一化方式处理的数据,它的每一项特征缩放程度都不同(因为每一项特征的极值可能都不同从而使每一项特征的缩放程度差异大),而z-score处理的数据,它的每一项特征的缩放程度大体相同,因为除的都是平均值,效果是"温和的"、平稳的。所以归一化会改变数据分布(样本点的相对距离关系会被改变),而z-socre不会使样本点之间的相对距离关系有根本变化。注意,这里样本点的关系用相对距离来表示。

把水平方向缩小至原来的1/10,垂直方向缩小至原来的1/1(即两个维度的特征缩放程度差异大),两个正例变成了(0.1,1)和(0.2,0.5)。容易验证,现在要让margin最大,支持向量就得取(0,0)和(0.2,0.5)了。你看,是不是改变了样本点的相对距离关系,从而也就改变了分布。

何时使用归一化或z-score预处理数据?

  • 数据中各维特征尺度差异大(量纲),目标函数易受尺度大的特征的干扰。比如涉及距离计算的模型:knn、kmeans、dbscan、svm等需要将数据量纲统一标准
  • 使用梯度下降的参数估计模型:使用归一化处理后的数据可以提高算法收敛速度
  • 涉及皮尔逊相关系数的模型:使用标准化处理的数据可以及方便计算相似度,why?
  • PCA降维算法需要去中心化,可以使用z-score处理
  • 对数值范围有具体要求的,需使用归一化处理数据,比如图像处理,其中像素强度必须归一化以适应一定范围(RGB颜色范围为0到255)
  • 概率模型对特征量纲差异性不敏感,可以不做。如决策树
  • 一般:不确定使用哪种数据处理方式时,就用z-score处理,至少z-score处理不会改变数据分布类型,即不会破坏数据结构。

1.2.中心化/零均值化

        中心化处理后的数据,数据均值为0向量,就是将原始数据平移到原点附近。中心化处理数据就一个一个平移的过程,不会改变数据分布类型。中心化预处理表达式如下

  •  方便计算协方差矩阵
  • 去除截距项(偏置项)的影响 
  • "增加基向量的正交性"???摘自网络,不理解

适用于PCA降维算法。见文章

        正则化处理数据将每个样本的某个范数(L1范数、L2范数)缩放为1,即对每个样本计算其p-范数,然后对该样本中的每个元素除以该范数,使得处理后数据的每个样本的p-范数等于1。公式如下所示

 正则化处理数据主要应用于文本分类和聚类中,对需要计算样本间相似度有很大的作用,例如计算样本x1和样本x2的余弦相似度

 正则化处理数据是否会改变数据分布类型?实践出真知,如下所示

 貌似并不会改变数据分布类型,待严谨的数据证明......

1.4.哪些模型对标准化处理比较敏感?

  • 基于距离度量的模型、决策边界学习模型:KNN、kmeans聚类、感知机和SVM
    1、由于距离对特征之间不同取值范围非常敏感,若某个特征取值非常大而导致其掩盖了特征之间的距离对总距离的影响,这样距离模型便不能很好地将不同类别的特征区分开。所以基于距离读量的模型是十分有必要做数据预处理的,此类模型在标准化处理后可有可能提高精度。

    2、有些模型在各个维度进行不均匀伸缩后,最优解与原来不等价,例如SVM。对于这样的模型,除非本来各维数据的分布范围就比较接近,否则必须进行z-score,以免模型参数被分布范围较大或较小的数据占住主导地位。

  • 判别模型:指模型直接学习后验分布来进行分类,如逻辑回归
    有些模型在各个维度进行不均匀伸缩后,最优解与原来等价,例如逻辑回归。对于这样的模型,是否标准化处理数据理论上不会改变最优解。但是,由于实际求解往往使用迭代算法,如果目标函数的形状太"扁",迭代算法可能收敛得很慢甚至不收敛。所以对于具有伸缩不变性的模型, 最好也进行标准化处理处理数据。

  • 通过迭代优化算法求解最优解的模型:如逻辑回归模型
    使用归一化来标准化处理数据可以加快迭代优化算法求最优解的速度, 如运用梯度下降,其损失函数的等高线是椭圆形,需要进行多次迭代才能达到最优点,如果进行归一化了,那么等高线就是圆形的,促使往原点迭代,从而导致需要迭代次数较少。因此如果机器学习模型使用梯度下降法求最优解时,归一化往往非常有必要,否则很难收敛甚至不能收敛。

  • 概率模型:如决策树、基于决策树的Boosting和Bagging等集成学习模型、随机森林
    树模型是通过寻找最优分裂点构成的,样本点的特征缩放不影响分裂点的位置,对树模型的结构也不造成影响,而且树模型不能进行梯度下降,因为树模型是阶跃的,阶跃是不可导的,因此不需要归一化。
    决策树、基于决策树的Boosting和Bagging等集成学习模型对于特征取值大小并不敏感。因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率。

1.5.什么情况下需要对数据标准化处理?

        一般概率模型具备伸缩不变性,因为对特征缩放处理不会对概率模型的结构造成影响,所以概率模型不必采用数据标准化处理,如决策树;但是,若概率模型计算目标函数过程中使用了迭代优化算法,为了能够加快算法收敛速度,可以对数据做归一化的标准化处理。

那些模型伸缩可变?即数据标准化处理前后得到的最优解不一致的模型?

  • 基于距离计算的模型:回归算法(除了逻辑回归)、SVM、kmeans、dbsecan、
  • 需要基于距离计算相似度的模型:最小角回归(基于距离计算相似度)

伸缩可变的模型需要标准化处理。

1.6.训练集做了标准化处理后,然后训练出模型,那么测试集或者新样本是否如何处理?

        现实生活中的数据往往是不全面的,很多样本的属性值会有缺失,例如某个人填写的个人信息不完整或者对个人隐私的保护政策导致建模时可能无法得到所需要的特征,尤其是在数据量较大时,这种缺失值的产生会对模型的性能造成很大的影响

        处理缺失值最简单也是最暴力的方法便是删除含有缺失值的样本或者特征。注:工业上数据非常重要,一般不推荐这样做。

方法:使用用哪一种方法没有硬性的要求,具体问题具体分析

  • 缺失值替换为:平均值、中位数、众数
  • 使用KNN算法填充:缺失样本点周围最近的k个样本的均值或最大值填充(使用前提是,数据不是连片缺失,否则缺失样本点周围的样本也有缺失值,那就用不成了)
  • 加权平均值/期望替换缺失值:比较含缺失值的样本与其他样本之间的的相似度,计算其加权平均值=Σ(特征值i*相似度i)/sum(相似度),过程和基于用户相似度的SVD推荐系统差不多。

3.离群值/异常值处理

        多项式特征是一种数据升维的方式,在线性回归中,当使用简单的x1,x2特征去拟合曲线,欠拟合,但是我们可以创建新的特征如去拟合数据,可能会得到一个较好的模型,所以我们有时候会对特征做一个多项式处理,即把特征变成。

        机器学习模型很多分布都采用高斯分布(正态分布),如线性回归机器学习模型要求数据特征是高斯分布的。如果数据特征不是高斯分布,有时需要找到一个数学变换来把特征按照高斯分布进行变换。

 数据转换为高斯分布方法:

 以下总结摘自博客

  1. 对数变换: 对于高度偏态(如Skewness为其标准误差的3倍以上)的数据分布,我们则可以对其取对数处理。其中又可分为自然对数和以10为基数的对数,其中以10为基数的对数处理纠偏力度最强,但有时会矫枉过正,将正偏态转换成负偏态。
  2. 平方根变换:平方根变换使服从泊松(Poisson)分布的样本或具有轻度偏态的样本正态化,或者是当各样本的方差与均数呈正相关时,使用平方根变换可使其达到方差齐性。
  3. 倒数变换:常用于分布两端波动较大的数据,倒数变换可使极端值的影响减小
  4. 平方根反正旋变换:常用于服从二项分布 或 百分比的数据。一般认为等总体率较小(如<30%时)或较大(如>70%时),偏离正态较为明显,通过样本率的平方根反正玄变换,可使数据接近正态分布,达到方差齐性的要求。
  5. BOX-COX变换:通常用于连续的响应变量不满足正态分布的情况。在一些情况下(特征分布的P值<0.003)上述方法(平方变换等)很难实现正态化处理,所以可以考虑使用Box-Cox转换,但是当P值>0.003时,使用两种方法均可,优先考虑普通的平方变换。(其中 λ \lambdaλ 为待定变换参数)

注意:再次提醒Z - score标准化处理后的数据的特征并不一定遵循高斯分布。

为了使我们的数据趋向高斯分布,我们首先需要使数据对称,这意味着消除偏度,为了消除偏度,我们要对数据进行转换

5.1.1为什么机器学习中很多分布都采用高斯分布?

        根据概率论中的中心极限定理,当样本容量无穷大时,许多分布的极限就是高斯分布(正态分布)现实中的很多随机变量是由大量相互独立的随机因素的综合影响所形成的,而其中每一个因素在总的影响中所起的作用都是微小的,这种随机变量往往近似服从高斯分布(中心极限定理的客观背景)。

熵:用来度量信息混乱程度

        从熵的角度来看,在已知数据的均值和方差的情况下(原数据分布类型未知),高斯分布的熵是所有其他分布中最大的。按照熵标准,“最大熵”约等价于“同约束下最接近均匀分布”,即更符合实际。可以这样理解,“熵最大”是为了使理想更接近实际,让特殊逼近一般,从而使模型更具一般性。注意高斯分布的熵其实是由方差决定的,“高斯变量最大熵”是在方差固定的背景下的结论。不同的方差显然会带来不同的高斯分布,而熵越大的高斯分布方差越大——在实轴上也越接近“均匀”

5.1.2是否一定要对数据转换分布

5.2 数据数值类型转换

        针对非数值型数据,映射为数值。例如,现有一个汽车样本集,通过这个汽车样本集可以判断人们是否会购买该汽车。但是这个样本集的特征值是离散型的,为了确保计算机能正确读取该离散值的特征,需要给这些特征做编码处理,即创建一个映射表。如果特征值分类较少,可以选择自定义一个字典存放特征值与自定义值的关系。

5.2.1自定义数据类型编码

大数据集存在以下问题:

  • 对一个模型来说,太多的预测特征会不必要地使分析的解释复杂化。
  • 保留过多的特征可能会导致过度拟合。

解决这些问题最常用的方法之一是“降维”。此方法的目标是实现以下目标。

  • 确保这些预测项特征是独立的。
}

版权声明:本文为博主原创文章,遵循 版权协议,转载请附上原文出处链接和本声明。

首先,非常感谢你订阅了这场 chat, 我会努力准备,用心书写,将我过去的项目经历、学习心得,一五一十地、毫无保留地记录下来。并且,我会尽力写的通俗易懂,逻辑更有条理一些。不出意外,我还会反复修改多次,直到做到最好。

相信订阅本场 chat 的小伙伴中,有的已经工作了,可能平时还要经常加班。和你们一样,我也工作 5 年了,也是经常加班。不过,我会每天抽时间,写点技术文章,也不知怎么地,只有这样,我才觉得一天过得充实,才觉得没有虚度。

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

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

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

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

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

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

人工智能的强大离不开数据,既然离不开数据,自然就少不了数据处理与分析的相关技术,那么公司就一定需要数据处理与分析的人员。

数据分析为啥如此重要呢? 一句话,喂进去的是垃圾,出来的就是垃圾。机器学习、深度学习的算法设计的再牛叉,如果进去的是垃圾数据,深度学习学出来的模型也不会好到哪里去。

所以,数据科学相关的技术,工作中是离不开的,未来只会越来越重要。

说完我的一些体会后,我简单引出一个文章展开的思路。

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

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

为了工作中加速数据分析的脚步,依次介绍基于 Python 的科学计算库 NumPy, Pandas, 要想快速上手这些库,理解它们的机制是必不可少的,比如 NumPy 的广播机制。数据分析的另一个重要任务就是数据可视化,接下来,介绍基于 Python 生态的可视化库:Matplotlib, 使用 100 行左右的代码,来打包常用的函数用法。

数据分析往往需要做一些回归分析,分类分析等,作为目前火热的机器学习、深度学习,我们通过一个经典的回归算法,深刻明白其原理,知道公式推导,手写实现它。

学习这些理论和工具的同时,你也需要开始实战了。为此,我们选用哈佛大学的数据分析课,它是开源的,并且授课所用数据全部来自实际场景,算是最大贴近你的实际工作日常了,可谓干货十足!

接下来,你可以去寻找数据分析、机器学习相关的工作了。作为全面的学习路线,我还非常用心地为小伙伴们,准备了 2 个数据分析、机器学习相关的真实面试经历。

让我们开始数据分析的学习之旅吧!

在开始介绍学习路线之前,我想告诉大家,本篇 chat 展开提纲中,已经包括了数据分析知识的主要部分,因此,大家应该已经有一个大概轮廓了。

每个人学习一门新知识前,大都想去了解下这门知识的学习思路是怎样的,都有哪些知识是必须要学的。所以,我们也只去论述关于数据分析,那些必须要学习的知识,也就是学好数据分析的必备技能。

1.1 统计学基本知识

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

这一些列常用的统计指标,都在强大的数据分析包 Pandas 中实现了,非常方便,在下面的 Pandas 介绍章节,会详细列出。

我们看下概率的通俗理解。 概率 P 是对随机事件发生的可能性的度量。例如,小明在期末考试前,统计了下自己在今年的数学考试成绩,结果显示得到 80 分以下的次数为 2 次,得 80 分~ 90 分的次数为 10 次,得到 90 分以上次数为 3 次,那么:

小明得到 80 分以下的概率为:

80~90分的概率为:

期望值 E,在一个离散性随机变量实验中,重复很多次实验,每次实验的结果乘以其出现的概率的总和。如上例中,小明在今年的期末考试,我们对他的期望值大约是多少呢?套用上面的公式,80 分以下的值取一个代表性的分数:70 分,80~90:85 分,90 分以上:95 分,

计算出的结果为 85,即期末考试我们对小明的合理期望是 85 分左右。

方差 ,用来度量随机变量取值和其期望值之间的偏离程度,公式为:

$X$ 表示小明的分数这个随机变量

$\mu$ 表示样本平均值

$N$ 表示样本的个数,即在此等于 15 个

已经知道小明的 15 次考试的分数,均值刚才我们也计算出来了为 85 分,带入到上面的公式中,便能得出偏离 85 分的程度大小。

}

作为一种通用技能,数据分析将会进入越来越多的不同工作。毕竟,技多不压身,机会总是眷顾有准备的人。掌握数据分析一方面可以提高相应的业务能力,另一方面可以建立数据驱动的视角来思考各种问题。

在此我将分享自己学习数据分析的历程,希望能对想入门或者开始学习数据分析的学习者有一点点帮助与借鉴作用。

统计学是在数据分析的基础上,研究如何测定、收集、整理、归纳和分析反映数据,以便给出正确消息的科学。如果要学习数据分析,那么扎实的数学基础知识是必备的,尤其是统计学部分。

理工科学生通常会在大学一年级学习概率论和数理统计。从数据分析的角度来看,这就足够了。然而,那些真正从头开始或对知识不熟悉的人,不仅可以参考大学课本,还可以学习《深入浅出统计学》这本书。

在学习数学的基础部分,这本书可以说是每个数据人的必读之作,适合任何没有基础的小白。这年头,凡是本书都想跟”数据“沾点边,却很少有书能真正说明白有数据到底能干嘛。

这本书用了大量的图片和对话,让统计学理论的学习变得更加生动有趣。而且个人认为,入门统计学,最重要的一点就是浅显易懂,尤其是面对着枯燥的数学概念和公式时,这本书在这方面就做的很好,虽然书还挺厚的,但翻起来很快,学起来也很轻松。

其中还有很多知识介绍对后续的学习也具有一定的借鉴意义,在案例中应用散点图,将多个散点图组合在9个宫格中,形成对比图,非常直观和凸面,区分好组和坏组,可以应用于人力效率、网页、组合方式、多店等多种水平绩效评价。

提到Excel,估计绝大部分求职者都不会陌生,毕竟一大票人都会在简历上写着”熟练使用Excel“。自己在学习过程中,往往忽视掉对Excel的学习,觉得Excel在数据分析中的作用价值并不是很大,学了别的语言也一样可以代替,以至于后来不得不返回来专门补课。

我当时补课Excel是听了小破站王佩丰老师的Excel基础课程,从Excel基础功能、函数(sumifs、countifs、if、vlookup)、数据透视表都有详细说明。比如在求多组数据的平均数、标准差、计数等多个指标时,Excel中的数据透视表便是很好的分组工具,对于简单数据处理,比大多数编程工具要更为便捷。只需要将要求的数据拖到对应的行和列,就可以得到结果。

如果是在互联网上做数据分析,那么SQL肯定是必要的,大量的数据存储在数据库中,不知道怎么取数量,没有统计的数据做分析会很困难。

首先需要了解SQL的语法基础,初学的时候如果对抽象概念不太懂,可以对比着Excel学习,比如where相当于Excel的筛选,order相当于Excel的升序降序排列。其次,要紧紧抓住函数和数据库(关系型数据库和非关系型数据库)两点,从这两个方面入手更容易理解和消化。学习数据库的时候可以通过概念、优缺点比较来学。

SQL的入门其实是相对简单的,个人认为,只要找一本到两本靠谱专业的书,完完整整地看下来,基本就可以掌握的。个人是比较推荐来自日本工程师MICK的《SQL基础教程》,绝对的白痴教程,每个步骤都很详细,而且整个的排版风格也很简约。

当然,学习中还是得多多练习,可以在牛客网、leetcode力扣、Hackerrank、SQL50题都可以练习,一天练个两三道就行,要不真的就是学着忘着,都扔给老师了。

作为一种代表着简单主义思想的语言,Python给我的感觉就像是读英语一样,更多的是专注于解决问题,而不是搞明白语言本身。

刚开始学习Python,难免有一种畏难情绪,尤其是在接触完C语言和数据结构以后,我感觉我再也不想见到编程了,直到后来我看到了一个有趣的报导,说是Python工程师比Java工程师的秃头率低很多,当然,这个真实性是无从考究的。

Python被戏称为”胶水语言“,因为它能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。

初学Python我不建议直接买一本书,抱着啃,这样还没开始就容易放弃;也不要选择500+集的课程,15分钟大概就能睡着。最好是跟随系统性的课程学习。我自己是跟着小破站里小甲鱼的零基础入门Python学习的,总体分为三步:变量语法、编程设计、项目演练。每天坚持边敲边学,遇到不会的就搜索。

在拥有扎实的基础数据分析知识后,此时的知识还是碎片化、零散的,需要进入系统课程的学习,才能将知识串联在一起。

自己在选择课程的时候,也是慎重再慎重,想花最少的时间get到数据分析的技能。自己也是看了很多平台上的数据分析入门贴,还问了学过数据分析的学长学姐,发现贪心AI的口碑还算不错,自己就抱着试一试的心态,报名了贪心AI与腾讯课堂联合的数据分析课程

之所以说是系统化,还得从贪心AI课程内容谈起。课程从一开始的数据分析概念的介绍,一直到后来对简历制作及面试技巧的普及,中间还涵盖对Excel、Python及SQL的应用,还有多个实战项目的锻炼。这门课程可以说将前面的基础知识完整地串联成了体系,并在此基础上进行了提升。可以说,通过它,我才真正地学会了将知识运用起来,开始逐步独立地解决实战项目。

根据教学安排,教学时长总共有十周,其实,如果前面的基础打好,要不了十周就学完了,剩下的时间还可以多多拿实战项目来练习。

课程采取的是线上形式,可以随时随地学习,还可以倍速播放,更适合于时间自由度不高的上班族或学生,足不出户便可完成学习任务,但高自由度也对应着高自律性,不过,要没有足够的自律性,我觉得也根本不会进行到这个步骤。授课方式是PPT与讲解共同结合,叶鹏飞老师和周景阳老师共同授课,还建立有专门的编程平台,也不用另外再下载编程软件了。

作为数据分析师的最基本技能,撰写数据分析报告是呈现给他人最好的形式。贪心AI里对数据分析报告的讲解很让我心仪,因为了解过的很多课程里都没有关于这一点的叙述,到了写的时候就不得不套用模板,生搬硬套又往往不能得到他人的认可。

叶鹏飞老师在讲到这里的时候,已经到了课程的后半段,所以对前面讲过的业务逻辑进行了简单的回顾:数据报表(数据源)→用户画像(数据分析)→数据化运营(决策指导)→商业分析(宏观判断)→分析报告(结论梳理),老师在这里特别强调了用户画像的分析方法,因为通常我们获取到的都是用户数据,并结合之前讲过的亚马逊的实战项目,可以了解到自己的商品情况,还能够分析到不同品牌的销售情况,二者互相对比,从而避免了管理时的唯业绩论或者唯品牌论的尴尬之处。

老师从数据报告的分类入手,共分为三类,分别是日常型、调研型、展示型,所有报告均可以通过后台下载,讲解的重点还是放在了概念的理解,尤其是擅于通过举例比喻来对专业名词与具体步骤记忆把握。

调研型数据报告为例,先简要描述了其组成、目标和形式,再以2018中国服饰数字化零售研究报告为实战项目作为说明,这也是老师最熟悉的领域。老师用了一个很有趣的比喻,将服装行业比作炒菜,一个人一个口味,又与电脑、快消品牌进行对比,说明服饰行业的垄断性不强,这样具象化的说明,提高了学习的兴趣,也让我一下子就记住了。

严格来说,数据分析和机器学习是两个方向的东西,前者侧重于统计分析的业务问题,而后者则是与算法工程紧密相关的技术问题。如果之后更侧重于业务岗,应该多多阅读相关书籍,很少有系统性的课再提升能力了。如果之后更侧重于技术岗,像我一样,可以给大家推荐我近期学习的吴恩达machine learning(ML)课程,可以说是国内外最火的机器学习课程。

这门课程,是偏理论的教程,广泛的介绍了机器学习、统计和数据挖掘,主要包括监督学习、无监督学习和一些机器学习的实例,没有过于复杂的公式推导,可以很快速地对整个机器的知识点有完整的认识,而且还是免费获得,性价比可以说是超高。相信我,在学习的过程中,绝对有相见恨晚的感觉。

这门课的定位是零基础的入门课程,可是在学习的过程中其实还需要一定的数学与编程基础,要不然可能每周的作业都难以完成。吴恩达教授在语言和解释概念方面尤其突出严谨。例如,在课程中提出,监督学习不会超越多维曲线拟合过程,而理解这种方法的其他方式,如模拟人类神经系统,实际上并不那么严格。

最后的最后,学好数据分析,切忌这山望着那山高,要带有目的地去学习,不要今天看个几页书,明天又去报个培训班。虽然网上的经验贴很多,但自己也要学会找到适合自己的学习之路,实在分辨不清的,可以多看看招聘公告,给自己的学习目标多多参考。

希望我们都可以在数据分析方面取得进步~

}

我要回帖

更多关于 python数据分析课 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信