前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据分析和机器学习

数据分析和机器学习

作者头像
木羊
发布2022-04-11 18:02:49
4310
发布2022-04-11 18:02:49
举报
文章被收录于专栏:睡前机器学习

写在前面的闲话

数据分析和机器学习是时下很火的两个词,想问的人很多,搞混的人也很多。作为一名数据科学类Up主,早就觉得有必要写一写这道题目。结果年底事多,事多错也会多,各番滋味混在一起,看着雪白的屏幕和闪动的光标说什么也不敢动笔,大概了进入了晚到半年多的四月病的发病阶段。

这篇文章在草稿箱躺了个把来月,特别感谢华章郭老师的鼓励和帮助,像是老铁给照心给老铁扎了一针鸡血,感觉好多了,也有了点心得。虽然这是个技术公号,不过最终也是希望能对大家有帮助,想想还是主动献丑分享一下吧。

临近年末,事多容易焦虑,不管是可能做错的,还是已经做错的,某个点就会触发焦虑情绪。而且外人很难看出来,只有你自己知道心里各种事翻来覆去慌得一匹。

问题是这事无解,症结在于脑子特别勤劳,闲不下来非要想事情,停是不可能停下来的,就好比叫你不要去想一头粉色的大象,结果多半反而跑去想那头大象。

怎么办呢?好在脑子是个单核CPU,想别的转移注意力就行。具体方法很多,郭老师送了我一本书叫《十分钟冥想》,按我们喜欢的叫法应该叫《冥想实战手册》,总之跟着书里的方法试了试,感觉还真可以放松紧绷的神经。

当然,只要我们还在喘气,焦虑恐怕都难以根除,总有我们在乎的东西会放心不下。我觉得最重要的还是两点,积极的心态,和身边一直鼓励你支持你的朋友。对于第二点,再次感谢华章郭老师。

破圈的数据分析

闲话到此结束,回到主题。

数据分析和机器学习非要比的话,可能还是数据分析要更火一点。我在微信上看过一条广告,主角应该是两位文员,一位女主管训斥另一位OL说怎么结果还没给过来,OL哭着解释说数据太大Excel需要时间处理,女主管一脸不耐烦,说为什么不用Python,几下就弄完了,然后拉开OL自己一通输出,OL顿时满脸写上心悦诚服。最后面是一个Python培训机构的联系方式。

这条广告不管别人看不看得懂,反正有两点是真的让我大受震撼。我一直以为自己对Python也算了解,不过还可以用#include的操作来导入包我是万万没想到。

再有就是这条广告的受众。大家都知道近年Python很热,但是,这里的“大家”,默认指的是程序员,哪怕再广一点,也只是IT行业,俗称“搞IT的”。但是,广告中的两位女性穿的都不是格子衫牛仔裤,而是西装套裙。如果你也是搞IT的,想象一下,你撸完一段代码准备去领工资,看到财务的小姐姐正在飞快地敲击键盘,屏幕上出现一串串标准的Python语句,然后小姐姐果断一个回车,屏幕那边马上出现一张漂亮的统计图表,你是不是也会大受震撼。

我当时就一个想法:数据分析破圈了。

“破圈”是业内很热的一个词,现在你说你的产品很厉害,业内人士认同是远远不够的,还得“破圈”,去争取得到业外人士的认同,俗称“火出圈了”才算成功。这几年IT行业搞了不少概念,真正能火出圈的其实真没多少,刨除掉通过炒作概念割韭菜的、真正靠给圈外带来了便利甚至创造了价值,那更是更是所剩无几。

那么,为什么数据分析能破圈呢?

什么是数据分析

这是一篇随笔,我也没打算给数据分析下一个硬邦邦的定义,不妨先想一个问题:数据分析算编程吗?

好像算,也好像不算。说起来比较奇妙。

你说不算吧,数据分析得敲代码。以前用R语言的比较多,近两年好像Python又风头更劲一点,不过不管哪样,都得安装语言运行环境、打开IDE、然后敲代码。这是最标准的编程工作流程。前面那条广告,说的正是文员也要学Python编程。

可是,你说算吧,数据分析是怎么工作的?给你输入的是一堆数据,但要你输出的不是程序,也不是功能模块,而是分析结果。分析结果的形式也五花八门,可能是一串数据,也可能是一张图表,甚至可能是一段话——贴在某篇给其它行业譬如金融、教育、医疗等等的报告里,作为某项分析的结论。

这么说容易让人看不懂。数据分析给人一种感觉像是这几年才兴起,算是IT行业的新鲜玩意,怎么就已经和金融、教育、医疗这些传统行业搅在一起了?

数据分析也许听着新鲜,但如果你知道这玩意过去叫“统计分析”,是不是顿时觉得这个洋气名词蒙上了一层土气?而且应该马上也就理解,为什么这些传统行业,也会需要用到甚至需要去学习数据分析。

这么说太干了,插两条故事吧。

我最近在看数学史,讲数学史肯定绕不开高斯,高斯太厉害了,人称数学王子。高斯有多厉害呢,战绩赫赫,其中有一项就是发现谷神星轨道。

这又是一个破圈的故事,所以要从19世纪的天文学界说起。某天天文学家皮亚齐发现一颗新的行星,这不是一般的新行星,很可能是一颗“预言中的行星”。这个预言讲起来有点复杂,总之很受关注就对了。

我们知道,行星一般都会有固定的出现位置,但这颗新行星行踪特飘忽,皮亚齐发现之后就消失了,天文学界一时分成两派意见,一派认为皮亚齐真的找到那颗语言中的行星,另一派则觉得哥们可能压力太大看差了,两派大吵了一番,而且估计架势不小,因为都吵破圈了,让数学家高斯给知道了。

高斯说这有啥可吵的啊,算就完事了。拿来皮亚齐的观测数据一通计算,只用一个小时就把这颗新行星的轨道给算了出来,还顺便预测了下一次的出现位置。天文学家将信将疑,结果按图索骥还真给找到了,这就是谷神星。

时空再垃回来一点。我认识一位念生命科学的朋友,按照我们通俗的说法叫“念生物”的,有一次我开玩笑,说念生物的日常是不是和精灵宝可梦差不多,不是在野外捕捉标本,就是在实验室制作标本。哥们苦笑,说那早都是达尔文时代的事了,现在他们最常做的事就是数据分析:通过观测实验得到数据,然后分析数据得到结论。

数据分析这项工作搞过不少噱头,早几年叫“数据挖掘”,也有叫“数据掘金”,听起很高大上,但离我们并不遥远,我们都很熟的啤酒和尿布的故事,其实就是数据分析。前一段时间股市行情不错,大家都在看MACD、看K线图,这也是数据分析。有很多影视作品,在刻画死硬理性派形象时,经常会让角色说一句话:数据是不会骗人的。这其实也是数据分析。

分析数据,然后得出结论,这就是数据分析。

数据分析和机器学习的关系

那么,为什么现在都说学数据分析,要先学Python呢?

前面说数据分析的前身叫统计分析,数据分析用到的很多工具,实际就是统计学里的工具。所以,R语言的官网开宗明义,标题直接叫“The R Project for Statistical Computing”。

这里说的统计学工具,不仅仅是指理论意义上的“工具”,同样也包括开箱即用的第三方支持库。我们在学习统计学时,关注更多的当然是理论原理,但真到工作要用了,如果每要用到一款工具还要重头实现,那时间成本未免就太高了,所以一般都是拿来主义,找第三方已经实现好的支持库来使用。

对第三方库的使用是有个正向循环的。一般来说,越多的人使用的库,就会有越多的人共享拓展,工具集就会越丰富,越丰富又会吸引越多人使用,以此往复。这可以说是一种第三方库经济学。

数据分析的第三方库也是这样。过去做数据分析的一般都是学统计学出身,而学统计学出身的同学更熟悉R语言,所以过去R语言在统计工具方面更为成熟,资源更多,早年接触过这方面的同学应该记得,过去什么“图解数据分析”、“大话数据分析”等等等等的面向初学者的教材,用的都是R语言,所以当时做数据分析首选是用R语言。

不过,这两年有了些新变化。

首先就是机器学习的崛起,这是另一个话题,对数据分析来说,机器学习崛起起了很好的引流作用,学Python的人多了,会Python的人也多了。相比之下,R语言主要还是在统计圈子里混,这就有了基数优势。

Python有很多优势,譬如说好种易活、啥都能干等等,但我认为,基数优势是最大的优势。前面提到第三方库经济学,想象一下,假如你会用Python,现在又要做数据分析,你有两个选择,一种是从零开始学习R语言,另一种是找找看能不能就用Python来做数据分析,你会怎么选择?大多数人一定是选择第二种,因为第二种学习成本最低。而且Python里面正好就有一款数据分析库,功能也很强大,叫Pandas,所以自然而然,现在主要是使用Python来做数据分析。

说到机器学习,我们就顺着说下去。现在我们常说一个词,叫数据科学,名字听得高大上,主要做的就两件事:数据分析和机器学习。

那么,这两者有什么关系呢?

二者都是输入数据,但是输出不同。机器学习强调的是预测, 而数据分析强调的则是“分析”。

这么说还是太干,我们继续插一段故事。

作为一名数据科学Up主,我最希望的当然是写作的文章对大家有帮助,不过这个愿望作为指标未免太过缥缈,所以我也会采用一种许多Up主都采用的指标,那就是粉丝增加量。

一篇文章发出去,很多人看很多人转,还增加了很多新粉丝,我就会认为这篇文章对大家更有价值,会倾向于写作更多同类的文章。

话是这么说没错,可是,什么才叫同类文章呢?

文章的分类是一个听起来客观、但实际很主观的问题。一千个人就有一千种甚至一万种分类方法,譬如说主题内容、字数长短、内容深浅、偏书面还是偏口语、甚至更新周期等等等等,都可以作为文章分类的标准。也许在我眼中这是同一类文章,而在别人眼里(没错说的就是观众姥爷您)二者又风马牛不相及。

那么,这个时候就可以请出机器学习。

首先,我们需要整理数据集。不妨根据前面采用的粉丝增长数,把文章分为(观众姥爷认为)有价值和没价值两类,分别用1和0替代,这就是最终要输出的预测结果。在机器学习中,这个典型的二分类问题。

然后将前面说的主题内容、字数长短、内容深浅、偏书面还是偏口语和更新周期等等等等作为不同的维度,假设有n个维度,每篇文章都按这n个维度填好,如有我们有m篇文章,最终就会形成一个mxn的矩阵。

这样数据集就整理好了,最后我们就可以输入到机器学习模型中,譬如最简单的LR模型,来预测新创作的这篇随笔是否有价值,也即是否受欢迎。

可是,这里有一个最大的问题:机器学习可以对文章进行分类,但是没法进行写作指导。也就是说,我写好了一篇文章,可以用机器学习来分类,但是如果我才提起笔,机器学习是没法告诉我应该怎样写出一篇受欢迎的文章。

这是时候就需要数据分析。

分析什么呢?分析相关性,哪些因素会使文章受欢迎,这叫正相关,哪些因素会使文章被冷遇,这叫负相关。譬如说,如果我发现每次发布字数大概在三千左右的文章时粉丝数增长明显,而过长或者过短都会起到反作用。那就说明文章的篇幅是个很重要的影响因素。

不过,分析的结果有时还得再分析,就拿上面的例子,当然不能说一千字的文章最有价值,一种更为合理的解释是:读者阅读文章需要获取信息,太短的文章没有阅读的价值,但文章太长阅读的时间也会太长,大家也都不愿意看长文章。综合阅读时间和信息量来看,三千字的文章可能正好取得二者的平衡。

所以,分析的结论是:尽量将内容充实或者裁剪至三千字左右。这样经过数据分析,就能够对文章写作起到指导作用。

藏着彩蛋的尾声

文章写完了,可以说些题外话了。

现在数据科学很热,做数据科学的Up主很多,我常想,一名合格的数据科学Up主,除了做知识分享以外,怎么也得拿自己的公号作为实例做一次数据分析,才算对得起自己的角色和定位。

不知道别人怎样,从做这个公号的第一天开始,我就着手筹备这件事:积累数据、绘制图表、连文章的名字都起了好几个。

不过......有些事......是真的只能说是人算不如天算。

我是万万没有想到实践会得到这么一个结果:每次发文章的当天都会随机掉几位粉丝,反而是不发文章的时候,粉丝增长要更快一些。譬如这一个来月没更文章,进来一看粉丝数,着实把我吓了一跳。

于是,我逐一排查各种可能——是的,数据分析只能告诉你关联性,而关联背后的逻辑是需要像你侦探一样不断地提出设想,然后又不断地否定设想,直到剩下最后那个看着不可思议却是唯一正确的答案,正如福尔摩斯的那句名言:当你排除一切不可能的情况,剩下的不管多难以置信,那都是事实。

好吧,如果数据真的不会骗人,那么,我的这个最后剩下的不可思议却是唯一正确的答案,就是:

观众姥爷喜欢看我不更新文章。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 睡前机器学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档