??機器學習是當下統計學與計算機科學相結合的產物,關于機器學習,并沒有統一的定義描述,機器學習(machine leaning) 也稱統計學習(statistical learning),
文章目錄
- 1.機器學習的組成
- 2.問題劃分
- 3.學習方式劃分
- 3.1監督學習
- 3.2半監督學習
- 3.3無監督學習
- 4.模型劃分
- 4.1生成模型
- 4.2判別模型
- 5.模型評估
- 5.1訓練誤差與泛化誤差
- 5.2 過擬合與欠擬合
- 5.2.1欠擬合
- 5.2.2過擬合
- 5.2.3解決方式
- 6.正則化
- 7.scikit-learn模塊
- 7.1資料集
- 加載鳶尾花資料集
- 加載葡萄酒資料集
- 加載波士頓房價資料集
- 加載乳腺癌資料集
- 7.2劃分驗證集和測驗集
1.機器學習的組成
一個完整的機器學習演算法的三要素:
- 資料
- 模型
- 性能度量準則
關于資料,生產實踐中得到的資料往往是可能包含大量缺失值、冗余值的“臟資料,對此”需要特征工程進行預處理,
關于模型,即使用的機器學習演算法,其依賴于資料的特點及研究人員經驗,
關于性能度量準則,性能度量準則用于指導模型引數求解,
訓練機器學習模型時對大量的引數進行反復調整或者搜索,稱為“調參”;
訓練之前調整設定的引數,稱為“超引數”,
2.問題劃分
根據模型預測輸出的連續性,可以將與機器學習演算法適配的問題劃分為分類問題和回歸問題,
??有時候,回歸問題和分類問題可以相互轉化,如在估計人的年齡時,假設絕大多數人的年齡都在0-100歲,此時該問題既可以看成回歸問題,也可以看出分類問題,(即回歸值范圍有限且適合作為類別看待)
3.學習方式劃分
根據樣本集合中是否包含標簽,以及包含標簽的多少,可以將機器學習分為監督學習、半監督學習 和 無監督學習,
3.1監督學習
- 監督學習:樣本集合中包含標簽的機器學習,以標簽資料作為監督資訊,來最小化損失函式J,常通過梯度下降、擬牛頓法等演算法對模型引數進行更新,其中損失函式J用于描述模型的預測值與真實值之間的差異度,差異度越小,模型對資料的擬合效果越好,
3.2半監督學習
- 無監督學習:有時候獲取有標簽的資料成本過高,需要消耗太多的人力、財力,這個時候就需要從無標簽的資料中發掘資訊,比如電商平臺的商品精準推薦,是無法事先獲取標簽資料的,這時就需要用到無監督學習,常用的演算法有降維、聚類等,
3.3無監督學習
- 半監督學習:半監督學習介于監督學習和無監督學習之間,有時只能獲取到部分資料的標簽,半監督學習即同時從有標簽的資料和無標簽的資料之間進行經驗學習,
4.模型劃分
根據機器學習模型是否可以用于生成新資料,可以將機器學習模型分為生成模型和判別模型,
4.1生成模型
生成模型,指通過機器學習演算法,從訓練集中學習到 輸入和輸出的聯合概率分布P(X,Y),
4.2判別模型
判別模型,指通過機器學習演算法,計算 一個條件概率分布P(X,Y),即后驗概率分布,
5.模型評估
5.1訓練誤差與泛化誤差
建模前,通常需要把資料劃分為訓練集、驗證集和測驗集,
- 訓練集用于對模型的引數進行訓練;
- 驗證集用于對訓練的模型的驗證挑選,輔助調參;
- 測驗集用于測驗訓練完模型的泛化能力;
**泛化能力(generalization ability)**是指機器學習演算法對新鮮樣本的適應能力,
在訓練集上,訓練程序中使用訓練誤差 來衡量模型對訓練資料 的擬合能力,
在測驗集上,使用泛化誤差來測驗模型的泛化能力,
在模型得到充分訓練的條件下,訓練誤差與泛化誤差之間的差異越小,說明模型的泛化性能越好,得到一個泛化性好的模型是機器學習的目的,
訓練誤差和測驗誤差往往選擇的是同一性能度量函式,只是作用的資料集不同,
5.2 過擬合與欠擬合
5.2.1欠擬合
當訓練損失較大的時候,說明模型不能對資料進行很好的擬合,這樣的情況稱為欠擬合,
5.2.2過擬合
當訓練誤差小且明顯低于泛化誤差時,稱這種情況為過擬合,
5.2.3解決方式
-
對于欠擬合的情況,通常是由模型本身不能對訓練集進行擬合或者訓練迭代次數太少,解決欠擬合的方法是對模型進行改進,設計新的模型進行訓練,增加訓練程序的迭代次數等,
-
對于過擬合的情況,往往是由于資料量太少或者模型太復雜導致,可以通過增加資料量,對模型進行裁剪、正則化的方式來緩解,
6.正則化
正則化是一種抑制模型復雜度的常用方法,正則化用模型引數 ω \omega ω的p范數表示為
- ∣ ∣ ω ∣ ∣ p = ( ∑ i = 1 p ∣ ω i ∣ p ) 1 p \displaystyle ||\omega||_p=(\sum_{i=1}^{p}|\omega_i|^p)^{\frac{1}{p}} ∣∣ω∣∣p?=(i=1∑p?∣ωi?∣p)p1?
常用正則化方式為p=1或p=2的情形,分別稱為L1正則化和L2正則化,
正則化項一般作為損失函式的一部分被加入到原來的基于資料損失函式中,
經驗損失:基于資料的損失函式又被稱為經驗損失,
正則化項又稱為結構損失,
若將原本基于資料的損失函式記為J,帶有正則化項的損失函式記為 J N J_N JN?,則最終的損失函式可記為
- J N = J + λ ∣ ∣ ω ∣ ∣ p \displaystyle J_N=J+\lambda||\omega||_p JN?=J+λ∣∣ω∣∣p?
其中 λ \lambda λ是用于在模型的經驗損失和結構損失之間平衡的超引數,
7.scikit-learn模塊
7.1資料集
sklearn.datasets中收錄了一些資料集,如鳶尾花資料集,葡萄酒資料集等,
這些資料集通過一系列的load函式加載,如鳶尾資料集是通過sklearn.datasets.load_iris()函式加載的,

加載鳶尾花資料集
from sklearn.datasets import load_iris
iris = load_iris()
x = iris.data
y = iris.target
該資料150個樣本,每個樣本有四個特征:花萼長,花萼寬,花瓣長,花瓣寬
樣本的標簽分為三個類別,分別是0,1,2,分別表示Setosa,Versicolour和Virginica3個類別,
加載葡萄酒資料集
from sklearn.datasets import load_wine
wine = load_wine()
x = wine.data
y = wine.target
該資料集有178條記錄,每個樣本有13個特征,分別對應著葡萄酒的某屬性,標簽有三個,是葡萄酒的起源地,
加載波士頓房價資料集
from sklearn.datasets import load_boston
boston = load_boston()
x = boston.data
y = boston.target
該資料集有506條資料,13個特征,標簽為平均房價,此資料樣本是連續變數,適合做回歸模型,
加載乳腺癌資料集
from sklearn.datasets import load_breast_cancer
breast_cancer = load_breast_cancer()
x = breast_cancer.data
y = breast_cancer.target
該資料集一共有569條資料,其中有357例為乳腺癌資料,212例為非乳腺癌資料,資料集包含有30個特征,標簽則為兩個,適合二分類演算法測驗,
7.2劃分驗證集和測驗集
以波士頓房價資料為例
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
boston = load_boston()
x = boston.data
y = boston.target
x_train, x_test, y_train, y_test = train_test_split(x, y)
詳細用法可點擊鏈接跳轉學習,
參考:
<Python機器學習實戰 呂云翔>
<<<統計學習方法— 李航>>>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/426490.html
標籤:AI
上一篇:python實作kmeans聚類
