機器學習就等同於算法嗎?

在當前的推薦系統中,很多使用了機器學習,有些已經用到了深度學習。那麼,機器學習就等同於一堆的算法嗎?

答案是:機器學習≠算法。

機器學習≠算法

當我們打開一本教科書,或者大學的教學大綱,通常看到的都是一堆的算法列表。

這也讓大家造成了這樣的誤解:機器學習就是掌握一系列的算法。其實,機器學習並不止步於算法,我們可以把它看做是解決問題的一種綜合方法。我們看到的一個個獨立的算法,只不過是難題的一角,剩下的難題是我們該如何正確地使用這些算法。

機器學習爲何如此神奇?

機器學習,就是教計算機分析數據,發現其中規律,以便人們進行預測或決定的實踐。

對於真正意義上的機器學習來說,計算機必須具備分析數據中無法通過編程得出的規律的能力。

示例:

假如一個小孩子在家裏玩,突然,他看到一支蠟燭!於是,他向蠟燭的方向慢慢走去。
在這裏插入圖片描述

出於好奇,他用手指指着燭光;
“哇!”他大喊,同時把手收回來;
“嗚嗚……那個會發光的紅色東西好燙!”
兩天之後,他來到廚房裏,看到了爐子。同樣,他又非常好奇。

他好奇得不得了,心裏想要不要用手摸一下;
突然,他發現這個東西也會發光,也是紅色的!
“啊……”他自言自語道,“我不要再痛一次了!”
他想起來紅色且會發光的東西會“痛”,於是就離開爐子去其他地方了。
在這裏插入圖片描述
說得更清楚一些,因爲這個孩子從蠟燭中自己推斷得出了某種結論,那我們就稱之爲“機器學習”。

這個結論就是:“紅色且會發光”意味着“疼痛”;

如果這個孩子離開爐子,是因爲父母告誡他的話,那就是“明確的程序指示”,而不是機器學習了。

重要術語

模型-從數據中得出的一組模式;

算法-用於訓練某個模型的專門的ML過程;

訓練數據-算法用來訓練模型的數據集;

測試數據-用於客觀評估模型性能的新數據集;

特徵-數據集中用來訓練模型的變量;

目標變量-用於預測的某個特定變量;

示例:
在這裏插入圖片描述

假設我們有一組包含150個小學生信息的數據集,現在希望通過他們的年齡、性別和體重預測他們的身高。

我們現在有150組數據點、1個目標變量(身高)、3個特徵(年齡、性別、重量)。接下來會把所有數據分爲兩個子集:

其中,120組會被用來訓練不同的模型(訓練集),其餘的30組用來選擇最佳模型(測試集)。

機器學習任務

在學術界,機器學習始於並會一直專注於其中某個算法。但是,在工業界,我們首先得爲工作所需選擇正確的機器學習任務。

· 任務是算法的特定目標。

·只要選擇正確的任務,算法就可以交換進出完成任務。

·實際上,我們會嘗試多種不同算法,因爲很可能我們一開始不知道哪種算法最適合數據集。

機器學習兩種最常見的任務類別是監督學習和無監督學習。

監督學習

監督學習包括面向“標記”好的數據的任務(換言之,我們有一個目標變量)。

· 在實踐中,它通常是用作建模預測的高級形式。

· 每一組數據點必須正確標記。

· 只有這樣才能建立一個預測模型,因爲我們必須在訓練時告訴算法什麼是“正確”的(也就是我們說的“監督”)。

· 迴歸是建模連續目標變量的任務。

·分類是對分類目標變量進行建模的任務。
Logistic迴歸

無監督學習

無監督學習包括面向“未標記”數據的任務(換言之,沒有目標變量)。

· 在實踐中,這種形式通常用作自動數據分析或自動信號提取。

· 未標記的數據沒有預先確定的“正確答案”。

· 允許算法直接從數據中學習模式(即沒有“監督”)。

· 聚類是最常見的無監督學習任務,用於查找數據中的組。

聚類

機器學習的三要素

如何始終如一地構建有效的模型以獲得最佳效果。

#1:熟練的廚師(人類指導)

首先,即使我們是在“教電腦自學”,但在這個過程中,人的指導也起着很大的作用。

正如我們所看到的,您需要在此過程中做出無數項決策。

事實上,第一個重大決策就是該如何規劃我們的項目,從而確保成功。

#2:新鮮食材(乾淨且相關的數據)

第二個基本要素是數據的質量。

無論我們使用哪種算法,垃圾輸入=垃圾輸出。

專業的數據科學家將大部分時間花在瞭解數據,清理數據和設計新功能上。

#3:不要過度烹飪(避免過度擬合)

機器學習中最危險的陷阱之一就是過度擬合。過度擬合模型會“記住”訓練集中的噪聲,而不是學習真正的基礎模式。

· 對衝基金中的過度擬合可能會造成數百萬美元的損失。
· 醫院內的過度擬合可能會導致數千人喪生。

對於大多數應用來說,過度擬合都是要避免的錯誤。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章