個性化推薦系列之初步認識機器學習
05-04
我們都知道,關於機器學習,科技界的定義是,可以利用機器學習模擬人的思維方式去處理問題/數據;但是光看這個定義,還是覺得只是看起來高大上,到底是怎麼模擬的,機器到底在學習什麼,還是不明白;最近看了一些這方面的東西,總結一下自己的一些理解,關於機器學習到底是怎麼學習的,到底是在學習什麼;----------------------------------------------------------------------------------------------------
推薦閱讀:
我們先從一個例子說起;
一輛車,我們知道它一箱油(100L)可以跑100公里,半箱油(50L)即可以跑50公里;那麼問題來了,當它只有80L油的時候可以跑多遠?很多人都會說是80公里;為什麼會說是80公里呢?那是因為前面我們知道100L是100公里、50L是50公里,我們已經有了一個規律,有了一個參考值,所以很快就可以得出80L跑80公里;在我理解下來,機器學習應該也是這樣的套路;利用已有的數據總結出一套規律,然後再用這個規律去預測另一個結果;
----------------------------------------------------------------------------------------------------說到這裡,就要引入幾個新的概念,樣本數據和訓練模型;我們在學習概率論的時候就有過這個說法,用來做數據統計的數據叫做樣本,後面通過樣本總結出來的運算公式就叫訓練模型;在上面的例子中,前面的100L對應100公里,50L對應50公里,這兩組數據就是樣本數據;通過兩者總結出來的1L對應1公里就是這個例子的訓練模型;我們以往的計算方法是,給定一個規律,然後通過這個規律來做一些數據的計算;但是機器學習不是,機器學習是我們給它一堆數據,讓它自己去通過數據總結訓練出一套模型,然後用這套模型去解決數據預測問題;
----------------------------------------------------------------------------------------------------說了這麼多,也沒有機器學習什麼事情啊,到底機器學習是什麼?上文說的模型到底是個什麼玩意兒?我們來看下一個例子;依然用前面的例子,一輛車行駛,2小時後離出發點80公里,3小時後離出發點100公里,請問4小時後離出發點多遠?如果我們把這個問題,用機器學習來解決的話,就相當於是給機器一組樣本數據1:(2,80)、(3、100),然後求(4,?);這個業務場景,學習過樹立統計的都很清楚地知道,這個數據是呈線性的;這個時候我們可以考慮引入一個簡單的二次函數y=kx+b作為這個問題的訓練模型來解決這個問題;
我們把樣本數據(2,80)、(3、100)代入這個二次函數的訓練模型,很快就可以得出這個訓練模型的表達式為y=40x+40;得出這個訓練模型之後,把之前的樣本數據代入做檢查,以保證準確性;這個時候,我們把要求的數據x=4代入這個模型中,很快就可以得出y=200,也就是說4小時後汽車離出發點200公里;----------------------------------------------------------------------------------------------------如果我們現在有樣本數據2:(2,80)、(2.1,85)、(2.6、88.6)、(2.8,88.1)、(2.9,89.4),那麼根據這組樣本數據機器又會重新計算出一個訓練模型公式,然後將樣本中某些數據作為樣本數據來檢驗這個訓練模型,這個模型公式將能夠更加準確地描述汽車行駛過程中時間x與距離出發點y的線性關係;
我們前面已經得出了樣本數據1業務場景的訓練模型是y=40x+40,這個模型是通過2組數據得出來的,這組數據樣本量太少;如果有更多的樣本數據,例如樣本數據2,這個模型可以計算的更加準確;這就是機器的學習能力,機器學習會根據樣本數據量不斷調整訓練模型,從而能夠更加精準地去解決數據問題;----------------------------------------------------------------------------------------------------到這裡,我們要對機器學習做一個更加細緻的定義:機器學習就是利用現有的樣本數據去創建一套完善的訓練模型,然後用現有數據不斷檢驗訓練這個模型,改良這個模型,通過這個訓練模型來解決後續的數據預測問題;----------------------------------------------------------------------------------------------------當然了,我們知道現實中的大數據預測肯定不會這麼簡單的,一個y=kx+b就能解決,但是機器學習基本上都是這樣一個套路;1)、首先機器會通過大量樣本數據之間的關聯關係去總結一套模型;2)、機器利用樣本數據來訓練這個模型;訓練時機器會把樣本數據分為訓練數據集和測試數據集;3)、利用經過大量樣本數據訓練和測試的訓練好的模型,來解決預測數據問題;推薦閱讀:
※Pinterest暴力版人工智慧個性化推薦系統
※推薦系統圈的高端聚會這十年在談些什麼?
※深度學習演算法在個性化推薦場景中的應用
※聊一聊個性化