中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

從數(shù)據(jù)到產(chǎn)品——愛飛狗背后的故事

2019-02-26    來源:多智時(shí)代

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬Linux鏡像隨意使用

這篇文章基于最近整理的一份演講的Slide,由于報(bào)名太晚錯(cuò)過了截止日期,所以只好寫成文章,一起來看看愛飛狗背后的一些故事。

從數(shù)據(jù)到產(chǎn)品——愛飛狗背后的故事

幾年前我和家人會(huì)經(jīng)常往返于成都和廣州兩個(gè)城市,從平時(shí)的觀察中可以看到機(jī)票價(jià)格從400人民幣到全價(jià)接近1500人民幣,機(jī)票產(chǎn)生的波動(dòng)有時(shí)候會(huì)高達(dá)100元以上,如果沒有看好時(shí)間,一家人出行就會(huì)增加幾百元的成本。

從數(shù)據(jù)到產(chǎn)品——愛飛狗背后的故事

買機(jī)票的時(shí)候,我應(yīng)該和大家差不多,會(huì)在買機(jī)票前進(jìn)行一番觀察。主要是觀察未來幾天起飛的機(jī)票價(jià)格,用來選擇哪天出行。然后手工記錄一下近期的價(jià)格變化,看看是不是在漲價(jià)還是跌價(jià)中。當(dāng)然這個(gè)純屬體力活也容易錯(cuò)過最佳購票時(shí)期。我當(dāng)時(shí)在想,如果我能知道去年的機(jī)票的價(jià)格和變化趨勢(shì),或許可以用來預(yù)測(cè)今年的價(jià)格的波動(dòng)和判斷是否需要購買機(jī)票。

從數(shù)據(jù)到產(chǎn)品——愛飛狗背后的故事

我提出了兩個(gè)問題,近期的價(jià)格的趨勢(shì)是什么?決定好起飛時(shí)間后,我應(yīng)該提前多少天購票?

從數(shù)據(jù)到產(chǎn)品——愛飛狗背后的故事

我查了一下目前我們有的一些服務(wù)和APP,看是不是有人已經(jīng)做過了類似的事情。

  • Farecast是最早做機(jī)票預(yù)測(cè)服務(wù)的一家公司,后來被微軟收購后并入了Bing,此后Google收購了Farecast所依賴的數(shù)據(jù)源后,Bing的這項(xiàng)業(yè)務(wù)也停止了,所以現(xiàn)在Farecast已經(jīng)關(guān)閉,無法使用。

  • Kaya這家網(wǎng)站提供了機(jī)票的近期價(jià)格曲線以及購票建議,十分切合我的需要,但遺憾的是中國的數(shù)據(jù)源非常少,幾乎沒有可參考性。

  • Hopper也是最近兩三年比較好的一款A(yù)pp,提供了出行的建議以及是否購票的提示。但Hopper不會(huì)提供去年的曲線圖,也沒有近期的票價(jià)情況,一切看你是否相信它的AI預(yù)測(cè)了。和Kaya類似,這個(gè)App也沒有中國區(qū)域足夠的數(shù)據(jù),沒有什么參考價(jià)值。

從數(shù)據(jù)到產(chǎn)品——愛飛狗背后的故事

面對(duì)這樣的情況,作為一個(gè)程序員,我覺得是時(shí)候出手了。

從數(shù)據(jù)到產(chǎn)品——愛飛狗背后的故事

由于我沒有運(yùn)營機(jī)票代理業(yè)務(wù),所以無法獲得機(jī)票信息的一手資源。對(duì)于我來講唯一能夠獲取到數(shù)據(jù)的方式就是采用爬蟲,通過模擬人工的搜索來獲得票價(jià)信息,存儲(chǔ)到數(shù)據(jù)庫中。

從數(shù)據(jù)到產(chǎn)品——愛飛狗背后的故事

為了分析一整年的數(shù)據(jù),我在給自己定了一些目標(biāo):

  • 至少要連續(xù)采集1年的數(shù)據(jù)

  • 更新頻率大概在1小時(shí)左右

  • 低成本

  • 容忍爬蟲或者數(shù)據(jù)源的失敗

從數(shù)據(jù)到產(chǎn)品——愛飛狗背后的故事

根據(jù)這些目標(biāo)結(jié)合當(dāng)時(shí)的情況,我將這個(gè)任務(wù)分解成了以下幾個(gè)部分:

  • 機(jī)票采集的范圍:中國范圍內(nèi)2800個(gè)航線的直飛的價(jià)格數(shù)據(jù)

  • 采集的數(shù)據(jù):每條航線起飛前45天的票價(jià)信息

  • 數(shù)據(jù)源:4個(gè)數(shù)據(jù)源做互補(bǔ),一來是為了檢查數(shù)據(jù)的準(zhǔn)確性,二來是為了防止數(shù)據(jù)源失效

  • 全年無休連續(xù)爬取

從數(shù)據(jù)到產(chǎn)品——愛飛狗背后的故事

在數(shù)據(jù)爬蟲的架構(gòu)上,我需要一個(gè)低成本的方案,畢竟要干上一年以上的時(shí)間(其實(shí)到現(xiàn)在已經(jīng)2年多了)。我并沒有使用各種爬蟲的框架,而是自己寫了一個(gè)輕量級(jí)的爬蟲來處理代理的篩選邏輯和爬取數(shù)據(jù)的驗(yàn)證。這些爬蟲將會(huì)運(yùn)行在DigitalOcean或者Linode的$5的服務(wù)器上,這些服務(wù)器上只有1個(gè)CPU和1G的內(nèi)存。自定義的爬蟲能夠盡可能的根據(jù)性能進(jìn)行針對(duì)性的調(diào)優(yōu),從而增加性能。每個(gè)爬蟲之間互相獨(dú)立,部署在單獨(dú)的機(jī)器上,也是為了減少爬蟲之間的相互干擾。

在存儲(chǔ)上我是用了tar.xz的文件將所有的爬取到的原始文件按照每一輪爬取進(jìn)行打包壓縮,然后在本地里面的一臺(tái)PC機(jī)負(fù)責(zé)將所有的數(shù)據(jù)拉回來,放到一個(gè)4T的硬盤上。同時(shí)這些數(shù)據(jù)也會(huì)存儲(chǔ)到百度云上面進(jìn)行備份。目前這些壓縮包已經(jīng)達(dá)到2T左右了,解壓下來大約有20T的數(shù)據(jù)量,大約有380億條數(shù)據(jù)。

在數(shù)據(jù)處理上,首先是實(shí)時(shí)數(shù)據(jù)流的處理。使用了kafka來進(jìn)行隊(duì)列管理,一個(gè)Parser來進(jìn)行實(shí)時(shí)的處理原始數(shù)據(jù),將處理好的結(jié)果放到redis緩存中,供小程序的后端使用。

在數(shù)據(jù)的分析上,我使用Java手寫了一個(gè)高性能的ETL,直接讀取壓縮包然后進(jìn)行數(shù)據(jù)解析。在這里也是使用了輕量的原則,沒有使用更多框架,從而達(dá)到非常高的性能。

在PC機(jī)上也使用了Postgres中進(jìn)行數(shù)據(jù)存儲(chǔ),每一天的數(shù)據(jù)存儲(chǔ)到一個(gè)表中。

從數(shù)據(jù)到產(chǎn)品——愛飛狗背后的故事

在近兩年的時(shí)間中我積累了以下一些經(jīng)驗(yàn):

  • 在長時(shí)間的爬取中證明了簡(jiǎn)單的爬蟲的可變性非常好,在針對(duì)特殊場(chǎng)景調(diào)優(yōu)的時(shí)候非常有針對(duì)性。

  • 存儲(chǔ)原始文本也為了應(yīng)對(duì)數(shù)據(jù)結(jié)構(gòu)的變化,當(dāng)數(shù)據(jù)結(jié)構(gòu)變化后,本地的Parser失敗以后,可以重復(fù)的調(diào)用之前的數(shù)據(jù),從而保證數(shù)據(jù)不丟失。

  • 多個(gè)數(shù)據(jù)源進(jìn)行備份的設(shè)計(jì)非常好。目前依然有兩個(gè)數(shù)據(jù)源在持續(xù)爬取。針對(duì)兩個(gè)數(shù)據(jù)源我也可以進(jìn)行數(shù)據(jù)的對(duì)比,發(fā)現(xiàn)數(shù)據(jù)對(duì)比后數(shù)據(jù)較為相似,說明沒有爬取到臟數(shù)據(jù)。

從數(shù)據(jù)到產(chǎn)品——愛飛狗背后的故事

拿到這些數(shù)據(jù)后,就要開始數(shù)據(jù)分析了。

從數(shù)據(jù)到產(chǎn)品——愛飛狗背后的故事

分析的結(jié)論在我的簡(jiǎn)書的前幾篇文章中都有提到。這里不再贅述,請(qǐng)參看:

https://www.jianshu.com/p/3b22fb101189

https://www.jianshu.com/p/366e839af3ea

從數(shù)據(jù)到產(chǎn)品——愛飛狗背后的故事

從數(shù)據(jù)到產(chǎn)品——愛飛狗背后的故事

從數(shù)據(jù)到產(chǎn)品——愛飛狗背后的故事

從數(shù)據(jù)到產(chǎn)品——愛飛狗背后的故事

從數(shù)據(jù)到產(chǎn)品——愛飛狗背后的故事

從數(shù)據(jù)到產(chǎn)品——愛飛狗背后的故事

從數(shù)據(jù)到產(chǎn)品——愛飛狗背后的故事

在分析完這些數(shù)據(jù)后,我們?cè)倩仡^看一下最初問題的定義:針對(duì)某一條航線,給定歷史價(jià)格和近期的價(jià)格,現(xiàn)在看到當(dāng)前的價(jià)格是P和距離起飛還有N天,我們應(yīng)該是買還是等待?

從數(shù)據(jù)到產(chǎn)品——愛飛狗背后的故事

我使用了以下一些算法來分析,包括決策樹、支持向量機(jī)、Q-learning和神經(jīng)網(wǎng)絡(luò)。

從數(shù)據(jù)到產(chǎn)品——愛飛狗背后的故事

在準(zhǔn)備數(shù)據(jù)時(shí),提取了以下一些基本特征,當(dāng)然針對(duì)不同的算法還是用不同的特征。

從數(shù)據(jù)到產(chǎn)品——愛飛狗背后的故事

在數(shù)據(jù)的分割上,考慮到這個(gè)是時(shí)間序列相關(guān)的數(shù)據(jù),將數(shù)據(jù)集分為1年的訓(xùn)練數(shù)據(jù),2個(gè)月的測(cè)試數(shù)據(jù)和2個(gè)月的驗(yàn)證數(shù)據(jù)集。當(dāng)然實(shí)際數(shù)據(jù)比這個(gè)多,可以嘗試更多的組合。

從數(shù)據(jù)到產(chǎn)品——愛飛狗背后的故事

但這些算法算出來的結(jié)果還并不令人特別滿意,達(dá)到的準(zhǔn)確率也只能超過人工根據(jù)一些簡(jiǎn)單的規(guī)則推導(dǎo)出來的準(zhǔn)確率,可能和我所用的數(shù)據(jù)訓(xùn)練方式有關(guān)。所以在線上計(jì)算的時(shí)候,我目前還是采用專家系統(tǒng)的做法,將數(shù)據(jù)分析的結(jié)果整理成規(guī)則,根據(jù)這些規(guī)則還是能夠得到較高的預(yù)測(cè)準(zhǔn)確率,其他的指標(biāo)例如Recall等可能會(huì)比較差。

從數(shù)據(jù)到產(chǎn)品——愛飛狗背后的故事

那么為什么專家系統(tǒng)能夠行得通呢?我從一些內(nèi)部人士了解到,原因在于這些機(jī)票都是來源于中航信,而這個(gè)系統(tǒng)比較老舊,針對(duì)價(jià)格的調(diào)整也不夠靈活,大多數(shù)都是給予一些人工的規(guī)則來進(jìn)行。收益管理員基本上都是從這里學(xué)到一些規(guī)則然后進(jìn)行調(diào)價(jià),所以學(xué)到的規(guī)則其實(shí)比較相近,所以會(huì)產(chǎn)生大家都有差不多一樣的規(guī)則。

從數(shù)據(jù)到產(chǎn)品——愛飛狗背后的故事

有了數(shù)據(jù)之后,想到可以來造福大眾,便產(chǎn)生了做一個(gè)小產(chǎn)品的想法。

從數(shù)據(jù)到產(chǎn)品——愛飛狗背后的故事

這時(shí)候正直小程序比較火的年代,小程序比較簡(jiǎn)單,而且受益于微信的用戶群可以很方便的進(jìn)行推廣。所以設(shè)計(jì)了幾個(gè)簡(jiǎn)單的功能,能夠選擇出發(fā)、到達(dá)和起飛日期,然后會(huì)顯示出實(shí)時(shí)的價(jià)格和歷史最低的價(jià)格,點(diǎn)進(jìn)去后可以看到預(yù)測(cè)、近期的價(jià)格波動(dòng)和去年的價(jià)格波動(dòng)。這能夠更好的指導(dǎo)大家進(jìn)行機(jī)票的選擇。

從數(shù)據(jù)到產(chǎn)品——愛飛狗背后的故事

下面來看看產(chǎn)品背后的架構(gòu):

  • 前端當(dāng)然是用微信提供的一套進(jìn)行開發(fā),這個(gè)和其他的小程序沒有什么兩樣。

  • 后端使用Flask進(jìn)行開發(fā),簡(jiǎn)單快捷。

  • 數(shù)據(jù)提供方面有之前提到的實(shí)時(shí)數(shù)據(jù)的顯示,來自Redis緩存,當(dāng)然還有離線歷史數(shù)據(jù)數(shù)據(jù)。這些數(shù)據(jù)每天從離線的PC機(jī)上同步到云端,然后由API進(jìn)行展示。

  • 還有用戶行為數(shù)據(jù)的存儲(chǔ)及分析。這些數(shù)據(jù)都存在ElasticSearch服務(wù)器中以便進(jìn)行快速的搜索,借助Kibana可以對(duì)用戶行為進(jìn)行在線的分析,非常的方便。當(dāng)然還有一些和用戶相關(guān)的需要實(shí)時(shí)更新的數(shù)據(jù)(例如session值和飛幣的信息)也放在EleasticSearch中,主要是利用了NoSQL數(shù)據(jù)庫沒有Schema的特點(diǎn),增加數(shù)據(jù)使用的靈活性。

  • 基礎(chǔ)設(shè)施方面小程序相關(guān)的部分全部在阿里云的服務(wù)器上。所有的服務(wù)都使用Kubernetes進(jìn)行管理,Rancher進(jìn)行可視化管理,爬蟲等服務(wù)放在DigitalOcean一遍節(jié)約成本。

從數(shù)據(jù)到產(chǎn)品——愛飛狗背后的故事

小程序也發(fā)布了9個(gè)多月了,目前積累了大約4.3萬的用戶,數(shù)量還相對(duì)較少,這個(gè)小程序的未來如何考慮呢?

從數(shù)據(jù)到產(chǎn)品——愛飛狗背后的故事

首先是繼續(xù)將機(jī)器學(xué)習(xí)應(yīng)用到價(jià)格的預(yù)測(cè),畢竟積累了2年的多的數(shù)據(jù)是一筆不小的財(cái)富。

然后是提供更好用的界面提升用戶的使用滿意度。

最后就是找到一套可行的商業(yè)模式進(jìn)行變現(xiàn)。目前小程序還只能依靠廣告有一點(diǎn)收益,完全是入不敷出的情況。

從數(shù)據(jù)到產(chǎn)品——愛飛狗背后的故事

作者:我是思聰

鏈接:https://www.jianshu.com/p/b6c59316d980

在不久的將來,云計(jì)算一定會(huì)徹底走入我們的生活,有興趣入行未來前沿產(chǎn)業(yè)的朋友,可以收藏云計(jì)算,及時(shí)獲取人工智能、大數(shù)據(jù)、云計(jì)算和物聯(lián)網(wǎng)的前沿資訊和基礎(chǔ)知識(shí),讓我們一起攜手,引領(lǐng)人工智能的未來!

標(biāo)簽: Google 大數(shù)據(jù) 服務(wù)器 數(shù)據(jù)分析 數(shù)據(jù)庫 搜索 推廣 網(wǎng)絡(luò) 云計(jì)算

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:IT部門如何成為云服務(wù)提供商

下一篇:云計(jì)算技術(shù)的優(yōu)劣勢(shì),云計(jì)算未來趨勢(shì)展望