如何快速成为数据分析师?
部分转载,自己又总结了一下,学习路线,方便自己以后看
目录
Python数据分析,学习路径拆解及资源推荐(附详细思维导图)
转载大佬:https://www.zhihu.com/question/29265587/answer/246178411,感谢作者“量子数据”、
转载大佬:https://www.zhihu.com/org/datacastle-90,感谢“DataCastle”的分享
数据分析师职位要求:
首先搞懂要会什么才能应聘数据分析师职位,企业对技能需求可总结如下:
- SQL数据库的基本操作,会基本的数据管理
- 会用Excel/SQL做基本的数据提取、分析和展示
- 会用脚本语言进行数据分析,Python or R
- 有获取外部数据的能力加分,如爬虫或熟悉公开数据集
- 会基本的数据可视化技能,能撰写数据报告
- 熟悉常用的数据挖掘算法:回归分析、决策树、分类、聚类方法
如何快速成为数据分析师?
需要学习的内容:
1.统计学(要有基础)
2.SQL(数据库语言)
3.Python或R(我选的python)
4.Tableau、Excel(Tableau是数据分析及可视化工具)
5.数据挖掘及算法/机器学习等高深进阶操作(数据分析岗一般不要求,数据挖掘及算法、建模岗需要)
1. 统计学
统计需要掌握的姿势:
- Descriptive Statistics
- Probability Concepts and Probability Distributions
- Sampling Distributions and the Central Limit Theorem
- Confidence Intervals
- Hypothesis Testing
- Analysis of Variance
- Chi Square and Nonparametric Tests
- Simple and Multiple Regression
2. SQL
职位要求:
- 熟悉Oracle、Mysql、SQLServe、db2、hive等数据库,
- 善于使用SQL语句来提取和处理数据,
- 具有Teradata使用经验者优先
需要掌握:
- 提取特定情况下的数据:
- 数据库的增、删、查、改:
- 数据的分组聚合、如何建立多个表之间的联系:
教程推荐:
常用语句总结:https://www.w3school.com.cn/sql/sql_quickref.asp
SQL这个部分相对来说比较简单,可以去这个教程:https://www.runoob.com/mysql/mysql-tutorial.html
3.Python
职位要求:
- 熟悉Python或者R等数据处理语言
需要掌握:
- Python基础及类库(pandas是重点)
推荐书:《利用python进行数据分析》
4. Tableau、Excel
数据可视化工具:
包括EXCEL、Tableau、D3、R语言、Gephi、NodeXL等等
Tableau是数据分析、数据可视化和数据探索的工具(主流工具)
教程推荐:https://www.coursera.org/learn/analytics-tableau#
Excel也可以做为数据分析工具,主要是通过“数据透视表”功能
5.数据挖掘及算法/机器学习(进阶操作,可先跳过,后续在学)
数据挖掘算法:
聚类:K均值(Kmeans)、最近邻算法(KNN)、期望最大值算法(EM)、隐含狄利克雷分布(LDA)
分类:支持向量机(SVM)、逻辑回归(LR)、梯度下降树(GBDT)、随机森林(RF)、朴素贝叶斯(NB)、深层神经网络(DNN)、卷积神经网络(CNN)、LSTM(Long Short-Term Memory)
回归:普通最小二乘回归(OLS)、梯度下降树(GBDT)
降维:主成分分析(PCA)、因子分析(FA)、LDA
时间序列:自回归模型(AR)、滑动平均模型(MA)、自回归移动平均模型(ARMA)
数据挖掘十大算法:
包括用于统计学习的SVM、EM工具,链接挖掘的PAGE RANK,袋装推进的AdaBoost,用于聚类的K-Means,用于分类的C4.5、KNM、CART、Naive Bayes,用于关联的Apriori。
数据挖掘模型:
挖掘建模根据挖掘目标和数据形式可建立:分类与预测、聚类分析、关联规则、时序模式、偏差检测等模型
1.分类与预测算法
算法名称 | 算法描述 |
回归分析 | 回归分析,确定预测属性与其他变量间相互依赖的定量关系。包括:线性回归、非线性回归、Logistic回归、岭回归、主成分回归、偏最小二乘回归等模型 |
决策树 | 决策树采用自顶向下的递归方式,在内部节点进行属性值比较,并根据不同的属性值从该节点向下分支,最终得到的叶节点是学习划分的类 |
人工神经网络 | 人工神经网络是一种模仿大脑神经网络结构和功能而建立的信息处理系统,表示神经网络的输入与输出变量之间关系的模型 |
贝叶斯网络 | 贝叶斯网络又称信度网络,是Bayes方法的扩展,是目前不确定知识表达和推理领域最有效的理论模型之一 |
支持向量机 | 支持向量机是一种通过某种非线性映射,把低维的非线性可分转化为高维的线性可分,在高维空间进行线性分析的算法 |
1.1回归分析
回归模型名称 | 适用条件 | 算法描述 |
线性回归 | 因变量与自变量是线性关系 | 对一个或多个自变量和因变量间的线性关系进行建模,可用最小二乘法求解模型系数 |
非线性回归 | 因变量与自变量间不都是线性关系 | 对一个或多个自变量和因变量间的非线性关系进行建模。若非线性关系可通过简单的函数变换转化成线性关系,用线性回归的思想求解,若不能转化,用非线性最小二乘法求解 |
Logistic回归 | 因变量一般有1和0(是、否)两种取值 | 广义线性回归模型的特例,利用Logistic函数将因变量的取值范围控制在0、1之间,表示取值为1的概率 |
岭回归 | 参与建模的自变量间具有多重共线性 | 是一种改进最小二乘估计的方法 |
主成分回归 | 参与建模的自变量间具有多重共线性 | 主成分回归是根据主成分分析的思想提出的,是对最小二乘法的改进,它是参数估计的一种有偏估计。可消除自变量间的多重共线性 |
1.2决策树
决策树是一种树状结构,它的每一个叶节点对应着一个分类,非叶节点对应着在某个属性上的划分,根据样本在该属性不同取值将其划分为若干个子集。
决策树构造的核心问题:在每一步如何选择适当的属性对样本做拆分。
决策树处理过程:对分类问题,应从已知类标记的训练样本中学习并构造出决策树,自上而下,分开进行解决。
决策树算法 | 算法描述 |
ID3算法 | 核心:在决策树的各级节点上,使用信息增益方法作为属性的选择标准,来帮助确定生成每个节点时所应采用的合适属性。 |
C4.5算法 | C4.5决策树生成算法相对于ID3算法的重要改进:使用信息增益率来选择节点属性。C4.5可客服ID3算法的不足:ID3算法只适用于离散的描述属性,而C4.5算法既能处理离散的描述属性,也可处理连续的描述属性 |
CART算法 | CART决策树是一种非参数分类和回归方法,通过构建树、修剪树、评估树来构造一个二叉树。当终结点是连续变量时,该树为回归树;当终结点是分类变量,该树为分类树 |
1.3人工神经网络
人工神经网络:模拟生物神经网络进行信息处理的一种数学模型。
人工神经网络的学习也称为训练,指的是:神经网络在受到外部环境的刺激下调整神经网络的参数,使神经网络以一种新的方式对外部环境做出反应的一个过程。
分类预测时,人工神经网络主要使用有指导的学习方式,即根据给定的训练样本调整人工神经网络参数使网络输出接近于已知的样本类标记或其他形式的因变量。
分类预测时,常用的算法是:误差校正学习算法
误差校正算法,根据神经网络的输出误差对神经元的连接强度进行修正,属于有指导学习。
设神经网络中神经元i作为输入,神经元j为输出神经元,它们的连接权值为wij,则对权值的修正为△wij=ηδjYi,其中η为学习率,δj=Tj-Yj为j的偏差,即输出神经元j的实际输出和教师信号之差。
神经网络训练是否完成通过误差函数E衡量。当误差函数小于某个设定值时,停止神经网络训练。
误差函数计算:
,N为训练样本个数。
人工神经网络算法
算法名称 | 算法描述 |
BP神经网络 | 一种按误差逆传播算法训练的多层前馈网络,学习算法是:误差校正学习算法 |
LM神经网络 | 基于梯度下降法和牛顿法结合的多层前馈网络,特点 :迭代次数少,收敛速度快,精确度高 |
RBF径向基神经网络 | RBF网络能以任何精度逼近任意连续函数,从输入层到隐含层的变换是非线性的,而从隐含层到输出层的变换是线性的,适用于解决分类问题 |
FNN模糊神经网络 | FNN是具有模糊权系数或输入信号是模糊量的神经网络 |
GMDH神经网络 | GMDH是前馈神经网络中常用的一种用于预测的神经网络。它的特点:网络结构不固定,在训练中不断改变 |
ANFIS自适应神经网络 | 神经网络嵌在一个全部模糊的结构中,不知不觉中向训练数据学习,自动产生、修正并高度概括出最佳的输入与输出变量的隶属函数及模糊规则 |
分类与预测模型特点
模型 | 模型特点 | 位置 |
逻辑回归 | 较基础的线性分类模型 | sklearn.linear_model |
SVM | 可用来回归、预测、分类等,根据选取不同的核函数。模型可以是线性的/非线性的 | sklearn.svm |
决策树 | 基于“分类讨论、逐步细化”思想的分类模型,模型直观 | sklearn.tree |
随机森林 | 思想跟决策树类似,精度通常比决策树要高,缺点是由于其随机性,丧失了决策树的可解释性 | sklearn.ensemble |
朴素贝叶斯 | 基于概率思想的简单有效的分类模型,能给出容易理解的概率解释 | sklearn.naive_bayes |
神经网络 | 具有强大的拟合能力,可用于拟合、分类等,它有很多个增强版本 | Keras |
2.聚类分析
2.1 常用聚类分析算法
聚类分析是在没有给定划分类别的情况下,根据数据相似度进行样本分组的一种方法。
聚类模型建立在无类标记的数据上,是一种非监督的学习算法。
聚类的输入是一组未被标记的样本,聚类根据数据自身的距离或相似度将其划分为若干组,划分原则是:组内距离最小化而组间距离最大化。
常用聚类方法:
类别 | 包括的主要算法 |
划分(分裂)方法 | K-Means算法(K-平均)、K-MEDOIDS算法(K-中心点)、CLARANS算法(基于选择的算法) |
层次分析方法 | BIRCH算法(平衡迭代规约和聚类)、CURE算法(代表点聚类)、CHAMELEON算法(动态模型) |
基于密度的方法 | DBSCAN算法(基于高密度连接区域)、DENCLUE算法(密度分布函数)、OPTICS算法(对象排序识别) |
基于网格的方法 | STING算法(统计信息网络)、CLIOUE算法(聚类高维空间)、WAVE-CLUSTER算法(小波变换) |
基于模型的方法 | 统计学方法、神经网络方法 |
常用聚类算法:
算法名称 | 算法描述 |
K-Means | K-均值聚类(快速聚类发),在最小化误差函数的基础上将数据划分为预定的类数K。该算法原理简单便于处理大量数据。 |
K-中心点 | K-均值算法对孤立点的敏感性,K-中心点算法不采用簇中对象的平均值作为簇中心,选用簇中离平均值最近的对象作为簇中心。 |
系统聚类 | 系统聚类也称多层次聚类,分类的单位由高到低呈树形结构,且处位置越低,其包含的对象就越少,但这些对象间的共同特征越多。该聚类方法只适合小数量的时使用,数据量大时速度会非常慢。 |
主要聚类分析算法
对象名 | 函数功能 | 所属工具箱 |
K-Means | K均值聚类 | sklearn.cluster |
AffinityPropagation | 吸引力传播聚类(运行效率较低) | sklearn.cluster |
MeanShift | 均值漂移聚类算法 | sklearn.cluster |
SpectralClustering | 谱聚类(效果比K均值好,速度比K均值快) | sklearn.cluster |
AgglomerativeClusering | 层次聚类 | sklearn.cluster |
DBSCAN | 具有噪声的基于密度的聚类方法 | sklearn.cluster |
BIRCH | 综合层次聚类算法,适用于大规模数据聚类 | sklearn.cluster |
3.关联规则
关联规则目的:在一个数据集中,找出各项之间的关联关系。
3.1 常用关联规则算法
算法名称 | 算法描述 |
Aprior | 关联规则是最常用的挖掘频繁项集的算法,核心是通过连接产生候选项及其支持度然后通过剪枝生成频繁项集 |
FP-Tree | 针对Aprior算法的固有的多次扫描事务数据集的缺陷,提出不产生候选频繁项集的方法。Aprior和FP-Tree都是寻找频繁项集的算法。 |
Eclat算法 | Eclat算法是一种深度优先算法,采用垂直数据表示形式,在概念格理论基础上利用基于前缀的等价关系将搜索空间划分为较小的子空间 |
灰色关联法 | 分析和确定各因素间影响程度或是若干个子因素(子序列)对主因素(母序列)的贡献度而进行的一种分析方法 |
4.时序模式
4.1 时间序列算法
模型名称 | 描述 |
平滑法 | 平滑法用于趋势分析和预测,利用修匀技术,削弱短期随机波动对序列的的影响,使序列平滑化。 |
趋势拟合法 | 趋势拟合法把时间作为自变量,相变的序列观察值作为因变量,建立回归模型。根据序列特征,可具体分为线性拟合和曲线拟合 |
组合模拟 |
时间序列变化主要受长期趋势(T)、季节变动(S)、周期变动(C)和不规则变动(e)影响。根据序列特点,可构建:【加法模型:xt=Tt+St+Ct+εt】【乘法模型:xt=Tt*St*Ct*εt】 |
AR模型 | |
MA模型 | |
ARMA模型 | |
ARIMA模型 | |
ARCH模型 | |
GARCH模型及衍生模型 |
5.离群点检测
离群点成因:数据来源于不同的类、自然变异、数据测量、收集误差
离群点分类:
分类标准 | 分类名称 |
从数据范围 | 全局离群点和局部离群点 |
从数据类型 | 数值型离群点和分类型离群点 |
从属性个数 | 一维离群点和多维离群点 |
5.1 离群点检测方法
离群点检测方法 | 方法描述 | 方法评估 |
基于统计 | 大部分基于统计的离群点检测方法是:构建一个概率分布模型,并计算对象符合该模型的概率,将具有低概率的对象视为离群点 | 前提是:知道数据服从何种分布,对高维数据,检验效果很差 |
基于邻近度 | 通常可在数据对象间定义邻近性度量,把远离大部分点的对象视为离群点 |
二维、三维的数据可做散点图观察,大数据不适用,对参数选择敏感,具有全局阙值,不能处理具有不同密度区域的数据集 |
基于密度 | 考虑数据集可能存在不同密度区域,离群点是在低密度区域中的对象 | 给出对象是离群点的定量度量,即使数据具有不同的区域很好处理,大数据集不适用,参数选择比较难 |
基于聚类 | 一种利用聚类检测离群点的方法是:丢弃远离其他簇的小簇。首先聚类所有对象,然后评估对象属于簇的程度 | 基于聚类技术来发现离群点可能死高度有效的,聚类算法产生的簇的质量对该算法产生的离群点的质量影响非常大 |
机器学习
吴恩达男神的机器学习王牌课程:
https://www.coursera.org/learn/machine-learning
在掌握了初级的分析方法之后,也可以尝试做一些数据分析的竞赛,比如 DataCastle 为数据分析师专门定制的三个竞赛,提交答案即可获取评分和排名:
https://www.pkbigdata.com/common/cmptIndex.html
数据分析技能详细拆解
转自:https://zhuanlan.zhihu.com/p/86779884
这是数据分析小白必备的数据分析技能图,因为包含了Python数据分析全方位的技能体系,比如数据获取、SQL数据库、Python、统计学、数据分析核心模块、可视化、报告撰写等等都有详细拆解。
高效的学习路径是什么?就是按这样的顺序循序渐进,你会知道每个部分需要完成的目标是什么,需要学习哪些知识点,哪些知识是暂时不必要的。
01 数据获取
一般数据获取有内部和外部两种渠道,内部数据可以通过企业数据库提取,需要掌握SQL相关的技能。
外部数据则可以通过公开数据集和爬取网络数据实现,需要了解相关的数据开放站点,以及掌握必要的Python爬虫技能。
02 SQL数据库
SQL技能是数据分析师职位必备的技能之一,需要你对企业的数据库进行管理,能够正常地存储和提取数据。
当然SQL需要掌握的技能并不难,了解基本的语法,掌握基本的增删改查就可以满足常规的需求了。
03 数据分析必备统计学
如果说数据分析需要什么数学基础,那统计学应该是设计最多的了,但不需要非常深入,因为大多数数据分析用到的无非是统计量、数据分布等基础知识。
04 数据分析必备Python基础
利用Python进行数据分析,那Python的基础就非常重要了,这意味着你后续是否能够正常地用Python代码来实现你的分析想法。
基本的编程规范、数据结构、自定义函数 、控制语句(条件语句、循环语句)、文件读写和模块使用都是需要重点掌握的点。
05 数据分析核心工具
在Python数据分析的体系内,Numpy / Pandas / Matplotlib三个核心库是绕不过去的。也是这三个工具,能够让你实现数据清洗、科学计算、数据分析、数据可视化等核心的工作。
掌握这些,你就完全可以去实现描述型数据分析、探索型数据分析,再加上Sklearn,你可以去实现预测型数据分析,一个完整的数据分析项目,也不过云云。
06 数据报告撰写
数据报告撰写虽然看起来像是文档整理类的工作,但也是非常重要的,因为直接决定了你最终的输出成果。
对于如何撰写一份优秀的数据报告,问题拆解的逻辑、数据指标的选取、用户受众需求的分析、图形化的呈现形式都是非常重要的点。
Python数据分析,学习路径拆解及资源推荐(附详细思维导图)
转自:https://zhuanlan.zhihu.com/p/58445725
数据分析师成长技能清单
关于Python数据分析,其实网上能够找到的学习资源很多,主要分为两类:
一类是提供各种资源的推荐,比如书单、教程、以及学习的先后顺序;另一类是提供具体的学习内容,知识点或实际案例。
但很多繁琐而又杂乱的内容,除了给初学者增加理解和认识的噪音外,真正能够起到明确的方向指引导的,确实不多。以至于很多人一开始没有明确的方向就一头扎进去,学了很久却不知道自己到底在学什么,或者自己学了很久不知道能够做什么。
学习一门技术之前,你应该知道,你想要达成的目标是什么样的。也就是说,你想通过这门技术来解决哪些问题。你就可以知道要达成这样的目标,它的知识体系是怎么样的。更重要一点的是,每个部分是用来解决哪些问题,只有明确的目标导向,学习最有用的那部分知识,才能避免无效信息降低学习效率。
对于数据分析这件事情,有很多的应用场景:
- 比如你需要进行调研,来了解市场的宏观情况,窥探竞争对手,做可行性分析……
- 比如你所在的工作部门产生了大量的数据,你需要考虑用这些数据来优化产品、营销、技术方案……
- 比如你需要对产品、业务、用户进行分析,挖掘出重要结论,给上级提出合理的决策建议……
通过这些常见的数据分析场景,你就可以获得数据分析项目的基本流程。一般大致可以按“数据获取-数据存储与提取-数据预处理-数据建模与分析-数据报告”这样的步骤来实施一个数据分析项目。
按照这个流程,每个部分需要掌握的细分知识点如下:
高效的学习路径是什么?就是按这样的顺序循序渐进,你会知道每个部分需要完成的目标是什么,需要学习哪些知识点,哪些知识是暂时不必要的。然后每学习一个部分,你就能够有一些实际的成果输出,有正向的反馈和成就感,你才会愿意花更多的时间投入进去。以解决问题为目标,效率自然不会低。接下来我们分别从每一个部分展开,讲讲具体应该学什么、怎么学,以及各个部分主要的知识点进行结构化地展示,并有针对性地推荐学习资源。
如何获取数据
我们分析的数据一般有内部数据和外部数据两种。
内部数据是在我们的业务运转中产生,比如常见的用户数据、产品数据、销售数据、内容数据等等。内部的数据相对来说更加完善、规整,我们经常要做的工作汇报、产品优化等分析数据一般来源于此。可以找公司的技术人员索要,或者自己去数据库提取。
当然,很多时候,我们需要利用外部的数据。比如进行市场调研,竞品分析,或者输出报告的时候,外部数据的分析是必不可少的,这也可以帮助我们得出更多的结论。
1. 公开数据源
UCI:加州大学欧文分校开放的经典数据集,真的很经典,被很多机器学习实验室采用。
http://archive.ics.uci.edu/ml/datasets.html
国家数据:数据来源于中国国家统计局,包含了我国经济民生等多个方面的数据。
http://data.stats.gov.cn/index.htm
CEIC:超过128个国家的经济数据,能够精确查找GDP、CPI、进出口以及国际利率等深度数据。
https://www.ceicdata.com/zh-hans
中国统计信息网:国家统计局的官方网站,汇集了海量的全国各级政府各年度的国民经济和社会发展统计信息。
政务数据网站:现在各个省都在很大程度上地开放政务数据,比如北京、上海、广东、贵州等等,都有专门的数据开放网站,搜索比如“北京政务数据开放”。
2. 网络爬虫
基于互联网爬取的数据,你可以对某个行业、某种人群进行分析。比如:
职位数据:拉勾、猎聘、51job、智联
金融数据:IT桔子、雪球网
房产数据:链家、安居客、58同城
零售数据:淘宝、京东、亚马逊
社交数据、微博、知乎、Twitter
影视数据:豆瓣、时光网、猫眼
……
在爬虫之前你需要先了解一些 Python 的基础知识:元素(列表、字典、元组等)、变量、循环、函数(菜鸟教程就很好)……以及如何用成熟的 Python 库(urllib、BeautifulSoup、requests、scrapy)实现网页爬虫。
掌握基础的爬虫之后,你还需要一些高级技巧。比如正则表达式、模拟用户登录、使用代理、设置爬取频率、使用cookie等等,来应对不同网站的反爬虫限制。爬虫可以说是最为灵活、有效的数据获取方式,但学习成本相对来说也要高一些。开始建议先利用公开数据进行分析,后续有更多的数据需求,再上手爬虫。那个时候你已经掌握了Python基础,爬虫上手也会更轻松。
3. 其他数据获取方式
如果你暂时不会爬虫,但又有采集数据的需求,可以尝试各种采集软件,不需要编程知识也可以轻松爬取信息,比如火车头、八爪鱼等。很多数据竞赛网站也会公开不错的数据集,比如国外的Kaggle,国内的DataCastle、天池。这些数据都是真实的业务数据,且规模通常不小,可以经常去搜集和整理。
推荐数据汇总资源:
数据获取方式汇总 https://dwz.cn/Q44MsDkH
△ 常用的数据获取方式
数据存储与提取
数据库这个技能放在这里,是因为这是数据分析师的必备技能。大多数的企业,都会要求你有操作、管理数据库的基本技能,进行数据的提取和基本分析。
SQL作为最经典的关系型数据库语言,为海量数据的存储与管理提供可能。MongoDB则是新崛起的非关系型数据库,掌握一种即可。
初学建议SQL。你需要掌握以下技能:
1.查询/提取特定情况下的数据:企业数据库里的数据一定是巨量而繁复的,你需要提取你想要的那一部分。
比如你可以根据你的需要提取2017年所有的销售数据、提取今年销量最大的50件商品的数据、提取上海、广东地区用户的消费数据……
2.数据库的增、删、改:这些是数据库最基本的操作,但只要用简单的命令就能够实现。
3.数据的分组聚合、建立多个表之间的联系:这个部分是数据库的进阶操作,多个表之间的关联。
在你处理多维度、多个数据集的时候非常有用,这也让你可以去处理更复杂的数据。数据库听起来很可怕,但其实满足数据分析的那部分技能不要太简单。当然,还是建议你找一个数据集来实际操作一下,哪怕是最基础的查询、提取等操作。
推荐数据库教程:
SQL-菜鸟教程 https://dwz.cn/a042MLdz
MongoDB-菜鸟教程 https://dwz.cn/sJFhRzj1
△ mySQL知识框架
△ MongoDB知识框架
数据清洗及预分析
很多时候我们拿到的数据是不干净的,数据的重复、缺失、异常值等等。这时候就需要进行数据的清洗,把这些影响分析的数据处理好,才能获得更加精确地分析结果。比如空气质量的数据,其中有很多天的数据由于设备的原因是没有监测到的,有一些数据是记录重复的,还有一些数据是设备故障时监测无效的。比如用户行为数据,有很多无效的操作对分析没有意义,就需要进行删除。
·选择:数据访问(标签、特定值、布尔索引等)
·缺失值处理:对缺失数据行进行删除或填充
·重复值处理:重复值的判断与删除
·空格和异常值处理:清楚不必要的空格和极端、异常数据
·相关操作:描述性统计、Apply、图形绘制等
从数据处理开始,就需要介入编程知识了,但不必把Python的教程完全啃一遍,只需要掌握数据分析必备的那部分即可。
·基本的数据类型:比如字符串、列表、字典、元组,不同的数据类型如何创建、进行增、删、改等操作,以及其中常用的函数及方法;
·Python函数:学习如何去创建自己的函数,实现更丰富的定制化程序,知道在使用中如何调用;
·控制语句:主要是条件语句和循环语句,利用不同的语句对流程进行控制,这是实现程序的自动化的基础。
Python教程推荐:
Python3-菜鸟教程 https://dwz.cn/2nJnWkrp
Python练手项目合集 https://dwz.cn/cpM0jua5
△ Python基础知识框架
另外,Python中两个非常重要的库Numpy和Pandas也是需要掌握的,我们的很多数据处理及分析方法就源于其中。
如果把Python比作是我们的房子,为我们提供基础的框架,那么Numpy和Pandas就是房子里的家具和电器,为我们入住提供各种功能。当然,即便只是这两个库,官方文档的内容也是非常多的,建议先掌握最常用的一些方法,这样你可以解决大部分的实际问题,若后续遇到问题可以有针对性地去查询文档。
Numpy
·数组创建:从已有的数组创建、从数值范围创建
·数组切片:通过切片进行选择
·数组操作:元素增删、数组维度修改、数组的分割及连接
·Numpy函数:字符串函数、数学函数、统计函数
推荐Numpy文档:
Numpy中文文档 https://www.numpy.org.cn/
△ Numpy知识框架
Pandas
·数据准备:数据读取、创建数据表
·数据查看:查看数据基本信息、查找空值和唯一值
·数据清洗:缺失值处理、重复值处理、字符处理
·数据提取:按标签值进行提取、按位置进行提取
·数据统计:采样、汇总、基本的统计量计算
推荐Pandas文档:
十分钟入门Pandas http://t.cn/EVTGis7
Pandas中文文档 https://www.pypandas.cn/
△ Pandas知识框架
数据分析及建模
如果你有一些了解的话,就知道目前市面上其实有很多 Python 数据分析的书籍,但每一本都很厚,学习阻力非常大。
如果没有整体的认识,往往不知道为什么要学习这些操作,这在数据分析中到底起什么样的作用。为了得出普遍意义上的结论(或者从一般的数据分析项目来看),我们通常要进行三种类型的数据分析:描述性分析、探索性分析以及预测性分析。
描述性分析主要是有目的去描述数据,这就要借助统计学的知识,比如基本的统计量、总体样本、各种分布等等。
通过这些信息,我们可以获得对数据的初步感知,也能够得到很多简单观察得不到的结论。
所以其实描述性的分析主要需要两个部分的知识,其一是统计学的基础,其二是实现描述性的工具,用上述 Numpy 和 Pandas 的知识即可实现。
探索性分析通常需要借助可视化的手段,利用图形化的方式,更进一步地去观看数据的分布规律,发现数据里的知识,得到更深入的结论。
所谓“探索”,事实上有很多结论我们是无法提前预知的,图形则弥补了观察数据和简单统计的不足。
Python中的Seaborn和Matplotlib库都提供了强大的可视化功能。
相对于Matplotlib,Seaborn更加简单易于理解,画基本的图形也就是几行代码的事情,更推荐初学使用。
如后续需要定制化图形,可进一步了解Matplotlib。
预测性的数据分析主要用于预测未来的数据,比如根据历史销售数据预测未来某段时间的销售情况,比如通过用户数据预测未来用户的行为……
预测性分析稍难,越深入会涉及更多数据挖掘、机器学习的知识,所以可以只做做基本了解(或者等有需求的时候再学习)。
比如基本的回归、分类算法,以及如何用Python的scikit-learn库去实现,至于机器学习相关的算法选择、模型调优则不必深入(除非你游刃有余)。
推荐数据分析资料:
书籍《深入浅出统计学》《商务与经济统计学》
Matplotlib中文文档 https://www.matplotlib.org.cn
十分钟掌握Seaborn https://dwz.cn/4ePGzwAg
Scikit-learn中文文档 http://sklearn.apachecn.org
△ 数据分析建模知识框架
撰写数据报告
数据报告是整个数据分析项目的最终呈现,也是所有分析过程的总结,输出结论和策略的部分。所以无论你的心路历程多么精彩,数据报告才是最终决定你分析价值的产物。
要写好一个分析报告,首先要明确数据分析任务的目标,是要探索数据里的知识,还有要对产品进行优化,或者预测未来的数据。
针对这些目标,那么需要对问题进行拆分,要达到目标,必须要输出哪些有价值的信息。对于最终的决策,哪些数据、信息是有用的,是否要进一步探索,哪些是无效的,是否直接丢弃。确定好输出的大致内容、在数据分析过程中得到有用的结论之后,接下来应该思考,如何把这些分散的信息整合起来,为了达到最终的说服力,应该以怎样的逻辑进行整合。
这是一个建立框架的过程,同时也反映这这个问题的拆解思路。在搭建好框架之后,就是把已有的结论填充进去,选择合适的表达形式。选择更合适的数据,哪些需要更加直观的图表,哪些结论需要进行详细的解释,并进行最终的美化设计,这样一份完整的数据分析报告也就完成了。
在写分析报告时,有一些一定要注意的地方:
1.一定要有框架,最简单的就是以问题拆分的逻辑来进行搭建,在每个分支进行内容填充,分点说明;
2.数据的选择不要过于片面,要多元化,进行对比分析,否则结论可能有失偏颇。
数据的价值决定了分析项目的上限,尽可能多收集有用的数据,进行多维度的分析;
3.结论一定要有客观的数据论证,或者严密的逻辑推导,否则没有说服力,特别容易陷入自嗨;
4.图表比文字更加直观,而且可读性更高,应该多利用图形化的表达方式;
5.分析报告不只是要说明问题,更重要的是基于问题提出建议、解决方案、预测趋势;
6.多看行业报告,多练习,Business Sense 在后期比技巧更重要。
推荐数据报告相关网站:
艾瑞网-数据报告 http://report.iresearch.cn/
△ 撰写数据报告的框架
以上就是Python数据分析完整的学习路径,这个框架看其实是有一些庞大的,牛逼的事情看起来不都这样嘛(滑稽脸)。但完全不用担心,其实我们每个人都天生数据敏感,自带分析事物的天赋,只不过在没有分析方法加持之前,我们凭的是经验和直觉。
你不必完全回炉重造,像开发程序一样去学代码、像考试一样去背函数和方法,只需要一些业务的常识,像均值、极值、排序、相关性、中位数……这些东西我们信手捏来的东西往往占据数据分析的绝大多数内容,你所学的只不过是实现这些的工具而已。就像一个100行的数据,给任何一个智力正常的人,不用任何工具和编程技术,他也能获得一份基本的结论,而工具则是让我们在效率、可扩展性和实现维度方面得到更好的提升,仅此而已。
↓↓↓ 完整版思维导图框架
数据分析师成长树: