計算技術通常用來分析數據,而理解數據則依賴于機器學習。多年來,對于大多數開發者來說,機器學習卻是非常遙遠、一直是難以企及的。
這可能是現在收益最高,也是最受歡迎的一項技術之一。毫無疑問——作為開發人員,機器學習是一個能夠大展身手的舞臺。
圖1:機器學習的構成
機器學習是簡單數據檢索與存儲的合理擴展。通過開發各種組件,使計算機更加智能學習和發生行為。
機器學習使得挖掘歷史數據和預測未來趨勢成為可能。你可能還沒意識到,但的確已經在使用機器學習,并受益頗多。與機器學習有關的例子很多,如搜索引擎產生結果、在線推薦、廣告投放、欺詐檢測以及垃圾郵件過濾等。
機器學習依賴數據進行決策。直覺雖然重要,但卻也很難超越經驗數據。
機器學習的各個方面
一旦你開始深入探索機器學習,你會遇到以下幾個問題:
1. 有監督與無監督的學習
2. 分類
3. 馬爾科夫模型、貝葉斯網絡等
Mahout和Hadoop
Apache Mahout項目的目的是建立一個可擴展的機器學習庫。
大數據分析與hadoop之間存在一定程度的重疊
Mahout內置聚類、分類以及協同過濾等算法。除此之外還有:
1. 基于矩陣分解的推薦系統
2. K-均值,模糊k-均值聚類算法
3. 隱含狄利克雷分配算法
4. 奇異值分解
5. 邏輯回歸分類器
6. (互補)樸素貝葉斯分類器
7. 隨機森林分類器
機器學習曾經需要復雜的軟件與高端的計算機,以及數據科學家。。而對于現在的機器學習,即預測分析來講,所需要的是一個全管理的云服務。
通過使用拖拽(drag-and-drop)與一些數據流圖就可以進行一些實驗,就如寫代碼一般利用起高大上的算法。
數據科學家用R編寫代碼
對于統計與數據挖掘的來說,R是一個很受歡迎的開源項目。好消息是R能夠很容易的集成到ML Studio中。我有很多朋友在使用機器學習的功能語言,如F#。但是很顯然的,R在此領域仍占統治地位。
數據挖掘的測驗與調查顯示,近年來R受歡迎的程度逐漸增強。R是由新澤西的Auckland大學的Ross Ihaka 與Robert Gentleman發明的,目前由R核心開發組(R Development Core Team)負責研發,其中Chambers也是開發成員之一。R的命名主要是根據前兩個R作者名字的首字母。R是一個GNU項目,主要是用C語言與Fortran寫的。
如何進行數據分析
理解機器學習的最好方法就是將分析分解為3個問題:
1. 發生了什么?
a) 從歷史角度去看
2. 將發生什么?
a) 預測未來
3. 下一步應該怎么做?
a) 規范與指引
分析過程中大家扮演什么角色
1. 信息工作者
a) 通常使用自助服務工具Power BI:Office 365的Power BI是一種自我服務的事務智能解決途徑,能夠通過BI Excel 與Office 365給信息工作者提供數據分析與鑒別數據深層事務預測可視化的能力。
2. IT專家
a) 涉及數據轉換、數據倉庫、創建數據分析立方體及數據建模
3. 數據科學家
a) 深層次的技術與技能,包括編碼、數學、統計以及概率
b) 能夠通過一系列技術將概率用于預測(如未來18小時內價格上漲的概率為42%)
c) 如蒙特卡羅(Monte Carlo)模擬,模型參數化
d) 數據科學家應具備的素質
i. 領域知識
ii. 對于科學方法的清晰理解:目標、假設、驗證、透明度
iii. 擅長數學與統計學
iv. 求知欲與極強的思考能力
v. 圖形化描述與溝通能力
vi. 高級計算與數據管理能力
學術背景
如果你想進入學校,通過學習成為一個數據科學家,可選擇的課程如下:
1. 應用數學
2. 計算機科學
3. 經濟學
4. 統計學
5. 工程學
從數據科學中受益的行業包括:
金融服務業
電信業
信息技術
制造業
公共事業
公共衛生
市場