高手问答第 215 期 —— 如何使用 Python 进行数据分析与挖掘?

局长 发布于 10/30 17:55
阅读 2K+
收藏 37

OSCHINA 本期高手问答(2018 年 10 月 31 日 — 11 月 6 日)我们请来了刘顺祥@我爱开源1989 ,为大家解答关于使用 Python 进行数据分析与挖掘方面的问题。

刘顺祥,统计学硕士,“数据分析1480”微信公众号运营者。曾就职于大数据咨询公司,为联想、亨氏、美丽田园、网鱼网咖等企业项目提供服务;曾在唯品会大数据部担任数据分析师一职,负责电商支付环节的数据分析业务。

本期问答内容

  1. 数据分析与挖掘的应用领域
  2. 使用 Python 进行数据分析与挖掘的实践分享
  3. 使用 Python 进行数据分析与挖掘的实用技巧
  4. 相关开源项目推荐

或有其他相关问题,也欢迎大家积极提问。

为了鼓励踊跃提问,@局长 会在问答结束后从提问者中抽取 3 名幸运会员赠予《从零开始学Python数据分析与挖掘》一书。

购买链接:天猫
OSChina 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。
下面欢迎大家就使用 Python 进行数据分析与挖掘方面的问题向@我爱开源1989 提问,请直接回帖提问。

加载中
0
局长
局长

OSC 第 215 期高手问答 --如何使用 Python 进行数据分析与挖掘?

@xpbob  @lemonwater  @天山的影子

恭喜以上三位网友获得《从零开始学Python数据分析与挖掘》一本,请私信@局长  告知快递信息(格式:姓名+电话+地址+邮编

2
我爱开源1989
我爱开源1989

引用来自“风弥”的评论

@我爱开源1989 请问能稍微介绍下数据分析与数据挖掘的应用场景么?

不妨举两个典型的例子:

1)识别互联网行业中的“黄牛”。移动互联网时代下,电商平台之间的竞争都特别的激烈,为了获得更多的新用户,往往会针对新用户发放一些诱人的福利,如红包券、满减券、折扣券、限时抢购优惠券等,当用户产生交易时,就能够使用这些券减免一部分交易金额。然而,某些心念不正的用户为了从中牟取利益,破坏大环境下的游戏规则。以某电商为例,数据分析人员在一次促销活动的复盘过程中,发现交易记录存在异常,于是就对这批异常交易作更深层次的分析和挖掘。最终发现这批异常交易都有两个共同特点,那就是一张银行卡对应数百个甚至上千个用户id,同时,这些id至始至终就发生一笔交易。暗示了什么问题?这就说明用户很可能通过廉价的方式获得多个手机号,利用这些手机号去注册APP成为享受福利的多个新用户,然后利用低价优势买入这些商品,最后再以更高的价格卖出这些商品,这种用户我们一般称为“黄牛”。

2)完美的动态定价营销法。打车工具的出现,改变了人们的出行习惯,也改善了乘车的便捷性,以前都是通过路边招手才能乘上出租车,现在坐在家里就可以完成一对一的打车服务。起初滴滴、快滴、优步、易到等打车平台,为了抢占市场份额,不惜一切代价,花费巨资补贴给司机端和乘客端,在一定程度上获得了用户的青睐,甚至导致用户在短途出行中都依赖上了这些打车工具。然而随着时间的推移,打车市场的格局基本定型,企业为了自身的利益和长远的发展,不再进行这种粗放式的“烧钱”运营手段。当司机端和乘客端不再享受以前的福利待遇时,一定程度上会影响乘客端的乘车频率和司机端的接单积极性。为了弥补这方面的影响,某打车平台将利用用户的历史交易数据,为司机端和乘客端的定价进行私人订制。例如针对乘客端,通过各种广告渠道将折扣券送到用户手中,一方面可以唤醒部分沉默用户(此时的折扣力度会相对比较高),让他们再次回到应用中产生交易,另一方面继续刺激活跃用户的使用频率(此时的折扣力度会相对比较低),进而提高用户的忠诚度;针对司机端,根据司机在平台的历史数据,将其接单习惯、路线熟悉度、路线拥堵状况、距离乘客远近、天气变化、乘客乘坐距离等信息输入到逻辑模型中,可以预测出司机接单的概率大小。这里的概率一定程度上可以理解为司机接单的意愿,如果概率越高,则说明司机接单的意愿就越强,否则意愿就越弱。当模型发现司机接单的意愿比较低时,就会发放较高的补贴给司机端,否则司机就会获得较少的补贴甚至没有补贴。如果不将数据分析与挖掘手段应用于大数据的交通领域,就无法刺激司机端和乘客端的更多交易,同时,也会浪费更多的资金,造成营成本居高不下,影响企业的发展和股东的利益。

 

1
我爱开源1989
我爱开源1989

引用来自“开源中国首席罗纳尔多”的评论

@我爱开源1989 请问用python哪些类库来做哪种类型的数据分析?线性回归吗?

关于数据分析的Python库,这里重点介绍几个工作中常用的。包括numpy模块(用于矩阵运算、随机数的生成等)、pandas模块(用于数据的读取、清洗、整理、运算、可视化等)、matplotlib模块(专用于数据可视化,当然含有统计类的seaborn模块)、statsmodels模块(用于构建统计模型,如线性回归、岭回归、逻辑回归、主成分分析等)、scipy模块(专用于统计中的各种假设检验,如卡方检验、相关系数检验、正态性检验、t检验、F检验等)、sklearn模块(专用于机器学习,包含了常规的数据挖掘算法,如决策树、森林树、提升树、贝叶斯、K近邻、SVM、GBDT、Kmeans等)。

1
我爱开源1989
我爱开源1989

引用来自“encro”的评论

@我爱开源1989 数据分析和挖掘推荐的入门方式是?小公司如何利用数据分析和挖掘?

根据我个人的经验,关于数据分析与挖掘的入门方式是先实现代码和Python语法的落地(前期也需要你了解一些统计学知识、数学知识等),这个过程需要你多阅读相关的数据和查阅社区、论坛。然后你在代码落地的过程中一定会对算法中的参数或结果产生疑问,此时再去查看统计学和数据挖掘方面的理论知识。这样就形成了问题为导向的学习方法,如果将入门顺序搞反了,可能在硬着头皮研究理论算法的过程中就打退堂鼓了。

对于小公司来说,你得清楚的知道自己的痛点是什么,这些痛点是否能够体现在数据上,公司内部的交易数据、营销数据、仓储数据等是否比较齐全。在这些数据的基础上搭建核心KPI作为每日或每周的经营健康度衡量,数据分析侧重于历史的描述,数据挖掘则侧重于未来的预测。

1
我爱开源1989
我爱开源1989

引用来自“RichJack”的评论

@我爱开源1989 Q1.请问5-10年内,从事此工作的被替代性如何? Q2.能分析数据跟不能分析数据的人有何明显差异呢? 谢谢

第一个问题:个人认为,在未来的5~10年,数据分析与挖掘相关的岗位不仅不会被机器替代,需求还会更加的旺盛。原因如下:

1、数据分析或挖掘不单单是机器做的苦力,也需要分析人员的思想,即机器是搬运工,而人是指挥员;

2、2013年为国内的大数据元年,国内的大数据行业正如火如荼的发展,但数得上TOP并不是很多,还有很多中小企业(估摸着占80%以上吧)想着往TOP中挤,他们挤得过程就是数据分析与挖掘相关的岗位需求的过程。

3、国内很多的高校(如清华、北大、中国人民大学、复旦等)陆续在2016年开始开设大数据相关的学科专业,目的就是服务未来的大数据,为大数据行业增加血液。

第二个问题:差异在于对数据的敏感度和对数据的个性化理解。换句话说,就是懂分析的人能够从数据中看出破绽,解决问题,甚至用数据创造价值;不懂分析的人,做不到这些,更多的是描述数据。

1
tuo_
tuo_

@我爱开源1989 请问在学习数据分析和挖掘过程中,我感觉除了要掌握相关的Numpy、Pandas等数据工具外,关键是要懂得每种算法的原理,知道每种算法客户解决什么类型的问题,但是往往看完之后很快就忘了,而且好像还要有一定的线性代数、概率论与数理统计的知识,对于初入数据分析和挖掘领域的新人,在学习上有没有什么比较好的学习路线建议?谢谢!

我爱开源1989
我爱开源1989
您的问题时非常值得探讨的,也是常见的麻烦。以我的个人经历来做个回答。作为初学者推荐读者多逛逛项目类的论坛,如GitHub、Kaggle等,上面有很多值得学习的数据分析与挖掘的项目,全世界的人都在上面分享代码。以项目(或问题)为导向学习算法的理论知识会让你记忆更长久,同时也需要你不断的重温和操作。
1
我爱开源1989
我爱开源1989

引用来自“GavinHsueh”的评论

@我爱开源1989您好,运营人员经常做数据分析,考核KPI,如何通过python提升工作效率,将复杂工作简单化,重复工作自动化。需要学习怎样的一个知识体系?谢谢~

这个问题问的非常好,复杂问题简单化,重复问题自动化,这是让工作变得轻松的途径。以我以往的经历为例,在工作中更多的会使用数据库、Excel和某个编程工具(如Python),对于复杂工作需要细化,规划脑图,将复杂的工作内容拆分为多步骤或多节点的形式,然后将这些步骤或节点封装到Python的自定义函数中,最终形成“流”式工作法,更值得称赞的是,你所封装的这些功能性函数可以重复利用。再例如工作中制规范的周报或月报,这就是重复性的工作,你需要将Python连接到数据库,然后周报随着数据库的变化而变化,进而形成自动化。

所以,对于知识体系的学习,一方面你需要明确哪些工作内容可以借助于Python的功能可以实现(如数据清洗、运算、汇总、可视化,甚至是建模),另一方面你还需要习惯地将Python代码封装成可复用的产品。如果你对Python的零散知识点都掌握的非常好了,下一步就是学着组装咯。

1
拾光TM
拾光TM
@我爱开源1989 老师,我想问一下目前数据分析的门槛是不是很高,像一些常用的数据分析软件spss sas等,python数据分析的优势在哪里?
拾光TM
拾光TM
回复 @我爱开源1989 : 是的,我看到很多家企业招数据分析都是要求经验丰富的,而且很多时候数据分析都和爬虫连在一块了,很少有单纯的数据分析岗位。
我爱开源1989
我爱开源1989
目前数据分析刚岗的门槛并不是特别高,对于应届生也可以比较顺利的进入行业(但要求懂数据库和Excel的基本操作),对于有工作经验的企业更看重你的工作经验。据我统计,使用spss做统计分析的企业还是比较少的(相对于sas和Python)。sas在金融和医药行业使用更普遍,Python在互联网行业非常受欢迎,它的优势在于利用第三方包快速解决问题,而且学习的资料,论坛也特别多。
0
开源中国首席罗纳尔多
开源中国首席罗纳尔多

@我爱开源1989 请问用python哪些类库来做哪种类型的数据分析?线性回归吗?

0
encro
encro

@我爱开源1989 数据分析和挖掘推荐的入门方式是?小公司如何利用数据分析和挖掘?

返回顶部
顶部