查看原文
其他

案例 | R语言+机器学习合璧,剑指商业应用 ?

2016-11-22 丘祐玮DavidChiu R语言中文社区

为什么要用R做机器学习

资料分析的步骤可以拆解为四大步骤,包含数据搜集、数据处理、数据分析与数据可视化,其中资料处理大概就佔据了80%的时间,剩下20%的时间都在做资料分析与诠释结果。

比如说,你今天发现了尿布跟啤酒的关系,你如果不去探明就理,便容易被老板打枪,所以诠释结果又会占据了其中80%的时间,所以真正做数据分析的时间少的可怜, 只剩下4%,但其中大多做的都是加总跟平均, 算不上高深的技术,可想而知, 如果要真正做上机器学习, 时间可算可贵。

但是每个机器学习背后,都有其学问与算法。因此,我们就需要一个好工具帮我们解决机器学习的问题。而R 语言发展至今, 已经有超过6000多个套件, 你想的到的机器学习套件都可以在上面找到。因此, 他可以当成是你入门机器学习的一个好工具。

机器学习说穿了, 其实就是让计算机从数据中归纳出规则,像人类一样,,我们原本是透过观察习得经验值, 计算机的学习过程就是从数据中推导规则,而其实机器学习发展至今也过了好几个年头, 他不是新技术, 但最近又火红了起来。

为什么?

就是因为以前的数据量不够大, 计算机没有足够的样本学习, 因此不够聪明,现在是大数据时代, 因此可以取用的数据与维度很多,,我们便可以让计算机习得足够的经验值,,让他做更聪明的推导。

机器学习发展至今,也过了好几个年头,各种方法百家争鸣,眼花撩乱, 而R的好处就是可以快速替代各种学习算法,让你可以马上用各种算法建立模型,产生预测结果。

例如要做个分类,你就可以从e1071 套件中取得naïve bayes,svm 等各种分类算法。你可以不用懂每个机器学习背后的算法, 便可以快速使用套件进行数据实验。

以下, 我们就分享几个机器学习在商业上的应用。

机器学习可以分为两大类,四种问题。

两大类分别是监督式学习与非监督式学习,听起来有点饶口,但区别就在于一个是根据有历史答案的资料进行学习。而监督式学习又可以根据预测的响应型态分为回归分析与分类问题。回归分析是用做连续型数字或二元数据的预测, 因此像是房价, 股价的预测, 都可以使用回归分析来建立预测模型。而相对于回归分析的问题即是分类问题,该问题的主要目标就是要预测类别数据, 因此当要预测的响应是类别数据(股市涨跌, 顾客是否流失)就可以用这种方法产生预测模型。

我们来举几个使用R可以完成的监督式学习案例。

案例一:房价预测

拿房价预测来当例子,现在在台湾的房价很高, 一般屌丝可能要不吃不喝数年, 才有机会买一套房。之前我去看房时, 一位房仲跟我说, 他的价格最公道, 比旁边区域要好上很多。为了要能预测这件事, 我们必须真实验证这数据的合理性,我们看一下该如何验证:

首先,我先写了一个爬虫抓取买屋网的信息,https://rent.591.com.tw/

这是台湾买屋网的信息,我刚刚也试爬了一下青客的信息http://www.qk365.com/room/20650。如果有兴趣者,可以使用rvest 等R套件抓取该房价信息。

例如

library(rvest)

read_html('

http://www.qk365.com/room/20650'

)

%>%

html_nodes('dd') %>% html_text() %>% iconv(from='UTF-8',

to='UTF-8')

就可以将房价等信息爬取下来,我们接着就可以将数据整理成表格


像這樣的格式,透过R便可以简单做回归分析

house = read.csv('house_rental.csv', header=TRUE)

我们载入这资讯

plot(Price ~ Sqft, data=house)

R透過一行指令便可以绘图,做回归分析更加容易

fit = lm(Price ~ Sqft, data=house)

一行指令我们便可以针对地坪与房价做回归线,如果要判断哪个变量是否有用

fit = lm(Price ~ ., data=house)

先将所有变量丢下去建立模型

step(fit)

Step 一行指令便可以帮我们挑出最有用的变量,例如地坪与楼层,房数很重要,但总楼层数就显得不太重要。之后我们可以再用predict 函式,快速产生预测结果。

使用R做机器学习,简直小菜一碟。

案例二:电商数据预测热销产品

另外举个电商数据的案例:他想要从上一个月客户的交易纪录预测下个月热销前20商品。

我们看一下真实数据的长相

203.145.207.188 - - [01/Feb/2015:00:00:00 +0800] "GET /action?;act=view;uid=;pid=0005158462;cat=J,J_007,J_007_001,J_007_001_001;erUid=41ee27d6-5f83-b982-69f9-f378dc9fc11b; HTTP/1.1" 302 160 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0"

这是log 信息,很杂,,很乱,很大,一个月可以累积数百G的数据。

我们首先可以将数据清洗,整理成表格格式,具体项目包含去除掉测试数据,爬虫数据,切使用者session 跟补齐浏览时间,因为log 记录只保留了用户每次点击的时间点, 因此我们要推算大概他一页会停留多久。之后我们可以将数据整理成这样表格形式的数据



之后我们将浏览次数跟比例从数据中拉取出来,此时用判定树便可以根据使用者浏览情况决定该使用者是否可能购买该商品。

下个月的前20热销也可以用这方法预测。而R 语言的好处就是可以快速实验使用各种方法,当我们改使用了randomforest,便可以100%预测中前20的商品,除了推算出隔月的热销产品外,我们发现如果一个使用者观看该商品的重复性与在一session 的观看比例占比高,他购买的机会也就越高。

因此之后我们请前端做了一个功能,当发现有一个使用者重复看了这商品两次,我们便让前端再打一次,这样就可以快速促进商品的销售,也就让机器学习的成果跟商业应用有实质的连结。

另外我们主力产品是做舆情分析的,因此也有应用分群等技术在探索文章主题,抽取用户关键意见,另外也有使用分类技术追踪主题,将机器学习应用在文字处理上, 更可以帮助客户倾听用户的心声。

End

如果期望对 R 语言进行更深入地学习,了解更多的数据挖掘知识,请关注天善独家的《 R 语言十三式》课程,已经超过600人参团啦!!!讲师是谢佳标,本课程团购活动现正在火热进行中,"阅读原文"即可参团。

前期热门 

原创 | 太犀利!看我大R语言如何用主成分分析洞悉城管事件数据

原创 | 揭秘老九门真正主角,看我利器R语言

R语言-用R眼看琅琊榜小说的正确姿势


推荐文章

案例 | 利用R语言对玩家付费行为进行深度挖掘

案例 | 通过R对照片进行情绪分析

案例 | 基于R语言钻石价格预测

资讯 | RStudio 1.0版本正式发布

中国R语言大会嘉宾教你shiny包应该这么用!

利用R语言爬取视频网站数据

用简单的文本处理方法优化我们的读书体验

RStudio IDE,那些你容易忽视的技巧

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存