前言
資料探勘(Data Mining),是指從資料中發現知識的過程(Knowledge Discovery in Databases, KDD)。狹義的資料探勘一般指從大量的、不完全的、有雜訊的、模糊的、隨機的實際應用數據中,提取隱含其中的、人們事先不知道的、但又是潛在有用知識的過程。自從電腦發明之後,科學家們先後提出了許多優秀的資料探勘演算法。2006年12月,在資料探勘領域的權威學術會議the IEEE International Conference on Data Mining(ICDM)上,科學家們評選出了該領域的十大經典演算法:C4.5、K-Means、SVM、Apriori、EM、PageRank、AdaBoost、kNN、Naive Bayes和CART。這是資料探勘學科的一個重要里程碑,從此資料探勘在理論研究和實際應用兩方面均進入飛速發展時期,並得到廣泛關注。
在實際生產活動中,許多問題都可以用資料探勘方法來建立模型,從而提升營運效率。例如,某企業在其行動終端應用(App)上售賣各種商品,它希望向不同的客戶群體精準推送差異化的產品和服務,從而提升銷售業績。在這個案例中,如何將千萬量級的客戶劃分為不同的客戶群體,可以由資料探勘中的集群分析演算法來完成;針對某個客戶群體,如何判斷某個產品是否是他們感興趣的,可以由資料探勘中的分類分析演算法來完成;如何發現某個客戶群體感興趣的各種產品之間的關聯性,應該把哪些產品打包為方案,可以由資料探勘中的關聯分析演算法來完成;如何發現某個客戶群體的興趣愛好的長期趨勢,可以由資料探勘中的迴歸演算法來完成;如何綜合考慮公司的KPI指標、行銷政策和App頁面限制等條件,制訂最終的應用行銷方案,可以基於資料探勘中的ROC曲線建立數學模型求得最優解法來解決。
當前,許多企業正面臨前所未有的競爭壓力。以營運商企業為例,從政策層面看,當各個國家對網路提出了「提速降費」的策略:一方面要提高網路連接速度、提供更好的服務,這意味著公司成本的提高;另一方面要降低資費標準,這意味著單一產品收入的下降,營運商該如何化解這對矛盾?從營運商內部數據統計看,傳統的語音和簡訊、及其他業務收入占比正不斷下降,傳統的利潤點已經風光不再;流量收入目前已占據主要位置並保持上漲趨勢,但單純的流量經營又將面臨「管道化」壓力;未來的利潤增長點要讓位於被稱為「第三條曲線」的數位化服務。電信業者該如何經營這一新鮮事物?從外部環境看,互聯網和電子商務企業借助其在各方面的優勢,已經對營運商形成了巨大的壓力,特別是在數位化服務行銷領域,傳統營運商企業已經不再具備優勢,又該如何應對互聯網企業的全面競爭?
隨著移動互聯網和物聯網時代的來臨,人和萬事萬物被廣泛地聯繫在一起。人們在聯繫的過程產生了大量的數據,例如用戶基礎資訊、網頁瀏覽記錄、歷史消費記錄、影片監控影像,等等。據此,以Google為首的互聯網公司提出了「大數據」(Big Data)的概念,並聲稱人類已經脫離了資訊時代(Information Time, IT),進入了大數據時代(Data Time,DT)。顯然,大量數據包含了非常豐富的淺層次資訊和深層次知識。對於同一競爭領域的企業,誰能獲取最大量的數據,展開最精準的資料探勘與模組建立分析,並加以細緻化的具體實施,誰便能在行業競爭中取得優勢。對於營運商企業而言,其具備的一個顯著優勢便是手握大量數據資源。如果能運用先進的資料探勘技術找出客戶的行為規律,從傳統的經驗式、粗放式、「一刀切」式的營運決策向數據化、精細化、個性化的營運決策轉型,營運商將迎來新的騰飛。上述營運模式轉型的目標,便是所謂的「智慧營運」。
目前,人類對大數據尚沒有統一的、公認的定義,但幾乎所有學者和企業都認同大數據具備四大特徵(四大挑戰):體積巨大(Volume)、類型繁多(Variety)、價值密度低(Value)、需求即時處理(Velocity)。這其中最重要的一點是類型繁多,即過去人類的資料儲備以結構化資料為主,而未來將以非結構化資料為主。回到之前提到的App行銷案例,企業基於用戶的基礎資訊、歷史消費資訊、簡單的網路行為資訊等結構化資料展開資訊建模,被認為是傳統的「基於資料探勘的智慧營運」。隨著時代的發展,企業還掌握了用戶觀看在線影片的內容數據、在營業網點接受營業員推薦的表情資訊和語言交流數據、用戶在客服熱線中的語音諮詢數據等,這些被統稱為非結構化資料,隨著語音辨識、人臉識別、語義識別等新技術的發展成熟,對非結構化資料的分析資訊已成為可能,並將獲得廣闊的商業應用空間。基於非結構化資料的資訊建模又被稱為「基於人工智慧的智慧營運」。考慮當前大部分企業的實際營運現狀,本書將主要圍繞「基於資料探勘的智慧營運」展開討論,「基於人工智慧的智慧營運」將在後續書籍中展開討論。
本書共分為九章:第1章大數據、資料探勘與智慧營運綜述,講述資料探勘的基本概念和發展史、大數據的時代特徵、當前結構化資料探勘進展、非結構化資料探勘與人工技能進展、資料探勘的主流軟體等;第2章數據統計與資料前處理,講述在資料探勘之前的資料整合、資料淨化、數據衍生、數據統計等;第3章集群分析,重點講述K-means、BIRCH、DBSCAN、CLIQUE等幾種主流經典聚類演算法;第4章分類分析,重點講述決策樹、KNN、貝氏、神經網路、SVM等幾種主流分類演算法;第5章迴歸分析,重點講述線性迴歸、非線性迴歸、邏輯迴歸等幾種主流迴歸演算法;第6章關聯分析,重點講述Apriori、FP-tree等幾種主流關聯演算法;第7章增強型資料探勘演算法,重點講述隨機森林、Bagging、Boosting等幾種主流增強演算法;第8章資料探勘在營運商智慧營運中的應用,展開講述資料探勘方法在外呼行銷、精準推送、方案適配、客戶保有、投訴預警、網路品質監控、室內定位中的應用;第9章面向未來大數據的資料探勘與機器學習發展趨勢,簡要講述資料探勘領域的前沿研究進展。
全書以運用大資料探勘方法提升企業營運業績與效率為主線。第3章至第7章組成本書的理論知識部分,在講述理論知識的同時,這部分每章都配套列舉了大量實際應用案例,及其在SPSS等分析軟體中的具體操作流程。此外,第8章從營運商實際工作中選取了大量營運和銷售案例,詳細講述了數據採集、資訊建模、模型應用與精準行銷的全部過程。
本書基於作者所帶領的研究團隊多年研究積累和在營運商企業廣泛應用應用的基礎上提煉而成。全書由曾麗麗博士組織並統稿,梁棟、張兆靜和彭木根撰寫了主要章節,研究團隊中的謝花花、柯聯興、張笑凱、魯晨、李子凡等在讀研究生參與了部分章節的寫作,胡林、唐糖等團隊外專家參與了部分章節的寫作並給出了寶貴的意見。在此對有關人員一併表示誠摯的感謝!
由於作者能力所限,疏漏之處在所難免,希望各位讀者海涵,並批評指正。
(註:本書中所提「數據」即「資料」)
作 者
1.7 現有資料探勘的主要分析軟體與系統
1.7.1 Hadoop
提到大數據和資料探勘,很多人馬上想到的就是Hadoop。說到Hadoop就不能不說Google的三篇論文。Google在2003年到2006年間發表了三篇非常有名的論文,它們分別是2003年SOSP的GFS(Google File System),2004年OSDI的MapReduce以及2006年OSDI的BigTable。這三篇論文奠定了現在主流大數據分析處理系統的理論基礎。基於這些,現今演化出各式各樣的大數據處理和分析系統。
Hadoop最開始起源於Apache Nutch,後者是一個開源的網路搜尋引擎,本身也是由Lucene項目的一部分。Nutch項目開始於2002年,一個可工作的抓取工具和搜尋系統很快浮出水面。但工程師們意識到,他們的架構將無法擴展到擁有數十億網頁的網路。到了2003年,Google發表了一篇描述Google分布式文件系統(簡稱GFS)的論文,這篇論文為他們提供了及時的幫助,文中稱Google正在使用此文件系統。GFS或類似的東西,可以解決他們在網路抓取和索引過程中產生的大量文件的儲存需求。具體而言,GFS會省掉管理所花的時間,如管理儲存結點。於是在2004年,Nutch開始寫一個開放源碼的應用,即Nutch的分布式文件系統(NDFS)。
Hadoop是一個能夠讓用戶輕鬆架構和使用的分布式運算平台。用戶可以輕鬆地在Hadoop上開發和運行處理大量數據的應用程式。它主要有以下幾個優點:
(1)高可靠性。Hadoop按位儲存和處理數據的能力值得人們信賴。
(2)高擴展性。Hadoop是在可用的電腦集叢集間分配數據並完成運算任務的,這些集叢集可以方便地擴展到數以千計的結點中。
(3)高效性。Hadoop能夠在結點之間動態地移動數據,並保證各個結點的動態平衡,因此處理速度非常快。
(4)高容錯性。Hadoop能夠自動保存數據的多個副本,並且能夠自動將失敗的任務重新分配。
(5)低成本。與一體機、商用資料倉儲以及QlikView、Yonghong Z-Suite等資料集市相比,Hadoop是開源的,項目的軟體成本因此會大大降低。
Hadoop對大數據的意義:
Hadoop得以在大數據處理應用中廣泛應用得益於其自身在數據提取、變形和加載(ETL)方面上的天然優勢。Hadoop的分布式架構,將大數據處理引擎盡可能地靠近儲存,對例如像ETL這樣的批處理操作相對合適,因為類似這樣操作的批處理結果可以直接走向儲存。Hadoop的MapReduce功能實現了將單個任務打碎,並將碎片任務(Map)發送到多個結點上,之後再以單個資料集的形式加載(Reduce)到資料倉儲裡。
2004年,Google的MapReduce論文發表,開發者在Nutch上有了一個可工作的MapReduce應用。到2005年年中,所有主要的Nutch演算法被移植到使用MapReduce和NDFS來運行。
Nutch中的NDFS和MapReduce實現的應用遠遠不只是搜尋領域,在2006年2月,Nutch中轉移出來一部分建立了一個獨立的Lucene子項目,稱為Hadoop。Yahoo對Hadoop非常感興趣,在這個時候,Doug Cutting加入了Yahoo,Yahoo為此專門提供了一個團隊和資源將Hadoop發展成一個可在網路上運行的系統。2008年2月,Yahoo宣布其搜尋引擎產品部署在一個擁有1萬個內核的Hadoop集群上。
2008年1月,Hadoop已成為Apache頂級項目,之前的無數事例證明它是成功的項目。同時圍繞Hadoop產生了一個多樣化、活躍的社區。隨後Hadoop成功地被Yahoo之外的很多公司應用,如Last.fm、Facebook和《紐約時報》《紐約時報》使用100臺機器,並基於亞馬遜的Hadoop產品EC2將4TB的報紙掃描文檔壓縮,轉換為用於Web的PDF文件,這個過程歷時不到24小時。
2008年4月,Hadoop打破世界紀錄,成為最快排序1TB數據的系統。運行在一個910結點的集群,Hadoop在209秒內排序了1TB的數據(還不到三分半鐘),擊敗了前一年的297秒冠軍。同年11月,Google在報告中聲稱,它的MapReduce實現執行1TB數據的排序只用68秒。2009年5月,有報導宣稱Yahoo的團隊使用Hadoop對1TB的數據進行排序只花了62秒。
1.7.2 Storm
2008年一家名叫BackType的公司在矽谷悄然成立,它們主攻領域是資料分析,透過即時收集的數據幫助客戶瞭解其產品對社交媒體的影響。其中有一項功能就是能夠查詢歷史記錄,當時BackType用的是標準的佇列和類似Hadoop的worker方法。很快,工程師Nathan Marz發現了其中巨大的缺點。第一,要保證所有佇列一直在工作;第二,在構建應用程式時候,不夠靈活,顯得過於重量級;第三,在部署方面也非常不方便。於是Nathan Marz開始嘗試新的解決方案,並在2010年12月提出了流(stream)的概念,將流作為分布式抽象的方法,數據之間的傳遞為流。緊接著,對於流的處理的兩個概念體「spout」和「bolt」也產生了。spout生產全新的流,而bolt將產生的流作為輸入並產出流。這就是spout和bolt的平行本質,它與Hadoop中mapper和reducer的平行原理相似。bolt只需簡單地對其要進行處理的流進行註冊,並指出接入的流在bolt中的劃分方式。最後,Nathan Marz對分布式系統頂級抽象就是「topology(拓撲圖)」——由spout和bolt組成的網路。此時,新的大資料分析和處理系統浮出水面,這就是Storm。只是在這個時候,Storm還並不出名。
接下來,Storm的設計採用了不少Hadoop的理念。由於Hadoop自身的缺陷性,它運行一段時間後經常會出現不少的「殭屍進程」,最終導致整個集群資源耗盡,而不能工作。針對這點,Storm做了額外的設計,避免「殭屍進程」,從而使得整個系統的可用性和可靠性大大提高。
2011年5月對BackType是個重要的日子,因為他們被Twitter收購了。借助Twitter的品牌效應,2011年9月19日Storm正式發布。發布會獲得了巨大的成功,Storm當時登上了Hacker News的頭條。由於其良好的即時處理和分析的表現,人們稱Storm為「即時的Hadoop」。
開源的短短的三年後,Storm在2014年9月17日正式步入Apache頂級項目的行列。到如今,Storm已被廣泛應用在醫療保健、天氣、新聞、分析、拍賣、廣告、旅遊、報警、金融等諸多領域。
Storm的優點:
(1)簡單的程式模型。類似MapReduce降低了平行批處理的複雜性,Storm降低了進行即時處理的複雜性。
(2)可以使用各種程式語言。你可以在Storm上使用各種程式語言。默認支持Clojure、Java、Ruby和Python。要增加對其他語言的支持,只需實現一個簡單的Storm通訊協議即可。
(3)容錯性。Storm會管理工作進程和結點的故障。
(4)水平擴展。運算是在多個線程、進程和伺服器之間平行進行的。
(5)可靠的消息處理。Storm保證每個消息至少能得到一次完整處理。任務失敗時,它會負責從消息源重試消息。
(6)快速。系統的設計保證了消息能得到快速處理,使用ØMQ作為其底層消息佇列。
(7)本地模式。Storm有一個「本地模式」,可以在處理過程中完全模擬Storm集群。這讓你可以進行快速開發和單元測試。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。