在當前的推薦系統中,不少使用了機器學習,有些已經用到了深度學習。那麼,機器學習就等同於一堆的算法嗎?算法
答案是:機器學習≠算法。編程
當咱們打開一本教科書,或者大學的教學大綱,一般看到的都是一堆的算法列表。機器學習
這也讓你們形成了這樣的誤解:機器學習就是掌握一系列的算法。其實,機器學習並不止步於算法,咱們能夠把它看作是解決問題的一種綜合方法。咱們看到的一個個獨立的算法,只不過是難題的一角,剩下的難題是咱們該如何正確地使用這些算法。性能
機器學習,就是教計算機分析數據,發現其中規律,以便人們進行預測或決定的實踐。學習
對於真正意義上的機器學習來講,計算機必須具有分析數據中沒法經過編程得出的規律的能力。測試
示例:spa
假如一個小孩子在家裏玩,忽然,他看到一支蠟燭!因而,他向蠟燭的方向慢慢走去。
設計
出於好奇,他用手指指着燭光;
「哇!」他大喊,同時把手收回來;
「嗚嗚……那個會發光的紅色東西好燙!」
兩天以後,他來到廚房裏,看到了爐子。一樣,他又很是好奇。3d
他好奇得不得了,內心想要不要用手摸一下;
忽然,他發現這個東西也會發光,也是紅色的!
「啊……」他自言自語道,「我不要再痛一次了!」
他想起來紅色且會發光的東西會「痛」,因而就離開爐子去其餘地方了。
說得更清楚一些,由於這個孩子從蠟燭中本身推斷得出了某種結論,那咱們就稱之爲「機器學習」。blog
這個結論就是:「紅色且會發光」意味着「疼痛」;
若是這個孩子離開爐子,是由於父母告誡他的話,那就是「明確的程序指示」,而不是機器學習了。
模型-從數據中得出的一組模式;
算法-用於訓練某個模型的專門的ML過程;
訓練數據-算法用來訓練模型的數據集;
測試數據-用於客觀評估模型性能的新數據集;
特徵-數據集中用來訓練模型的變量;
目標變量-用於預測的某個特定變量;
示例:
假設咱們有一組包含150個小學生信息的數據集,如今但願經過他們的年齡、性別和體重預測他們的身高。
咱們如今有150組數據點、1個目標變量(身高)、3個特徵(年齡、性別、重量)。接下來會把全部數據分爲兩個子集:
其中,120組會被用來訓練不一樣的模型(訓練集),其他的30組用來選擇最佳模型(測試集)。
在學術界,機器學習始於並會一直專一於其中某個算法。可是,在工業界,咱們首先得爲工做所需選擇正確的機器學習任務。
· 任務是算法的特定目標。
·只要選擇正確的任務,算法就能夠交換進出完成任務。
·實際上,咱們會嘗試多種不一樣算法,由於極可能咱們一開始不知道哪一種算法最適合數據集。
機器學習兩種最多見的任務類別是監督學習和無監督學習。
監督學習包括面向「標記」好的數據的任務(換言之,咱們有一個目標變量)。
· 在實踐中,它一般是用做建模預測的高級形式。
· 每一組數據點必須正確標記。
· 只有這樣才能創建一個預測模型,由於咱們必須在訓練時告訴算法什麼是「正確」的(也就是咱們說的「監督」)。
· 迴歸是建模連續目標變量的任務。
·分類是對分類目標變量進行建模的任務。
無監督學習包括面向「未標記」數據的任務(換言之,沒有目標變量)。
· 在實踐中,這種形式一般用做自動數據分析或自動信號提取。
· 未標記的數據沒有預先肯定的「正確答案」。
· 容許算法直接從數據中學習模式(即沒有「監督」)。
· 聚類是最多見的無監督學習任務,用於查找數據中的組。
如何始終如一地構建有效的模型以得到最佳效果。
#1:熟練的廚師(人類指導)
首先,即便咱們是在「教電腦自學」,但在這個過程當中,人的指導也起着很大的做用。
正如咱們所看到的,您須要在此過程當中作出無數項決策。
事實上,第一個重大決策就是該如何規劃咱們的項目,從而確保成功。
#2:新鮮食材(乾淨且相關的數據)
第二個基本要素是數據的質量。
不管咱們使用哪一種算法,垃圾輸入=垃圾輸出。
專業的數據科學家將大部分時間花在瞭解數據,清理數據和設計新功能上。
#3:不要過分烹飪(避免過分擬合)
機器學習中最危險的陷阱之一就是過分擬合。過分擬合模型會「記住」訓練集中的噪聲,而不是學習真正的基礎模式。
· 對衝基金中的過分擬合可能會形成數百萬美圓的損失。
· 醫院內的過分擬合可能會致使數千人喪生。
對於大多數應用來講,過分擬合都是要避免的錯誤。