數據挖掘 與 Web開發何去何從

(0)引子

下面以現實生活中的一個實例引出本博客的探究點,也許類似的情況正發生在你的身邊。

小弟工作5年了,最近有點迷茫。

上一份工作在一家比較大的門戶網站做web開發和移動互聯網數據挖掘(人手比較緊,同時做)。後來跳槽到BAT之一做數據挖掘。

數據量倒是非常大,但是感覺沒有多大意思——就是分析日誌,弄報表而已。

之前已經的高性能web開發經驗完全用不上,感覺自己還是喜歡做開發,能和業務相關的。

但是數據挖掘大,數據最近挺火的,也是比較糾結。

其實,這也是很多人的癥結,包括我個人也是迷茫~~~在此,請求博友們獻言獻策!不勝感激!


(1)大數據與數學的恩怨
一是公司原來沒有一項業務,現在要把一些機器學習這個東西跑起來(從無到有)。二是在你接手的時候公司已經有一定基礎了,現在要把性能調上去(從差到優)。前者完全不用任何數學,先用別人有的模塊/代碼把系統擼起來是王道。後者看具體問題,大多數情況不用數學。在偏研究的地方比如Google X的某些部門還是有用的,可能需要比較好的數學功底,一些deep learning(機器學習)的機構,如百度鳳巢研究院或者微軟亞洲研究院等。但是,對於一般的數據分析、數據挖掘項目組,特別是對於某一分類器,大多數時候還是看feature找的好不好,找到一個優秀的feature賽過苦逼的在那裏調優一萬年(身在以KPI優先的公司和拿來就用的大環境,利用已有的開源Lib包)。學好線性代數,統計和凸優化就出門打怪吧,攢系統經驗和dirty trick纔是王道。當然我也不是說就不要搞數學,只是如果你去公司的話,在學好線代統計凸優化的前提下,同樣的時間花在學計算機系統的構建和系統性的思考方法上,比學習數學更划算。在大部分的ML研究裏,還是微積分和線性代數、概率統計的功底最重要。


(2)大數據衍生的工作崗位

數據研發工程師側重於研發,這塊我瞭解的不多,我理解的是主要是數據倉庫開發那塊。

數據分析師側重分析,主要是結合業務方需求做些相關的數據分析工作,發現問題,找出問題,提出解決方案。

數據挖掘側重挖掘,主要用些數據挖掘算法或者機器學習算法做些分類和預測或者其它工作,比如說流失,違約,推薦等等。

數據產品經理偏重產品經理,主要是負責數據產品的相關pd工作。數據產品就是基於數據分析或者挖掘研發出來的產品。

如果硬要分析的話,數據研發工程師要求有一定的開發功底,工作偏向於數據系統的開發。

數據分析師更像傳統的BI。而數據挖掘工程師更是以特定需求爲目標的數據挖掘工作,比如做人羣的偏好挖掘。數據產品經理應該就是產品方向了,以數據業務/產品爲目標的產品經理。說到最後,其實除產品經理崗位的另3個崗位,工作職責還是很相似的,主要工作內容以部門要求爲準。

引用百科的說法是,數據研發工程師:搭建基礎設施,讓大數據的存儲、處理、計算能在要求的時間內,以合理的成本完成。數據分析師:發現問題,分析問題,得出結論,爲決策作支持。數據挖掘工程師:通過建立模型,預測、區分感興趣的對象。

下面通過幾張圖說明:








(3)DM 與 ML

1. DM更應用化,ML更偏研究與算法(所以公司一般有數據挖掘工程師,機器學習研究員)

2. ML的問題經常是明確定義的,包括數據集及目標(且數據集是固定的);DM通常只定義目標,甚至連目標也沒有(給你一堆數據,給我找出有價值、有意思的東西出來);

   在定義了目標的情況下,DM可以使用非固定的數據源

3. ML只是DM使用的方法的一種,DM還可以使用其他的方法(比如統計,比如直接看數據)

4. 作爲一門交叉學科,ML是DM的一門重要基礎,但是DM還有其他的基礎學科,最重要的是統計與數據庫

5. DM的重點是數據。所以做DM的人可能花80%的時間在用各種方式倒騰數據上,而只花會20%的時間在算法上;而對ML可能相反,80%的時間都在讀Paper,試驗算法上,20%的時間用在處理數據上


(4)數據挖掘 之 文本挖掘 

數據挖掘(Data mining),又譯爲資料探勘、數據採礦。它是數據庫知識發現(英語:Knowledge-Discovery in Databases,簡稱:KDD)中的一個步驟。數據挖掘一般是指從大量的數據中通過算法搜索隱藏於其中信息的過程。數據挖掘通常與計算機科學有關,並通過統計、在線分析處理、情報檢索、機器學習、專家系統(依靠過去的經驗法則)和模式識別等諸多方法來實現上述目標。

文本挖掘有時也被稱爲文字探勘、文本數據挖掘等,大致相當於文字分析,一般指文本處理過程中產生高質量的信息。高質量的信息通常通過分類和預測來產生,如模式識別。文本挖掘通常涉及輸入文本的處理過程(通常進行分析,同時加上一些衍生語言特徵以及消除雜音,隨後插入到數據庫中) ,產生結構化數據,並最終評價和解釋輸出。'高品質'的文本挖掘通常是指某種組合的相關性,新穎性和趣味性。典型的文本挖掘方法包括文本分類,文本聚類,概念/實體挖掘,生產精確分類,觀點分析,文檔摘要和實體關係模型(即,學習已命名實體之間的關係) 。

借用高斯的一句話並進行改寫送給所有做數據挖掘、文本挖掘的人。“對數據挖掘、文本挖掘的無知不是沒有相關知識,而是過於依賴數據挖掘、和文本挖掘而忽視其他”。

文本數據挖掘(Text Mining)是指從文本數據中抽取有價值的信息和知識的計算機處理技術。顧名思義,文本數據挖掘是從文本中進行數據挖掘(Data Mining)。從這個意義上講,文本數據挖掘是數據挖掘的一個分支。

文本挖掘方法:1.文本分類,是一種典型的機器學習方法,一般分爲訓練和分類兩個階段。2.文本聚類,是一種典型的無監督式機器學習方法,聚類方法的選擇取決於數據類型。3.信息抽取。4.摘要。5.壓縮。其中,文本分類和聚類是兩種最重要最基本的挖掘功能。

挖掘工具:1.IBM DB2 intelligent Miner。2.SAS text miner。3.SPSS Text Mining。4.DMC TextFilter(純文本抽出通用程序庫)

應用:文本挖掘傳統商業方面的應用主要有,企業競爭情報、CRM、電子商務網站、搜索引擎,現在已擴展到醫療、保險和諮詢行業。


(5)人工智能、機器學習、統計學和數據挖掘的前世今生
我假定題主是想得到一個清晰的圖,上面有各個領域清晰的分界線。因此,在這裏我嘗試用我最簡單的方式來解釋這個問題。

機器學習是一門涉及自學習算法發展的科學。這類算法本質上是通用的,可以應用到衆多相關問題的領域。

數據挖掘是一類實用的應用算法(大多是機器學習算法),利用各個領域產出的數據來解決各個領域相關的問題。

統計學是一門研究怎樣收集,組織,分析和解釋數據中的數字化信息的科學。統計學可以分爲兩大類:描述統計學和推斷統計學。描述統計學涉及組織,累加和描繪數據中的信息。推斷統計學涉及使用抽樣數據來推斷總體。

機器學習利用統計學(大多是推斷統計學)來開發自學習算法。
數據挖掘則是在從算法得到的結果上應用統計學(大多是描述統計學),來解決問題。
數據挖掘作爲一門學科興起,旨在各種各樣的行業中(尤其是商業)求解問題,求解過程需要用到不同研究領域的不同技術和實踐。
1960年求解問題的從業者使用術語Data fishing來稱呼他們所做的工作。1989年Gregory Piatetsky Shapiro使用術語knowledge Discovery in the Database(KDD,數據集上的知識發掘)。1990年一家公司在商標上使用術語數據挖掘來描述他們的工作。現如今現如今數據挖掘和KDD兩詞可以交換使用。

人工智能這門科學的目的在於開發一個模擬人類能在某種環境下做出反應和行爲的系統或軟件。由於這個領域極其廣泛,人工智能將其目標定義爲多個子目標。然後每個子目標就都發展成了一個獨立的研究分支。

這裏是一張人工智能所要完成的主要目標列表(亦稱爲AI問題)
1、Reasoning(推理)
2、Knowledge representation(知識表示)
3、Automated planning and scheduling(自動規劃)
4、Machine learning(機器學習)
5、Natural language processing(自然語言處理)
6、Computer vision(計算機視覺)
7、Robotics(機器人學)
8、General intelligence or strong AI(通用智能或強人工智能)
正如列表中提到的,機器學習這一研究領域是由AI的一個子目標發展而來,用來幫助機器和軟件進行自我學習來解決遇到的問題。
自然語言處理是另一個由AI的一個子目標發展而來的研究領域,用來幫助機器與真人進行溝通交流。
計算機視覺是由AI的目標而興起的一個領域,用來辨認和識別機器所能看到的物體。
機器人學也是脫胎於AI的目標,用來給一個機器賦予實際的形態以完成實際的動作。
它們之間有層次等級的區分嗎,應該是怎樣一回事?
解釋這些科學和研究層次關係的一個方法是分析其歷史。

科學和研究的起源

統計學——1749年
人工智能——1940年
機器學習——1946年
數據挖掘——1980年
統計學的歷史公認起源於1749年左右,用來表徵信息。研究人員使用統計學來表徵國家的經濟水平以及表徵用於軍事用途的物質資源。隨後統計學的用途擴充到數據的分析及其組織。
人工智能的歷史碰巧存在兩種類型:經典的和現代的。經典人工智能可在古時的故事和著作中看得到。然而,1940年當人們在描述用機器模仿人類的思想時纔出現了現代人工智能。
1946年,作爲AI的分支,機器學習的起源出現了,它的目標在於使機器不通過編程和明確的硬接線進行自我學習來對目標求解。

是否可以這樣說,它們是利用不同方法解決相似問題的四個領域?

可以這麼來說(統計學,人工智能和機器學習)是高度相互依賴的領域,沒有其他領域的引領和幫助,他們不能夠單獨存在。很高興能看到這三個領域是一個全局領域而非三個有所隔閡的領域。
正如這三個領域是一個全局領域,它們在解決共同目標時發揮了自己的優勢。因此,該方案適用於許多不同領域中,因爲隱含的核心問題是一致的。
接下來是該數據挖掘出場了,它從全局獲取解決方案並應用到不同的領域(商業、軍事、醫學、太空)來解決同一隱含本質的問題。這也是數據挖掘擴大其受歡迎程度的時期。

我希望我的解釋已經回答了答主所提問一切疑問,我相信這能清晰地幫助任何一個想要理解這四個領域關鍵點的人們。如果你對該話題有任何想要說的或者要分享的,請在評論裏寫下你的想法。

(6)總結


目錄---相關文章

快速學Python 和 易犯錯誤(文本處理)

Python文本處理和Java/C比對

十分鐘學會Python的基本類型

快速學會Python(實戰)

大數據處理之道(十分鐘學會Python)



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章