《Python数据分析与数据化运营》学习笔记§1

1.1 用python做数据化运营

1. 数据化运营的意义

  • 提高运营决策效率
  • 提高运营决策正确性
  • 优化运营执行过程(标准化、数据化)
  • 提升投资回报

2. 数据化运营的方式

  • 辅助决策式:是运营的决策支持
  • 数据驱动式:将业务流程、逻辑、技巧封装为特定应用

3. 工作流程

《Python数据分析与数据化运营》学习笔记§1_第1张图片

1.2 python相关工具

1.2.1 jupyter的魔术命令

命令
描述
%ls 查看当前目录下的文件或文件夹详细列表信息。
%cd 切换工作路径。
%run 执行特定Python文件。要中断程序,按Ctrl+C快捷键。
%paste和%cpaste 粘贴在剪切板中的内容。前者实现粘贴代码后立即执行,无须确认,更适合一小段功能确认的代码,直接执行;后者实现粘贴代码后,需要用户输入“—”或按Ctrl+D快捷键确认,适合大量的代码,尤其是不同的代码可能来自不同的片段的情况,需要粘贴到一起做二次编辑或确认。
%pwd 查看当前Python工作路径和目录。
%time、%timeit、%%time和%%timeit 这3个命令都是用来做代码执行时间测试的,%time用来测试单个单元格或单行命令一次的执行时间;%timeit与%time类似,但可以基于次数做测试并返回平均时间,例如测试10次或100次,若不指定,默认为测试1000次;如果要测试的代码不只有一行,这时就需要%%time和%%timeit了,它们与前两个的区别主要在于支持多行程序测试。
%hist 显示命令的输入(可选输出)历史,在查找历史命令操作时非常有用。
%quickref 显示IPython的快速参考。
%magic 显示所有魔术命令的详细文档。另外,还有一些是数据分析师不常用,但数据开发工程师会经常用到的命令。
%debug 从最新的异常跟踪的底部进入交互式调试器,在debug时常用。
%pdb 在异常发生后自动进入调试器。
%prun statement
%bookmark 将特定路径保存为书签,以后使用时可直接使用cd命令定位到书签名而无须完整路径。
%alias 为特定命令定义别名,尤其当命令中包含众多参数时很有用。
%xdel和%reset 二者都是删除变量或名称,前者删除单个对象,后者删除当前交互空间全部变量或名称。

提示
%符号不是必需的,这意味着即使不输入%也可以使用,例如pwd=%pwd,但前提是当前环境空间中没有与魔术命令相同的名称,这叫作automagic。

命令
描述
%%bash 执行UNIX和Linux的shell命令。
%%HTML 执行HTML程序。
%%Python2        执行Python 2程序。
%%Python 3 执行Python 3程序。
%%ruby 执行Ruby程序。
%%perl 执行Perl程序。当然,要执行这些程序的前提是已经安装了对应的内核。

1.2.2 第三方库

《Python数据分析与数据化运营》学习笔记§1_第2张图片

1. 科学计算库

库名
描述
Numpy NumPy(Numeric Python的简称)是Python科学计算的基础工具包,也是Python做数据计算的关键库之一,同时又是很多第三方库的依赖库
Scipy Scipy(Scientific Computing Tools for Python的简称)是一组专门用于科学和工程计算不同场景的主题工具包,它提供的主要功能侧重于数学、函数等相关方面,例如积分和微分方程求解等
Pandas Pandas(Python Data Analysis Library的简称)是一个用于Python数据分析的库,它的主要作用是进行数据分析
Statsmodels Statsmodels是Python的统计建模和计量经济学工具包,包括一些描述性统计、统计模型估计和统计测试,集成了多种线性回归模型、广义线性回归模型、离散数据分布模型、时间序列分析模型、非参数估计、生存分析、主成分分析、核密度估计,以及广泛的统计测试和绘图等功能
Imblearn Imblearn是用于样本均衡处理的重要第三方库,它具有多种样本处理的集成模式,包括过抽样、欠抽样等
gplearn gplearn扩展了scikit-learn机器学习库,用符号回归执行遗传编程(GP)。遗传编程主要有两个对象经常使用,一个是gplearn.genetic.SymbolicRegressor,另一个是gplearn.genetic. SymbolicTransformer。

2.机器学习库

库名
描述
scikit-learn                    scikit-learn(有时也称为SKlearn)是一个基于Python的机器学习综合库,内置监督式学习和非监督式学习两类机器学习方法,包括各种回归、K近邻、贝叶斯、决策树、混合高斯模型、聚类、分类、流式学习、人工神经网络、集成方法等主流算法,同时支持预置数据集、数据预处理、模型选择和评估等方法,是一个非常完整的机器学习工具库
XGBoost GBDT、XGBoost、LightGBM都是在竞赛和工业界使用频繁且经过检验效果非常好的机器学习库,都能有效地应用到分类、回归、排序问题,并且是集成类机器学习算法的典型代表。GBDT是以决策树(CART)为基学习器(Base estimateor)的Gradient Boosting算法,XGBoost扩展和改进了GDBT, XGBoost得益于并行化的处理,其算法运行更快,并且更适合大数据的分布式处理(这可能是它最核心的亮点之一)。另外,由于XGBoost的基学习器除了CART外,还可以用线性分类器,因此其适用的场景更广。除此以外,它在分割点的查找、缺失值或数据稀疏问题处理等方面也做了相对优化,因此XGBoost准确率也相对高一些
LightGBM LightGBM是微软推出的梯度boosting框架,也使用基于学习算法的决策树,它与XGB-oost,有相同的特性,例如都基于分布式的学习框架,都支持大规模数据处理和计算,都有更高的准确率。它比XGBoost的主要优化点在于通过多种方式减少内存的使用,例如基于Histogram的决策树算法、带深度限制的Leaf-wise的叶子生长策略、Cache命中率优化等。
TPOT TPOT(Tree-based Pipeline Optimization)是一款Python自动化机器学习工具,它使用遗传编程方式优化机器学习管道(pipelines)。它通过探索不同的pipelines来测试效果,并自动找到最适合数据的pipelines方案。它本身基于sklearn做了二次封装,通过一定算法来自动寻找所用的算法以及参数

3. 自然语言处理库

库名
描述
结巴分词                  由于NLTK本身不支持中文分词,因此在针对中文的处理过程中,可以引入其他分词工具,例如结巴分词。结巴分词是国内的Python文本处理工具包,分词模式分为3种模式:精确模式、全模式和搜索引擎模式,支持繁体分词、自定义词典等,是非常好的Python中文分词解决方案,可以实现分词、词典管理、关键字抽取、词性标注等
Gensim Gensim是一个专业的主题模型(主题模型发掘文字中隐含主题的一种统计建模方法)Python工具包,用来提供可扩展统计语义、分析纯文本语义结构以及检索语义上类似的文档。

4. 数据库连接库

库名
描述
MySQL连接库                              1)MySQL官方程序;
2) 第三方库PyMySQL
MongoDB连接库 MongoDB是由C++语言编写的分布式文件存储的数据库,它是以Key-Value(键值对)形式面向文档存储的非关系型数据库

5. HTML处理库

库名
描述
Beautiful Soup                           Beautiful Soup是网页数据解析和格式化处理工具,从严格意义上来讲它不是一个纯抓取类的工具,因为它不具备抓取能力,通常配合Python的urllib、urllib2等库一起使用

6. 图形展示库

库名
描述
Matplotlib Matplotlib是Python的2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形,开发者仅编写几行代码,便可以生成绘图、直方图、功率谱、条形图、错误图、散点图等
Pyecharts Pyecharts则可以调用Echart来生成各种各样的图形,例如关系图、树形图、地图、瀑布图等

7. 图像处理库

库名
描述
PIL和Pillow                      PIL(Python Imaging Library的简称)是一个常用的图像输入、处理和分析的库,提供了多种数据处理、变换的操作方法和属性。但是由于PIL仅支持到2.7版本且已经很久没有更新,因此一群志愿者基于PIL发布了其新的分支Pillow。
Pillow同时支持Python 2和Python 3,并且加入很多新的功能,因此我们可以直接使用Pillow来代替PIL
OpenCV OpenCV是一个强大的图像和视频工作库。它提供了Python、C、C++、和Java接口,支持Windows、Linux、Mac OS、iOS和Android。OpenCV的设计效率很高,它以优化的C / C ++编写,库可以利用多核处理。除了对图像进行基本处理外,还支持图像数据建模,并预制了多种图像识别引擎

1.3内容延伸

1. OCR工具:Tesseract-ocr

OCR(Optical Character Recognition,光学字符识别)是一个非常“古老”的话题,原因是这项工作在上世纪90年代就已经普遍流行。但在大数据的背景下,我们要做的不是识别普通的光学字符(光学扫描文字),而是把范围扩大到识别更多领域的文字信息,例如手写识别、工业铭牌文字识别等非标准化、非印刷体、非传统资料录入的文字信息识别。
tesseract-ocr是一个Google支持的开源OCR图文识别项目,支持超过200种语言(包括中文),并支持自定义训练字符集,支持跨Windows、Linux、Mac OSX多平台使用。

2. 机器学习框架:TensorFlow

TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,它是使用图模型将复杂的数据结构传输至人工智能神经网中进行分析和处理的框架,被广泛用于语音识别或图像识别等多项机器深度学习领域。
在TensorFlow出现之前,scikit-learn几乎是Python机器学习中最流行的工具(或者至少是最流行的工具之一),借助谷歌的强大号召力以及在人工智能领域的技术实力,TensorFlow正在慢慢凸显其优势,已经成为当前机器学习领域开源工具最流行的框架。

1.4 案例

相关知识点:转义字符
在Python中反斜杠作为转义字符存在,使用\的意思是这是一个反斜杠符号。表1-1列出了Python常用的转义字符列表。

表1-1 常用转义字符列表
转义字符
描述
\(行尾时) 续行符,表示一行没有结束
\\ 反斜杠符号
\’ 单引号
\’’ 双引号
\a 响铃符,发出系统响铃声
\b 退格符(Backspace)
\e 转义符
\000 终止符,
\n 换行符
\v 垂直制表符
\t 水平制表符
\r 回车符
\f 换页符
\o 八进制代表的字符
\x 十六进制代表的字符
\other 其他的字符以普通格
函数
返回
描述
coef_ 数组,形状(n_features, ) 或 (n_targets, n_features)                                            线性回归问题的估计系数(获取模型的自变量系数)。如果在拟合过程中传递了多个目标(y 2D),则这是一个2D形状的数组(n_targets,n_features),而如果仅传递了一个目标,则是长度为n_features的一维数组。
intercept_ 数组 获取模型的截距

sklearn线性回归文档

Tips:
coef_和intercept_这两个属性非常特殊,它们都是以下划线_结尾。这是scikit-learn的一个特点,它总是用下划线作为来自训练数据集的属性的结尾,以便将它们与由用户设置的参数区分开

案例代码

你可能感兴趣的:(Python,数据笔记,python)