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