Trace Id is missing
跳到主要內容
Azure

機器學習演算法

機器學習服務背後的數學與邏輯簡介。

什麼是機器學習演算法?

機器學習演算法是一段程式碼,可協助使用者探索、分析並尋找複雜資料集中的意義。每種演算法都是一組有限的明確逐步指示,可讓電腦遵循,以達成特定目標。在機器學習模型中,目標是要建立或探索可讓使用者用於進行預測或分類資訊的模式。 什麼是機器學習?

機器學習演算法使用以訓練資料為基礎的參數,而所謂的訓練資料是代表較大型集合一組資料。隨著訓練資料的擴充而更真實地呈現世界時,演算法可計算出更精確的結果。

不同演算法會以不同的方式來分析資料。演算法通常依據其用於何種機器學習技術來分組:監督式學習、非監督式學習和增強式學習。最常使用的演算法可使用迴歸和分類來預測目標類別、找出不尋常的資料點、預測值,以及探索相似之處。

機器學習技術

隨著您深入了解機器學習演算法,您會發現這些演算法通常屬於下列三種機器學習技術中的其中一種:


監督式學習

在監督式學習中,演算法可根據您所提供的一組已加上標籤的範例來做出預測。當您知道結果看起來應該如何時,這項技術很有幫助。
 

例如,您提供的資料集包含過去 100 年中每年的城市人口數,而您希望知道特定城市從現在起四年後的人口數會是多少。結果會使用資料集中已存在的標籤:人口數、城市與年度。
 

非監督式學習

在非監督式學習中,資料點並未加上標籤,而演算法會藉由組織資料或描述其結構來為您加上標籤。當您不知道結果看起來應該會是什麼樣子時,這項技術很有幫助。

 

例如,假設您要提供客戶資料,同時希望為喜歡類似產品的客戶建立區隔。您提供的資料並未加上標籤,而結果中的標籤,會根據在資料點之間探索到的相似程度加以產生。

 

增強式學習

增強式學習可使用從結果所學習的演算法,並會決定接下來要採取的動作。在完成每個動作之後,演算法都會收到回應,以協助其判斷所做的選擇是正確、中性或不正確。這是個不錯的技術,適用於必須進行大量小型決策的自動化系統,而不需要人為指引。

 

例如,假設您正在設計自動駕駛汽車,而且希望確保車輛遵守法律並維護乘客安全。當汽車取得經驗且經過一連串的強化之後,會學習到如何保持行駛在自己的車道上、在速限內行駛,並在行人通過時剎車。

使用機器學習演算法能達成什麼目標

機器學習演算法可協助您回答過於複雜而無法透過手動分析來回答的問題。雖然機器學習演算法有不同類型,但是其使用案例通常屬於這些類別。

預測目標分類

二類別 (二元) 分類演算法可將資料分為兩個類別。這些演算法適用於只有兩個解答,且解答彼此互斥的問題,包括「是/否」問題。例如:

  • 這個輪胎會在接下來的 1,000 英哩發生故障嗎:是或否?
  • 何者能吸引更多的推薦次數:$10 美元點數或 15% 折扣?

 

多元 (多維度) 分類演算法 可將資料分割為三個或更多個類別。這些演算法適用於有三個或更多可能的解答,且解答彼此互斥的問題。例如:

  • 大部分的旅客會在哪一個月購買航空公司機票?
  • 這張相片中的人有什麼表情?

找出不尋常的資料點

異常偵測演算法能識別出定義為「正常」參數以外的資料點。例如,您可以使用異常偵測演算法來回答如下問題:

  • 此批次中哪些部分有缺陷?
  • 哪些信用卡交易可能是詐騙?

預測價值

迴歸演算法可根據歷程記錄資料,來預測新資料點的值。這些演算法可協助您回答如下問題:

  • 在我居住的城市,普通兩間臥室的住家,明年的價格會是多少?
  • 有多少病患會在星期二進入診所?

查看值在一段時間內的變化

時間序列演算法顯示指定值在一段時間內的變化。有了時間序列分析和時間序列預測,便可以在一段時間內定期收集資料,並用這些資料來預測並識別趨勢、季節性、週期性和不規則性。時間序列演算法可用於回答以下這類問題:

  • 特定股票的股價在明年可能會漲或跌?
  • 明年支出費用的情形為何?

探索相似處

叢集演算法可判斷資料點之間的相似性等級,將資料分為多個群組。叢集演算法適用於回答下列問題:

  • 哪些觀眾喜歡同一種類型的電影?
  • 哪些印表機型號故障的情況相同?

分類

分類演算法使用預測計算,將資料指派給預設的分類。分類演算法透過輸入資料進行訓練,並可用於回答以下這類問題:

  • 這封電子郵件是垃圾郵件嗎?
  • 特定文字屬於何種情感 (正面、負面或中性)?
線性迴歸演算法可藉由將連續直線放入資料,來顯示或預測兩個變數或因數之間的關聯性。該線條通常會以平方誤差成本函式來計算。線性迴歸是最熱門的迴歸分析類型之一。
羅吉斯迴歸演算法可將連續的 S 形曲線置入資料。羅吉斯迴歸是另一種熱門的迴歸分析類型。
貝氏機率分類演算法可根據相關事件的發生次數,來計算事件發生的機率。
支援向量機器可在兩個最接近的資料點之間,繪製出超平面。而如此會將類別邊緣化,並將類別之間的距離最大化,以更清楚地做出區別。
決策樹演算法可將資料分割成兩個或多個同質集合。這種演算法使用 if-then 規則,在資料點之間根據最顯著的區別來區隔資料。
K-最接近像素演算法可儲存所有可用的資料點,並根據最接近的資料點來為每個新資料點進行分類 (以距離函式進行測量)。
隨機樹系演算法以決策樹為基礎,但不會建立單一樹狀結構,而是建立整個樹系的樹狀結構,然後將該樹系中的樹狀結構隨機化。然後,這些演算法可從決策樹的不同隨機形式來彙總投票,以判斷測試物件的最終類別。
梯度提升演算法可產生預測模型,該模型可透過能改善模型整體效能的集體流程,結合弱式預測模型 (通常為決策樹)。
K-Means 演算法可將資料分類為叢集,其中的 K 等於叢集數目。每個叢集內的資料點皆為同質,與其他叢集中的資料點則為異質。

什麼是機器學習程式庫?

機器學習程式庫是一組以指定語言撰寫的函式、架構、模組和常式。開發人員將機器學習程式庫中的程式碼作為建置組塊,以建立可執行複雜工作的機器學習解決方案。開發人員可在豐富的 ML 程式庫中找到所需函式和模組,將其用來建立符合需求的解決方案,而不必為機器學習解決方案中的每個演算法和公式手動撰寫程式碼。

使用 Azure Machine Learning 開始進行實驗

了解不同演算法如何藉由 Azure Machine Learning 建置及部署您自己的機器學習模型,來分析資料。