機器學習

Element_yuan發表於2023-03-14

機器學習

西瓜書、南瓜書、沐神、吳恩達、嗶站

1、概念:

經典定義:利用經驗改善系統自身的效能。

機器學習主要研究如何使用計算機從給定資料中學習規律,並利用學習到的規律(模型)來對未知或無法預測的資料進行預測。

學習方式:

1、監督學習

2、無監督學習——聚類

3、半監督學習

4、強化學習

學習結果:

1、迴歸

2、分類

2、泛化

機器學習泛化是指機器學習模型能夠在之前未見過的資料上進行準確預測的能力。簡而言之,泛化能力是指模型從訓練集中學習到的規律能夠應用到測試集或實際場景中的資料中,而不是簡單地記憶訓練資料。泛化能力是衡量機器學習模型好壞的重要指標之一,好的模型應該具備較強的泛化能力。

3、典型的機器學習過程

  1. 確定問題和目標:首先需要明確需要解決的問題以及希望達成的目標,例如分類、迴歸或聚類等。

  2. 資料收集和預處理:接下來需要收集相關資料,並且對資料進行處理,包括資料清洗、缺失值處理、特徵選擇和特徵變換等。

  3. 特徵工程:在資料預處理之後,需要對資料進行特徵工程,提取並選擇最有用的特徵,以提高模型的準確性和泛化能力。

  4. 模型選擇和訓練:根據問題型別和資料情況,選擇適當的機器學習演演算法和模型,並使用訓練資料對模型進行訓練和調參。

  5. 模型評估和最佳化:使用測試集對模型進行測試和評估,檢視模型的效能表現並進行最佳化,如調整模型引數、選擇更合適的特徵等。

  6. 部署模型:最後,將最佳化後的模型部署到實際環境中,並進行實時預測和監控。需要確保模型的穩定性、可靠性和可維護性,並不斷微調和更新模型。

4、評估方法有以下幾種

  1. 留出法(Holdout Method):將資料集劃分為訓練集與測試集兩部分,訓練集用於模型的訓練,測試集用於模型的測試和評估。
  2. 交叉驗證法(Cross-validation Method):將資料集分成k個子集,每個子集都作為測試集,其他k-1個子集作為訓練集,這樣會產生k個模型,透過計算這k個模型的平均誤差來評估模型的效能。
  3. 自助法(Bootstrap Method):利用自助取樣技術從原始資料集中隨機抽取取樣得到一個新的取樣資料集,這個取樣資料集和原始資料集一樣大小,但存在一些重複的樣本資料,這樣可以透過多次自助取樣得到多組訓練集和測試集,評估模型效能的平均誤差。
  4. 基於學習曲線的評估方法(Learning Curve Method):將資料集分成訓練集和測試集,逐步增加訓練集的數量,計算模型的訓練誤差和測試誤差隨著訓練集大小的變化而變化的曲線,透過判斷誤差曲線是否收斂,評估模型的效能。
  5. 基於預測結果的評估方法(Prediction Result Method):比較模型預測結果與實際結果的差別,包括準確率、精確率、召回率、F1值等指標。

5、調參與驗證集

機器學習調參是指尋找最優模型的情況下,對模型中某些超引數進行修改,以達到更好的預測效果。常見的調參方法包括網格搜尋、隨機搜尋、貝葉斯最佳化等。

在進行調參時,需要保證模型的泛化能力,因此需要使用驗證集對模型進行評估,防止過擬合。

通常將資料集劃分為訓練集、驗證集和測試集三部分,訓練集用於模型的訓練,驗證集用於模型的驗證和調參,測試集用於最終模型的評估。

在調參時,要注意避免使用測試集進行模型的選擇和調參,否則測試集的效能評估就失去了意義。

6、比較檢驗

機器學習比較檢驗是指透過對資料中不同模型的效能進行比較來評估模型預測能力的方法。在比較檢驗中,通常採用交叉驗證、留一法、自助法等方法來對模型進行評估。

常見的機器學習比較檢驗方法包括:

1.交叉驗證:將資料集劃分為訓練集和測試集,透過多個實驗來評估模型的效能。

2.留一法:將一個樣本作為測試集,剩餘的樣本作為訓練集,重複n次,最終取平均值作為效能評估。

3.自助法:有放回地從資料集中取樣得到一組新的資料集,取樣的資料可以重複,使用這些新資料集來訓練和測試多個模型,透過比較效能來評估模型。

在比較檢驗的過程中,需要注意的是選擇適當的效能指標,如準確率、召回率、F1值等,在選用效能指標時要考慮實際應用場景的需求。同時還需要考慮所比較的模型的特性,如有些模型適用於稠密資料,有些適用於稀疏資料,應根據資料的特點選擇合適的模型。

7、Scikit-learn

Scikit-learn是一個開源的Python機器學習工具包,它是基於numpy, scipy和matplotlib庫開發而來。它提供了眾多的機器學習演演算法,比如分類、迴歸、聚類、降維等,同時也提供了資料預處理、模型選擇、模型評價等功能。

Scikit-learn提供了簡單而一致的API,非常適用於機器學習初學者。它也提供了大量的檔案與示例程式,使用者可以透過閱讀檔案和執行示例程式來學習和使用這個工具包。

以下是一些Scikit-learn提供的的機器學習演演算法和方法:

  • 分類演演算法:支援向量機、決策樹、樸素貝葉斯、最近鄰、神經網路等。
  • 迴歸演演算法:線性迴歸、嶺迴歸、Lasso迴歸、彈性網路、SVR等。
  • 聚類演演算法:K-Means、高斯混合模型、譜聚類等。
  • 降維演演算法:PCA、LDA、Kernel PCA、t-SNE等。
  • 資料預處理:特徵提取、特徵縮放、特徵選擇、資料清洗等。
  • 模型選擇與評價:交叉驗證、網格搜尋、評價指標等。

Scikit-learn同時也提供了一些適用於大資料量的機器學習演演算法擴充套件,如透過多處理器平行計算和外部記憶體計算來加速訓練和預測過程。

8、訓練集、驗證集、測試集

訓練集:訓練集用來訓練模型,即確定模型的權重和偏置這些引數,通常我們稱這些引數為學習引數。

驗證集:驗證集用於模型的選擇,更具體地來說,驗證集並不參與學習引數的確定,也就是驗證集並沒有參與梯度下降的過程。驗證集只是為了選擇超引數,比如網路層數、網路節點數、迭代次數、學習率這些都叫超引數。比如在k-NN演演算法中,k值就是一個超引數。所以可以使用驗證集來求出誤差率最小的k。

測試集(交叉驗證法、自助法等):測試集只使用一次,即在訓練完成後評價最終的模型時使用。它既不參與學習引數過程,也不引數超引數選擇過程,而僅僅使用於模型的評價。
值得注意的是,千萬不能在訓練過程中使用測試集,而後再用相同的測試集去測試模型。這樣做其實是一個cheat,使得模型測試時準確率很高。

訓練集,驗證集,測試集分別是什麼_訓練集是什麼意思_又決定放棄的部落格-CSDN部落格

9、目標函式、目標函式、最佳化方法:

目標函式:指所關心的目標與相關的因素的函式關係。按照一定的思路把這些已知條件利用起來,去求解未知量的函式關係式。

目標函式:也叫代價函式,是同一個東西。是用來評估模型的預測值f(x)與真實值Y的差距,它是一個非負實值函式。

最佳化方法:最佳化方法是一種數學方法,旨在找到最佳解決方案或最優解,以滿足特定的目標和限制條件。這些方法可以應用於各種領域,包括工程,經濟學,電腦科學,物理學等等。最佳化方法可以分為兩類:線性最佳化和非線性最佳化。線性最佳化是指在滿足一組線性約束條件下,尋找一個線性目標函式的最大值或最小值。非線性最佳化是指在滿足非線性約束條件下,尋找一個非線性目標函式的最大值或最小值。常見的最佳化方法包括梯度下降法,牛頓法,遺傳演演算法等。

10、擬合、過擬合、欠擬合:

擬合:是指使用一種數學模型來擬合資料並預測未知資料的能力。在機器學習和統計學中,擬合通常是指根據已知資料訓練模型,從而得到一個最優的模型,以便用於預測未知資料。

過擬合:是指模型在訓練資料上表現得很好,但在新資料上表現得很差的情況。過擬合通常發生在模型過於複雜或訓練資料過少的情況下,導致模型在訓練資料上過度擬合,從而無法泛化到新資料。

欠擬合:是指模型無法捕捉到資料的趨勢或規律,導致在訓練和測試資料上都表現得很差的情況。欠擬合通常發生在模型過於簡單或訓練資料過少的情況下,導致模型無法學習到足夠的特徵。

11、準確率、泛化效能:

準確率:是指模型在給定資料集上的預測結果與實際結果的一致性程度,通常用百分比表示。例如,如果一個二元分類模型在測試集上正確預測了90個樣本,錯誤預測了10個樣本,則其準確率為90%。

泛化效能:是指模型在未見過的資料上的表現能力,即其對於新的資料的預測能力。一個好的模型應該具有良好的泛化效能,能夠正確地預測未見過的資料。

準確率和泛化效能是機器學習中兩個重要的概念。準確率通常用於評估模型在已知資料上的預測能力,而泛化效能用於評估模型的真正預測能力,即其在未知資料上的表現能力。在訓練模型時,通常需要同時考慮準確率和泛化效能,並進行平衡,以得到一個既能夠在訓練資料上表現良好,又能夠泛化到新資料的模型。

相關文章