相信大家都有過等人的經歷,這并不是一件多么愉快的事情。

最近洞察君就開始不守時了,上次約他下午五點吃烤魚,結果等到六點才來。

今天他約我晚上七點去唱K,我腦海中立馬蹦出一個問題:他又會遲到嗎?

于是我迅速調動我記憶,看看我們相約的次數中,他遲到占了多大的比例,而我利用這個比例來預測他這次遲到的可能性。

在我正在準備在紙上計算時,我突然想起來,這種依據數據來做出判斷的辦法,不就是大家都知其然不知其所以然的“機器學習”么

于是,我果斷拒絕了洞察君的邀請,發誓要給大家講清楚,到底什么是機器學習!

Mchine——Machine Learning——Better

首先請允許我甩出一個定義:

從廣義上來說,機器學習是一種能夠賦予機器學習的能力,以此讓它完成直接編程無法完成的功能的方法。

但從實踐的意義上來說,機器學習是一種通過利用數據,訓練出模型,然后使用模型來進行預測的一種方法。

看不懂沒關系,我給你講個小故事,保準你懂得很徹底!

 

就拿國民話題“房子”來說吧。假如我現在看上了城郊的一棟大別墅,想賣掉我村里的一套100平的房子,我應該給它標上怎樣的價格呢? 

相信大家心中已經有了答案。由于在不同地段的房價差距判若云泥,同地段不同戶型之間的差距也十分顯著,所以我只能通過調查跟我同地段、同戶型的房價,來作為我定價的參考。

如果我能從獲得的數據中找出面積與價格的規律,那么我就可以較準確地得到房子的價格。于是,我把收集到的數據在坐標圖中擬合出一條直線,讓它盡量“穿過”更多的點,并且與其他各點的距離盡可能的小。

  

通過這條直線,我獲得了一個能夠最佳反映房價與面積的規律,同樣可以獲得一個可以用于計算準確房價的函數。

房價=面積*a+b

假設a = 0.8,b = 60,則我的房價=100 * 0.8 + 60 = 140萬,從統計學意義上來說,這是一個最合理的預測值。

在求解過程中透露出了兩個信息:

第一:房價模型是根據擬合的函數類型決定的。如果是直線,那么擬合出的就是直線方程;如果是其他類型的線,例如拋物線,那么擬合出的就是拋物線方程。機器學習有眾多算法,一些強力算法可以擬合出復雜的非線性模型,用來反映一些不是直線所能表達的情況。

第二:如果數據量越多,得到的模型就能考慮到越多的因素,由此對于新情況的預測效果可能就越好。這是機器學習界“數據為王”思想的一個體現。一般來說,數據越多,最后機器學習生成的模型預測的效果越好。

通過擬合直線的過程,我們可以對機器學習過程做一個完整的回顧:

首先,我們需要在計算機中存儲一定的相關數據(等同于線下收集數據);接著,我們將這些數據通過機器學習算法進行處理(等同于擬合直線),這個過程在機器學習中叫做“訓練”,處理的結果一般稱之為“模型”(等同于得到方程),可以被我們用來對新的數據進行預測。

“訓練”與“預測”是機器學習的兩個過程,“模型”則是過程的中間輸出結果,“訓練”產生“模型”,“模型”指導 “預測”。

好吧,說了這么多,其實洞察君并沒有約我

還有,我在村里也根本沒有房。

但你們如果明白了什么是機器學習,也不枉我一片苦心了