建模分析師與演算法工程師的主要區別
大家晚上好,我是新來的實習生小模君,前幾天小智老師給我科普了資料探勘的基礎知識,頗有收穫,於是就趁小天今天有事休假冒個泡跟大家分享一番。
資料探勘,英文名叫Data mining,一般是指從大型資料庫中將隱藏的預測資訊抽取出來的過程,而更為精確的解釋則是“從資料中挖掘知識”。
這個概念乍眼一看有點懵,畢竟從資料中挖掘出知識的說法是小模君以前沒有接觸過的。
而就目前而言,資料探勘大致上是可以分為四個層次:純粹資料加工、傻瓜式挖掘、較為自由的挖掘以及演算法拆解和開發。
(一)純粹資料加工
這一層次主要側重於變數的加工和預處理,主要的加工工具就是大家比較熟悉的SQL和SAS base。
從源系統或資料倉儲,對相關資料進行提取、加工、衍生處理,生成各種業務表。緊接著,以客戶號為主鍵,將這些業務表整合彙總出一張大寬表,而這張寬表就是所謂的“客戶畫像”。
(二)傻瓜式挖掘
傻瓜式操作的優點就是讓資料探勘變得入手快且簡單,但是,眾所周知傻瓜式操作必然存在缺陷,比如挖掘的過程會很單調無趣,沒辦法批次運算模型等等。而較為典型的工具有SAS EM和clementine。
這兩種工具已經嵌入了很多較為傳統成熟的演算法、模組和節點(如大家很熟悉的神經網路以及前幾天小天提到的決策樹等)。只需滑鼠的托拉拽,基本上就可以滿足你挖掘資料的需求。
因此,在熟練操作這些工具的情況下,若想進一步提升建議需要拋棄它們。
(三)較為自由的挖掘
在這個層次,典型的工具就是R和Python這兩個開源工具,前者是統計學家開發的,而後者則是計算機學家開發的。
它們不但有較多前沿且成熟的演算法包呼叫,還能對既有的演算法包進行修改調整,以適應分析需求,十分的靈活。此外,Python在文字、社會網路方面的處理,功能比較強大。
(四)演算法拆解和自行開發
到了這一層次,說明你們已經擁有了重新編寫演算法程式碼的能力,比如用自己的程式碼實現邏輯迴歸運算過程,甚至根據業務需求和資料特點,更改其中一些假定和條件,以提高模型運算的擬合效果。
一般而言,大多數人會利用python、c、c++進行演算法拆解和開發。
可以看到,四個層次中出現最多的就是python,因此可以這麼說掌握了python,掌握資料探勘也就不在話下了!
而根據當前網際網路的招聘和對技能的需求來說,當你已經順利度過前三個層次的時候,建模分析師的職位是妥妥的,如果再更進一步到達了第四層次,相信你就是當之無愧的演算法工程師了!
此時,我們最先要做的就是了解資料探勘的大致流程。
(一)資料讀取
既然是叫資料探勘,那麼可以看出資料是重中之重,因此第一步就應該把資料讀取出來。
(二)特徵理解分析
資料讀出來了,但並不代表這些資料都是有用的,因此需要根據資料的特徵進行理解和分析,考慮變數與結果的關係,最後繪圖得出結論,輔助判斷,進而選出有價值的資料。
(三)資料清洗與預處理
選出了有價值的資料就可以馬上建立模型了吧?別想太多,還得先清洗和預處理資料。雖然這一步看似很簡單,但是實際上它是整個資料探勘過程中最耗時的,大概佔了70-80%的時間。
如何對資料進行恰當的處理使得最終能夠獲取最合適的資料是這一步需要解決的。請記住,資料決定了模型的上限。
(四)建立模型
完成了最重要的第三步之後,就可以開始建模了,透過多種演算法的對比以及參考他人的策略進行建模與最佳化,最終得出合適的模型。
基本瞭解完資料探勘的一些基礎知識,但是如何才能掌握資料探勘,成為一名演算法工程師呢?與其自學而苦苦不得入門,還不如跟隨經驗豐富的老師快速提升更為有效。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31530407/viewspace-2152864/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 重建模與重構的區別
- HTTP代理與SOCKS代理的主要區別HTTP
- Java中Array與ArrayList的主要區別Java
- MPS與MRP的主要區別
- 一文了解資料分析師與商業分析師的區別(一)
- 一文了解資料分析師與商業分析師的區別(二)
- 動態IP與靜態IP的主要區別
- 演算法與邏輯的區別演算法
- SOCKS代理與HTTP代理主要區別分析HTTP
- 機器學習中演算法與模型的區別機器學習演算法模型
- 幽默:程式設計師與軟體工程師的區別程式設計師軟體工程工程師
- HTTPS 和 HTTP 的主要區別HTTP
- 資料探勘與資料分析的主要區別是什麼
- EJB1.1與EJB2.0的主要區別都那些阿???
- 常用JFC主要區別梳理
- 事件風暴EventStorming與事件建模EventModeling的區別 | rafalmaciag事件ORMMac
- ??與?:的區別
- 資料科學家與機器學習工程師的區別? - kdnuggets資料科學機器學習工程師
- XML和HTML的主要區別、 jQuery 能做什麼?JavaScript中的“=、==、===”區別?XMLHTMLjQueryJavaScript
- HTTP代理和SOCKS代理的主要區別HTTP
- 基礎-JAVA集合型別主要區別Java型別
- 貪心演算法與動態規劃的區別演算法動態規劃
- Python2.x與3.x版本有哪些主要的區別?Python
- 5個macOS 和 Linux的主要區別MacLinux
- Mysql兩種主要資料引擎的區別MySql
- 公有云和私有云的主要區別在哪裡
- MySQL的@與@@區別MySql
- mybatis #與$的區別MyBatis
- Null 與 “” 的區別Null
- &與&&, |與||區別
- MD5演算法16位與32位的區別演算法
- 專案與專案群管理:主要區別和相似之處
- in與exist , not in與not exist 的區別
- QuickBI助你成為分析師-資料建模(一)UI
- 快速掌握Java幾種排序演算法的區別與排序演算法的應用Java排序演算法
- 演算法與資料結構系列 ( 一 ) - 演算法的級別區分理解演算法資料結構
- HTTP和HTTPS有什麼主要的區別?HTTP
- post方式get方式提交表單的主要區別