带你读《Python数据分析与数据化运营(第2版)》之一:Python和数据化运营

丰富的线上&线下活动,深入探索云世界

做任务,得社区积分和周边

最真实的开发者用云体验

让每位学生受益于普惠算力

让创作激发创新

资深技术专家手把手带教

遇见技术追梦人

技术交流,直击现场

海量开发者使用工具、手册,免费下载

极速、全面、稳定、安全的开源镜像

开发手册、白皮书、案例集等实战精华

为开发者定制的Chrome浏览器插件

宋天龙著

Python是什么?数据化运营又是什么?为什么要将Python用于数据化运营?本节先来回答这几个问题。

Python是一种面向对象的解释型计算机程序设计语言,由荷兰人GuidovanRossum于1989年发明,第一个公开版发行于1991年。Python开发的初衷其实是一个开发程序语言,而非专门用于数据工作和科学计算的数据处理或建模程序(当然,现在已经是了)。为什么我们要选择Python而非其他语言(例如R)进行数据处理、分析和挖掘呢?这是因为Python先天和后天具有的一些特殊条件和能力,使其成为目前企业(尤其是大数据领域)做数据化运营最为合适的工具。

可移植性:Python程序可以跨Windows、Linux、Mac等多平台运行,这点决定了它的移植性非常强,一次开发,多平台应用。

丰富的结构化和非结构化数据工作库和工具:Python除了自带数学计算库外,还包括丰富的第三方库和工具,例如用于连接Oracle、MySQL、SQLite等数据库的连接库,数据科学计算库Numpy、Scipy、Pandas,文本处理库NLTK,机器学习库Scikit-Learn、Theano,图形视频分析处理和挖掘库PIL和Opencv,以及开源计算框架TensorFlow等。

强大的数据获取和集成能力:Python除了可以支持多种类型的文件(图像、文本、日志、语音、视频等)和数据库集成外,还能通过API、网络抓取等方式获取外部数据,内、外部数据源整合、多源数据集成、异构数据并存、多类型数据交错正是当前企业数据运营的基本形态。

海量数据的计算能力和效率:当面对超过GB甚至TB规模的海量数据时,传统数据工具通常无法支撑,更不要提计算效率了。Python对于这个规模数据的计算能力和工作效率要远超过其他数据工作语言。

与其他语言的集成:Python具备“胶水”能力,能与Java、C、C++、MATLAB、R等语言集成使用,这意味着既可以把其他语言写成的脚本嵌入Python,也可以把Python脚本嵌入其他语言。

强大的学习交流和培训资源:Python已经成为世界上最主流的编程语言和数据处理工作的核心工具之一,有非常多的社区、博客、论坛、培训机构、教育机构提供交流和学习的机会。

开发效率高:Python语言简洁、规范,使得在使用Python开发程序时用时更少。这对于以效率优先的程序工作或验证性项目来说非常关键,效率决定商机。

简单易学:Python语法简单,即使是没有任何代码基础的人也能在几个小时内掌握基本的Python编程技巧,这对于初学者而言至关重要,因为这说明编程式数据分析不再遥不可及,他们能像使用Excel一样使用Python。

总而言之,在具备一定Python经验和技巧的情况下,几乎没有Python无法胜任的工作场景!如果有,那么用Python调用其他语言或用其他语言调用Python后,就会胜任。

辅助决策式数据化运营和数据驱动式数据化运营是两个层次的数据应用,数据驱动相对于辅助决策的实现难度更高、数据价值体现更大。

辅助决策式数据化运营为业务决策方服务,整个过程都由运营人员掌控,数据是辅助角色。

数据驱动式数据化运营的过程由数据掌控,数据是主体,实现该过程需要IT、自动化系统、算法等支持,数据驱动具有自主导向性、自我驱动性和效果导向性。

3.数据化运营的工作流程上文我们介绍了数据化运营的两种方式:辅助决策式数据化运营和数据驱动式数据化运营。其中数据驱动式数据化运营具体取决于应用场景,不同的场景,其具体工作流程不同。有关该部分内容在本书后面章节会具体讲到。本节重点介绍数据驱动式数据化运营的工作流程。数据驱动式数据化运营工作包含数据和运营两个主体,在实际工作过程中需要二者协同。在某些大型工作项目上,还有可能涉及与IT部门、信息中心等部门的联动。其工作流程分为3个阶段,如图1-1所示。

Python用于数据化运营,将充分利用Python的强大功能和效率来满足数据化运营的复杂需求。

Python可以将数据工作流程和IT工作流程无缝对接,有利于实现数据工作与运营工作的融合。这也是数据驱动式数据化运营的工作方法,有利于真正实现数字化、智能化的运营工作。

1.Python2还是Python3目前,Python仍然是两个系列的版本并存,一个是Python2,另一个是Python3。这两个版本的语法不完全兼容,因此两个版本的程序调用对方的执行脚本将很可能报错。如果没有特殊需求,大多数场景下选择Python3都是一个正确的选择。但结合特定场景,笔者还是给出以下具体建议:

如果想要成熟、可靠且稳定的程序,选择Python2和Python3都可以。

如果只是学习或了解一下Python,优选Python3。

如果是企业内部应用,有历史程序需要执行和开发,具体看企业用的是哪个版本。

如果你的工作中需要大量的第三方库,而且是比较早期的库,那么使用Python2。但更多情况下,即使那些只支持Python2的库不再更新了,也有很多替代库可以实现,因此如果不是必须使用Python2,还是建议使用Python3。

如果你的程序需要在Linux服务器上运行且使用其原生程序,那么去看看你的Linux服务器自带的Python版本(通常Linux服务器上自带Python2的居多)。同样的,即使Linux原生带的程序版本低,仍然可以安装并使用Python3。

如果上述没有任何一个场景满足你的需求,那么就从Python3开始吧。

默认可以帮你安装好Python主程序,而不用单独下载安装。

常用的数据工作包,包含数据导入、清洗、处理、计算、展示等各个环节的主要包都已经安装好,如Pandas、Numpy、Scipy、Statsmodels、Scikit-Learn(sklearn)、NetworkX、Matplotlib等。常用的非结构化数据处理工具也一应俱全,如beautifulsoup4、lxml、NLTK、pillow、scikit-image等。

很多包的安装有依赖,这点在Linux系统上非常常见,而Anaconda已经将这些依赖的问题统统解决。尤其在离线环境下做Python和大量库的安装部署工作时,Anaconda大大降低了实施难度,是项目开发过程中必不可少的有效工具。

提供了类似于pip的包管理功能的命令conda,可以对包进行展示、更新、安装、卸载等常用操作。当然,如果你更喜欢pip,仍然可以继续使用该命令,因为Anaconda默认也安装了该命令。

多平台、多版本的通用性,而且紧跟Python主程序更新的步伐。Anaconda支持Windows、MacOS和Linux系统,且同时包含32位和64位的Python版本(Python2和Python3全都支持)。

提供了IPyton、Jupyter、Spyder交互环境,可以直接通过界面化的方式引导用户操作,易用程度非常高,甚至连具体细分的学习资源都准备好了。

下载完成后,会在本地计算机中存在一个名为“Anaconda3-5.3.1-Windows-x86_64.exe”的安装包,安装过程只需使用默认配置即可。

3.Jupyter的基本操作在图1-6中,可以看到共分为3个功能区:图中①是主功能区,②是文件和目录功能区,③是文件和目录列表。

主功能区:Files(默认视图)展示了所有该空间下文件和目录的详细信息,可在该区域对文件和目录做管理;Running区展示了当前正在运行的Jupyter程序,可在该功能区关闭特定程序;Clusters展示了由IPython提供的并行功能项信息。

文件和目录功能区:对文件和目录做新增、删除、移动、上传等操作。

文件和目录列表:查看特定目录和文件,直接单击可查看文件详情。

这里我们简单介绍Jupyter的使用方法和常用操作。(1)新建Python文件单击右上角New按钮,选择当前Python版本对应的文件Python3,进入文件编辑窗口,如图1-7所示。这里也可以创建其他文件,单击TextFile即可。如果当前Jupyter还安装了其他内核,则也可以建立其他内核文件,例如R。(2)编辑Python文件在文件编辑窗口中,功能区包括3个部分,如图1-8所示。

图中①区域为菜单功能区,包括文件、编辑、视图、元件、内核、小部件以及帮助菜单。由于里面的功能菜单,读者一看便知道是什么意思。后面主要介绍编辑中的常用操作。

图中③区域为代码区,在该区域内输入代码并使用②区域中的功能之后,可直接显示代码运行结果。

(3)保存与恢复保存直接使用Ctrl+S快捷键即可,此时将生成一个检查点版本。与保存不同的是,恢复有不同的场景应用。

撤销或回退。如果文件中进行了多次修改,但是想返回之前的操作,可直接使用Ctrl+Z快捷键,该操作与是否保存无关。

恢复到上个检查版本。在很多场景下,第1个版本已经完成,第2个版本修改了很多功能,可能无法确认第2个版本具体修改了哪些地方。此时可以用Jupyter中的“ReverttoCheckpoint”来恢复上一个检查点的版本,如图1-9所示。

(5)单元格输入和输出单元格(Cell)类似于Excel中的单元格,用来输入和输出内容。单元格的输入格式包括4类,如图1-11所示。

Code:当前文件内核的代码,本书为Python代码。

Markdown:一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。

RawNBConvert:类似于纯文本的格式,输入内容即输出内容,因此是“原样输出”的格式。

Heading:标题格式,类似于Word中的标题一、标题二等,不过Jupyter已经不建议在这里设置了,而是使用Markdown语言中的#来设置标题。

在输入格式上,写代码时选择Code,而做单独模块的注释时使用Markdown。单元格的内容输出具体取决于Code内容。(6)单元格常用编辑功能单元格的常用编辑功能非常简单,图标如图1-12所示。

①保存和检查点,快捷键Ctrl+S

②在当前单元格下新建单元格

③剪切当前单元格

④粘贴所选择的单元格

⑤在当前单元格下粘贴单元格

⑥和⑦将当前单元格上移或下移

(7)执行Python程序执行Python文件是以单元格为单位的,操作命令如下:

执行当前单元格代码,单击该单元格前的或按快捷键Ctrl+Enter。

执行当前单元格代码并且移动到下一个单元格,单击菜单功能栏中的或使用快捷键Shift+Enter。

执行当前单元格代码,新建并移动到下一个单元格,使用快捷键Alt+Enter。

重启内核并重新执行所有单元格程序,单击。

以上执行命令操作仅仅是利用Jupyter提供的功能执行单元格的程序,但很多情况下,我们可能需要执行外部文件或程序,例如执行test.py文件。此时,我们可以在单元格中输入以下任一命令实现程序执行。

%runtest.py:调用IPython的魔术命令执行该文件。

!Python3test.py:调用系统的Python命令执行该文件。

(8)将外部程序加载到单元格Jupyter允许直接将外部程序加载到单元格,例如已经写好的类或方法,使用%loadfile_name.py即可实现。整个过程如图1-15中的①②③④所示。

test.py的文件中有两行代码,如图中的①。

在Jupyter的单元格中输入%loadtest.py,如图中的②。

执行该单元格,单元格会默认将%loadtest.py注释掉(即加#注释),然后加载test.py中的内容到单元格,如图中的③。

再次执行该单元格,Jupyter会执行单元格中的代码,即从test.py加载的代码,如图中的④。

4.Jupyter的魔术命令Jupyter支持IPython中的魔术命令。所谓魔术命令指的是IPython提供的特殊命令,它将常用的操作以%开头的命令封装起来,使用时非常方便。以下是笔者常用的魔术命令。

%matplotlibinline:一般情况下,Python的可视化都会用到Matplotlib库。要在Jupyter中使用该库并把结果集成到Jupyter中,需要使用%matplotlibinline命令,如图1-16所示。

%ls:查看当前目录下的文件或文件夹详细列表信息。

%cd:切换工作路径。

%run:执行特定Python文件。要中断程序,按Ctrl+C快捷键。

%paste和%cpaste:粘贴在剪切板中的内容。前者实现粘贴代码后立即执行,无须确认,更适合一小段功能确认的代码,直接执行;后者实现粘贴代码后,需要用户输入“—”或按Ctrl+D快捷键确认,适合大量的代码,尤其是不同的代码可能来自不同的片段的情况,需要粘贴到一起做二次编辑或确认。

%pwd:查看当前Python工作路径和目录。

%hist:显示命令的输入(可选输出)历史,在查找历史命令操作时非常有用。

%quickref:显示IPython的快速参考。

%magic:显示所有魔术命令的详细文档。

另外,还有一些是数据分析师不常用,但数据开发工程师会经常用到的命令。

%debug:从最新的异常跟踪的底部进入交互式调试器,在debug时常用。

%pdb:在异常发生后自动进入调试器。

%prunstatement:通过cProfile执行statement,并打印分析器的输出结果。

%bookmark:将特定路径保存为书签,以后使用时可直接使用cd命令定位到书签名而无须完整路径。

%alias:为特定命令定义别名,尤其当命令中包含众多参数时很有用。

%xdel和%reset:二者都是删除变量或名称,前者删除单个对象,后者删除当前交互空间全部变量或名称。

%%bash:执行UNIX和Linux的shell命令。

%%HTML:执行HTML程序。

%%Python2:执行Python2程序。

%%Python3:执行Python3程序。

%%ruby:执行Ruby程序。

%%perl:执行Perl程序。

当然,要执行这些程序的前提是已经安装了对应的内核。具体过程会在下节中介绍。5.Jupyter新内核安装和使用(1)查看可用内核在系统终端命令行中输入jupyterkernelspeclist来查看当前Jupyter可用内核,例如笔者环境的内核只有Python3,如图1-17所示。

(2)安装新内核使用Anaconda安装新内核将非常简单,例如:安装R内核使用condainstall-crr-essentials命令即可。整个过程的耗时较长,用户需耐心等待。安装完成后会有如图1-18所示的命令行的提示信息。此时,重新启动Jupyter,在新建(New)时,出现新的可选内核R。另外,再次通过jupyterkernelspeclist也能看到当前可用内核列表发生变化,如图1-19所示。6.Jupyter执行Shell命令及安装第三方库Jupyter调用终端命令行命令只需要在单元格中的命令前面加!即可。

!pingwww.baidu.com:测试ping服务。

!ipconfig:查看Windows的网络配置信息。

同样,我们也可以直接调用终端的命令安装第三方包。

(2)使用pip命令安装在Jupyter单元格中,直接使用!pippackage_name即可实现安装,其中的package_name可以是本地文件,也可以是远程服务器文件。一般情况下,pip包会自动查找最新匹配的版本安装。例如,以下3种方法可实现相同的安装效果:

!pipinstallscikit-learn

!pipinstallscikit_learn-0.20.1-cp36-cp36m-win_amd4.whl#基于本地文件

(3)使用setup命令从源码安装每个第三方库都有一个源码文件压缩包,格式为.tar.gz或.zip,例如pandas-0.19.2.tar.gz、numpy-1.12.1.zip。将压缩包从pypi(或其他官方资源)中下载到要安装的服务器或本机并解压(这些步骤都非常简单),然后在Jupyter单元格的命令行窗口执行如下命令:

cd[解压后的包含了setup.py的路径]!Python3setup.pyinstall

上述代码会默认执行完成命令,如果环境配置正确,会有成功安装提示。

(4)如何批量安装Python第三方库在某些情况下,例如迁移Python程序或者升级、重装等,往往在现有服务器或主机上已经安装了大量的库,此时如果要在新的环境上安装,则需要重新安装很多第三方库。此时,我们需要一种能够批量安装第三方库的方法。整个实现过程如下:1)批量导出第三方库列表。实现批量安装第三方库,首先要有一份安装列表,这份列表可以从原来要迁移的主机或服务器中获取。具体方法为:打开系统终端,然后输入如下命令:!pipfreeze>requirements.txt该命令的意思是,将现有第三方库以requirements格式导出至requirements.txt文件中。执行完成后,在执行路径下会产生一个新的文件,名为requirements.txt。打开该文件,会发现里面包括了所有的第三方库,如下是部分库:adal==1.0.1alabaster==0.7.10anaconda-client==1.6.5anaconda-navigator==1.6.9anaconda-project==0.8.0…2)批量安装第三方库列表到新的环境。在新的Python环境下,执行如下命令实现安装:!pipinstall-rrequirements.txt该命令的意思是,从requirements.txt中读取要安装的第三方库Python库列表,并按指定的版本安装到现有Python环境中。

在我们导出的requirements.txt的内容中,可以看到每行都是一个包,且每个包都指定了版本,指定的方法是用“==”,这就是pip能看懂的格式。除了这些格式外,还有以下几种常用的格式可以指定批量安装列表,并且这些安装方法可以适用于本节之前提到的场景。不同场景下的requirements.txt内容格式如下:

直接批量安装第三方库,而不指定具体版本。此时直接写第三方库的名称即可,例如本书中的示例。adalalabasteranaconda-clientanaconda-navigatoranaconda-project…在这种场景下,一般都是个人直接指定名称,唯一需要注意的就是手动指定时,安装包的名称要写对。例如skleran在安装时的名称是scikit-learn。

指定特定的版本范围,而不是某个版本。此时的文件内容为:adal==1.0.1#指定版本alabaster>=0.7.10#指定最低版本anaconda-client!=1.6.5#指定不等于的版本anaconda-project>0.8.0#指定特定版本范围…

指向其他的requirements.txt文件。常用于非常大的项目,安装文件往往比较多,此时会有多个列表文件可供指定。此时的文件内容为:-rrequirements2.txt-rrequirements3.txt

7.Jupyter的扩展和插件Jupyter的扩展和插件(Jupyter-contribextensions)的很多功能会增加数据工作的便利性。要实现扩展,需经过两个步骤(以下步骤建议系统终端进行):1)安装Python扩展包,使用pipinstalljupyter_contrib_nbextensions或condainstall-cconda-forgejupyter_contrib_nbextensions即可完成,具体提示信息如图1-21所示。

2)安装JavaScript和CSS文件。此步骤将Nbextensions的JavaScript和CSS文件复制到jupyter服务器的搜索目录中,并编辑一些jupyter配置文件。通过命令jupytercontribnbextensioninstall--user--skip-running-check实现。完成结束后信息如图1-22所示。

上述过程结束后,重启Jupyter程序,会发现原有的主导航菜单栏中多了一个“Nbextensions”,如图1-23所示。

单击“Nbextensions”切换到扩展和插件视图,要启用对应的功能只需勾选即可,笔者的配置项如图1-24所示。在此介绍几个常用扩展和插件。

CollapsibleHeadings:该扩展在大型Jupyter文件中很有用,可折叠的标题能收起/放开Notebook中的特定内容,使整个页面看起来更整洁。

Codefolding:上面的功能是折叠标题,这里的功能是折叠代码,尤其当代码段比较长且功能较多时常用。

TableofContents:自动生成目录,该功能类似于Word中的导航视图,都是在左侧提供一个基于标题的目录导航列表,在文件功能较多时,查找和浏览非常方便。

Ruler:用于显示每行代码目标字符数长度,默认每行字符数为78。特定长度的代码更利于阅读,这是编程中的基本原则。

Comment/UncommentHotkey:通过Alt+C快捷键对代码进行注释,可以注释一行也可以注释多行,也可以二次键入取消注释。

Autopep8:代码的规则和美化是程序员的必修课,在Jupyter中可以选择自动美化功能,勾选该选项即可根据PEP8规范美化代码,在代码中使用Alt+A快捷键即可。当然,该功能需要同步使用pipinstallautopep8安装所需包才能实现。

ScrollDown:当系统输出的内容过长时,自动出现滚动条。

8.其他库本书中根据实际案例,还会安装不同的第三方库/包,具体会在场景中说明,在此不一一列出。

在本书中,大多数案例数据都会直接从数据库中读取,这是因为实际应用中的运营数据基本上也是在数据库中直接获取并进行初步的数据探查工作,因此数据库是开展数据工作的基础工具。为了提高数据库的操作和使用效率,并能使更多读者开始入门数据库应用,我们会使用客户端工具,通过界面化的方式降低数据库的应用难度。数据库我们选择MySQL,客户端使用Navicat。关于MySQL和Navicat软件的下载,网络资源非常丰富,请读者自行寻找并下载安装,笔者的MySQL为64位、5.7.21版本。数据库安装并配置完成之后,通过Navicat客户端进行连接。方法是:单击顶部菜单“文件-新建连接-MySQL”,在弹出的对象框中输入如下信息,如图1-26所示。

连接名:用来识别不同连接的名称。

主机名/IP地址:本地使用127.0.0.1,远程服务器填写实际IP地址。

端口(埠):在配置MySQL时设置的端口,默认为3306(具体取决于配置MySQL时的设置)。

用户名和密码:在配置MySQL时创建的用户名(默认为root)和密码(配置过程中自定义输入的)。

输入完成后,单击“连接测试”,如果信息配置正确并且MySQL服务可用,那么会返回“连接成功”字样。如果返回状态提示无法连接,如“Can'tconnecttoMySQLserveron'localhost'(10061)(2003)”,那么可能是MySQL没有启动。具体启动方法是:单击电脑左下角的“开始-运行”,输入命令services.msc,在打开的“服务管理器”中找到MySQL并双击。在打开的属性窗口中,单击“启动”按钮,服务便可启动,如图1-27所示。

有关使用客户端以及Python直接操作数据库的具体应用,会在后续案例中陆续介绍。

对于数据工作而言,如果只是在本机上做数据分析处理和建模工作,通常只能利用有限的个人电脑性能实现有限规模的数据计算能力。当数据计算量或数据规模很大时,通常会选择在本地进行数据测试,然后到服务器上运行Python程序。此时,我们需要一个能在本机和服务器之间进行数据、信息和指令交互的SSH远程客户端工具。对大多数数据工作者而言,本地电脑操作系统以Windows居多,而服务器操作系统以Linux系统居多,因此SSH远程客户端工具的主要作用就是连接Windows和Linux。此类工具很多,包括XShell、SecureCRT等,笔者使用的是SecureCRT,如图1-28所示。

OCR(OpticalCharacterRecognition,光学字符识别)是一个非常“古老”的话题,原因是这项工作在上世纪90年代就已经普遍流行。但在大数据的背景下,我们要做的不是识别普通的光学字符(光学扫描文字),而是把范围扩大到识别更多领域的文字信息,例如手写识别、工业铭牌文字识别等非标准化、非印刷体、非传统资料录入的文字信息识别。tesseract-ocr是一个Google支持的开源OCR图文识别项目,支持超过200种语言(包括中文),并支持自定义训练字符集,支持跨Windows、Linux、MacOSX多平台使用。不同的平台安装tesseract-ocr和配置差异较大,下面以Windows为例说明其安装过程。1)下载名为“tesseract-ocr-setup-3.02.02.exe”的安装包。2)安装下载tesseract-ocr-setup-3.02.02.exe。安装成功之后,在系统终端命令行窗口输入tesseract,可直接调用ocr命令。

TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,它是使用图模型将复杂的数据结构传输至人工智能神经网中进行分析和处理的框架,被广泛用于语音识别或图像识别等多项机器深度学习领域。在TensorFlow出现之前,我们之前介绍的scikit-learn几乎是Python机器学习中最流行的工具(或者至少是最流行的工具之一),借助谷歌的强大号召力以及在人工智能领域的技术实力,TensorFlow正在慢慢凸显其优势,已经成为当前机器学习领域开源工具最流行的框架。TensorFlow支持跨平台的应用,最新版本已经支持Windows。从1.4.0开始的版本,Tensorflow已经支持X86架构的个人PC,但仅限于Python3版本以上。在Windows上安装Tensorflow,使用!pipinstalltensorflow命令即可实现。安装完成后,在Jupyter中输入importtensorflow时没有错误信息,就说明该包已经成功安装。有关TensorFlow的更多信息,具体查阅www.tensorflow.org。

本节通过一个简单的案例,来介绍如何使用Python进行数据化运营分析。案例场景:每个销售型公司都有一定的促销费用,促销费用可以带来销售量的显著提升。当给出一定的促销费用时,预计会带来多大的商品销售量?在“附件-chapter1”中的data.txt文档中存储了建模所需的原始数据及chapter1.ipynb中案例完整代码。以下是原始数据概况。

用途:用来做第1个销售预测案例。

维度数量:1。

记录数:100。

字段变量:第1列是促销费用money,第2列是商品销售量amount。

数据类型:全部是浮点型。

是否有缺失值:否。

下面逐步解析整个分析和实践过程。第1步导入库本案例中,我们使用以下几个库。

Pandas:读取数据和基本处理。

sklearn:线性回归方法库,包含linear_model和MSE/R2两个检验库。

matplotlib:图形展示库,用来在建模前做多个字段关系分析,以确认建模思路。

代码如下:importpandasaspdfrommatplotlibimportpyplotaspltfromsklearnimportlinear_modelfromsklearn.metricsimportmean_squared_error,r2_score

第2步读取数据本案例中的数据为txt文件,我们使用Python默认的读取文件的方法。代码如下:raw_data=pd.read_csv('data.txt')本示例没有使用传统的open方法,而是用了Pandas自带的读取csv数据库。事实上,对于数据文件的读取,一般都不会用原生的open方法,类似于Pandas、Numpy等带很多可以读取多种格式数据文件的方法。由于程序文件和数据文件处于同一个目录下,因此无须指定路径;也可以通过相对路径和绝对路径来设置完整路径。指定相对路径:'../data/data.txt',含义是“data.txt”位于当前Python工作目录的父级目录中的data文件夹中。指定绝对路径:'d:/python_data/data/data.txt',该方式中的绝对路径需要注意使用正斜杠/,而不是Windows默认的反斜杠\;如果一定要使用反斜杠,那么需要写成'd:\python_data\data\data.txt',用转义字符表示。

本案例看似篇幅很长,其实代码本身只用了20多行,实现了导入库、获取数据、数据预处理、数据展示分析、数据建模、模型评估和销售预测的完整步骤,麻雀虽小五脏俱全。案例场景虽然简单,但完整地演示了如何从输入数据到输出结果的整个过程。其中,我们用到了以下基础知识:

使用Pandas读取数据文件。

使用Pandas做切片等数据预处理工作。

使用Matplotlib进行散点图展示。

使用sklearn进行线性回归的训练和预测。

使用交叉检验配合mean_squared_error和r2_score做模型效果评估。

使用print打印输出结果。

这是本书的第1个完整案例,目的是引导读者快速进入使用Python进行数据化运营的场景中来。笔者并不希望让读者陷入复杂的逻辑和太多知识当中,以下内容仅做拓展思考之用:

通过散点图初步判断线性回归是比较好的拟合模型,是否有其他回归方法会得到更好的效果?例如广义线性回归、SVR(SVM中的回归)、CART(分类回归树)等。

通过图形法观察数据模型,只适合用于二维数据,如果数据输入的维度超过2个呢?

本案例中的数据量比较小,如果数据量比较大,假如有1000万条,如何进行数据归约?

回归模型除了案例中的评估指标外,还有哪些指标可以做效果评估?

THE END
1.新媒体运营案例分析新媒体运营案例分析关注的是通过新媒体平台进行的品牌推广、内容营销、用户互动等策略的有效性。以下是对几个新媒体运营案例的分析: 案例一:知名博主内容运营分析 选择一两个热门博主,如美食、旅游、科技等领域的影响者,分析他们的内容运营策略。观察博主如何通过精心策划的内容吸引并维持用户关注,包括文章风格、话题选择...https://www.360doc.cn/article/81723323_1118769019.html
2.如何做好新媒体内容运营?案例详解分析案例详解分析 大家好,我是新媒体管理师培训考试中心申申老师(公众号:新媒考务)。在运营的世界的我们知道有用户运营、活动运营以及内容运营,随着互联网的不断发展,运营工作从传统的网站运营不断的细分和扩展,衍生出新媒体运营、社群运营等等运营新模式,无论时代如何改变,内容运营永远是起着绝对性作用的。我想先给大家...https://www.jianshu.com/p/1062d3d69705
3.内容运营数据分析(窦伟老师《5G时代下的新媒体创新营销》)● 行业应用:分析行业特点,找准企业的新媒体定位,建立起企业产品的新媒体推广计划和营销战略、策略; ● 案例咨询:现场以学员及企业为案例进行落地实战,帮助学员输出针对企业特点的新媒体营销方案。 课程时间:2天,6小时/天 课程对象: l 企业主、营销管理者、高层经理、市场总监、运营总监、内容负责人等 ...https://www.niaogebiji.com/article-491834-1.html
4.公众号运营与推广——吸粉百万爆文创作内容分发跨界案例分析...公众号运营与推广——吸粉百万爆文创作、内容分发、跨界案例分析 营销管理书籍 新媒体运营 公众号运营与推广实战手册 公众号编辑技巧 微信公众号文章写作 爆款小红书抖音快手B站微博营销策划文案运营 精选6大行业、22个大号成功案例,一本书搞定公众号运营与推广利器——爆文创作与推广 作者:赵阳出版社:水利水电出版...http://product.dangdang.com/25161333.html
5.视频平台运营方案——抖音案例分析.pptx视频平台运营方案——抖音案例分析汇报人:2024-02-041引言抖音用户分析抖音内容策略抖音平台运营抖音商业化运营抖音竞品分析总结与展望contents目录01引言3背景与目的背景随着移动互联网的普及和短视频的兴起,抖音作为一款短视频平台迅速崛起,并吸引了大量用户。目的本案例分析旨在探讨抖音平台的运营策略,为其他视频平台...https://max.book118.com/html/2024/0306/8012043121006042.shtm
1.微博账号运营案例分析:成功案例背后的故事通过对上述三个成功的微博账号运营案例的分析,我们可以看到,成功的运营不仅需要优质的内容,还需要有效的互动策略和与时俱进的创新精神。此外,紧跟社会热点、与粉丝保持良好互动、持续输出高质量内容也是账号成功的关键因素。对于希望在微博平台上取得成功的账号而言,这些经验和教训无疑具有重要的参考价值。https://www.jiaoyumeng.com/yx/121427.html
2.微博2025社交网络影响力分析专家社招面试题集4.1 微博营销案例分析 4.1.1 营销目标设定 4.1.2 营销策略制定 4.1.3 营销效果评估 4.2 微博公关案例分析 4.2.1 公关目标设定 4.2.2 公关策略制定 4.2.3 公关效果评估 4.3 微博内容运营案例分析 4.3.1 内容规划 4.3.2 内容创作 4.3.3 内容推广 https://blog.csdn.net/universsky2015/article/details/143826879
3.内容营销案例:从实战中提炼的制胜策略关注行业动态和新技术发展,分析其对内容营销可能产生的影响和变化。 小标题2:案例研究,汲取成功经验 深入研究国内外成功的内容营销案例,提炼其背后的成功经验和可借鉴之处。 小标题3:策略规划,引领行业前行 基于深度洞察和案例研究,制定具有前瞻性的内容营销策略规划,引领行业前行。 https://www.batmanit.cn/blog/ds/11627.html
4.经典案例分享:成功的内容营销例子解析!本文主要通过分析经典的成功内容营销案例,从四个方面进行详细阐述。首先,介绍了案例的背景和目标;然后,对营销策略和创意进行了解析;接着,分析了案例中使用的营销渠道和工具;之后,了这些成功案例的共同特点和启示。 1、案例背景和目标 成功的内容营销案例通常都有一个明确的背景和目标。比如,某家电公司在市场竞争激烈的...https://www.asl.com.cn/koubeiyingxiao/203498.html
5.内容营销成功案例原来广告还能这么做→MAIGOO知识内容营销成功案例 原来广告还能这么做 内容营销是什么?顾名思义,就是品牌通过创建和分享有价值的内容来吸引客户,并以图片、文字、动画等等介质传达有关企业的相关内容来给客户信息,从而促成销售的营销活动。 一说到内容营销,你首先想到的肯定是 H5 、创意小视频、海报等等,然而,这些都只是内容营销的表现形式,其真正...https://www.maigoo.com/best/20042.html
6.运营管理分析案例(精选6篇)篇1:运营管理分析案例 案例1 ⑴对于服务工的投诉,你认为该如何解决?有何建议?⑵如何防止类似意见分歧的重复发生?⑶你认为该公司在管理上有何需改进之处? 答案要点: 1、针对案例的分析,我们可以看到,首先对服务工不应该解雇,在这里服务工做了不是份内的活,应该予以表扬,适当地给予精神和物质奖励。 https://www.360wenmi.com/f/file2vy8wywr.html
7.抖音旅游账号角色分配案例分析抖音旅游账号角色分配案例分析:在抖音上,旅游账号的运营需要不同角色的人员协作完成,例如内容策划,短视频制作,社交媒体运营等等。在本文中,我们将分享一个旅游账号角色分配的案例分析,介绍如何合理地分配抖音旅游账号的角色,提高运营效率和营销效果。 案例分析:一家旅游公司拥有一个抖音旅游账号,他们在账号运营中分配了...https://www.gaodun.com/xinzhiye/1436261.html
8.抖音账号垂直运营的实施方法与案例分析,值得收藏!3、线上线下联动:垂直经营不只限于线上。 通过线上线下联动,可以实现更全面、更高效的营销方式。 您可以选择将线下活动与线上运营相结合,打造全方位的品牌营销。 3、抖音账号垂直运营案例分析 1、研究目标用户,分析用户需求,输出有针对性的优质内容,打造个人风衣品牌,通过垂直运营提升品牌知名度,实现销量持续增长。https://m.bjhwtx.com/h-nd-46229.html
9.私域流量运营有哪些成功案例?私域流量运营三大成功案例分析...以上就是《私域流量运营有哪些成功案例?私域流量运营三大成功案例分析!》的相关解答了,虽然私域运营的底层逻辑是相通的,但行业不同,运营策略也有所差异。借鉴之余,建议结合品牌、产品的实际情况作出调整。更多企业微信玩法,关注语鹦企服私域管家。https://crm.bytell.cn/blog/case/industry/11329
10.抖音电商运营系统分析案例4篇抖音电商运营系统分析案例 第3篇 电商运营系统概述 抖音电商运营系统的关键环节 1.产品推广和内容创作 2.用户互动和粉丝运营 电商运营系统的实施和管理 总结 抖音电商运营系统分析案例 第4篇 1. 系统概述 2. 数据分析模块详解 3. 商品管理功能亮点 https://hsy.chanjet.com/wenku/wk1b35ca6362af.html
11.5年运营老司机分享:知乎涨粉实操案例上一环节,老 A 用渠道数据分析说服了老板,决定运营知乎这个渠道。 接下来,老 A 进入了核心环节:如何在知乎开展具体的运营工作? 老A 说,以她多年的经验,这个部分一定要足够严谨详细,领导最关心的是运营目标,而你要做的是让领导看到你将通过哪些方式来实现运营目标,要有一份详细的运营方案。 https://www.36kr.com/p/5143852.html
12.运营培训总结(通用15篇)接下来,讲师详细讲解了运营管理的关键要素和流程。从市场调研、用户分析、产品规划、营销推广到售后服务,每个环节都需要运营人员的精心策划和执行。通过案例分析,我深刻体会到了运营决策的重要性以及如何在实践中不断优化运营流程。 此外,培训还涵盖了数据分析和用户增长等运营领域的前沿知识。讲师通过生动的案例和实际操作...https://www.yjbys.com/peixunzongjie/3242431.html