一、數據挖掘的層次
一直想整理下對數據挖掘不同層次的理解,這也是這兩年多的時間里面,和很多金融領域、互聯網做數據相關工作的小伙伴,聊天交流的一些整理和歸納。大概可以分為四類:
(一)純粹的數據加工
側重于變量加工和預處理, 從源系統或數據倉庫,對相關數據進行提取、加工、衍生處理,生成各種業務表。然后,以客戶號為主鍵,把這些業務表整合匯總,最終可以拉出一張大寬表,這張寬表就可以稱之為“客戶畫像”。即,有關客戶的很多變量和特征的集合。
在這個階段,主要的數據加工工具為SQL和SAS base。
(二)傻瓜式的挖掘工具
較為典型的就是SAS EM和clementine,里面嵌入很多較為傳統成熟的算法、模塊和節點(例如邏輯回歸、決策樹、SVM、神經網絡、KNN、聚類等)。 通過鼠標的托拉拽,流程式的節點,基本上就可以實現你挖掘數據的需求。
傻瓜式操作的優點就是使得數據挖掘,入手非常快,較為簡單。但是,也存在一些缺陷,即,使得這個挖掘過程變得有點單調和無趣。沒辦法批量運算模型,也沒辦法開發一些個性化的算法和應用。用的比較熟練,并且想要進一步提升的時候,建議把這兩者拋棄。
(三)較為自由的挖掘工具
較為典型的就是R語言和Python。這兩個挖掘工具是開源的,前者是統計學家開發的,后者是計算機學家開發的。
一方面,可以有很多成熟的、前沿的算法包調用,另外一方面,還可以根據自己的需求,對既有的算法包進行修改調整,適應自己的分析需求,較為靈活。此外,Python在文本、非結構化數據、社會網絡方面的處理,功能比較強大。
(四)算法拆解和自行開發
一般會利用Python、C、C++,自己重新編寫算法代碼。例如,通過自己的代碼實現邏輯回歸運算過程。甚至,根據自己的業務需求和數據特點,更改其中一些假定和條件,以便提高模型運算的擬合效果。尤其,在生產系統上,通過C編寫的代碼,運行速度比較快,較易部署,能夠滿足實時的運算需求。
一般來說,從互聯網的招聘和對技能的需求來說,一般JD里面要求了前三種,這樣的職位會被稱為 “建模分析師” 。但是如果增加上了最后一條,這樣的職位或許就改稱為 “算法工程師” 。
二、模型的理解:傳統的和時髦的
據理解, 模型應該包括兩種類型。一類是傳統的較為成熟的模型,另外一類是較為時髦有趣的模型。 對于后者,大家會表現出更多的興趣,一般是代表著新技術、新方法和新思路。
(一)傳統的模型
傳統的模型,主要就是為了解決分類(例如決策樹、神經網絡、邏輯回歸等)、預測(例如回歸分析、時間序列等)、聚類(kmeans、系譜、密度聚類等)、關聯(無序關聯和有序關聯)這四類問題。這些都是較為常規和經典的。
(二)時髦有趣的模型
比較有趣、前沿的模型,大概包括以下幾種類型,即 社會網絡分析、文本分析、基于位置的服務(Location-Based Service,LBS)、數據可視化等。
它們之所以比較時髦,可能的原因是,采用比較新