機器學習筆記彙總1

2021-08-29 02:24:15 字數 4780 閱讀 3450

有監督學習:

根據已知的輸入和輸出,建立聯絡它們的模型,根據該模型對未知輸出的輸入進行判斷。

1)回歸:以無限連續域的形式表示輸出

2)分類:以有限離散域的形式表示輸出

監督學習又可以劃分為生成模型和判別模型。

無監督學習:

在一組沒有已知輸出(標籤)的輸入中,根據資料的內部特徵和練習,找到某種規則,進行族群的劃分—聚類

半監督學習:

從乙個相對有限的已知結構中利用有監督學習的方法,構建基本模型,通過對未知輸入和已知輸入的必讀判斷其輸出,擴充套件原有的已知領域。(知識庫的自我擴充套件)

特徵處理常用方法:

機器學習之資料預處理(均值移除、範圍縮放、歸一化、二值化、獨熱編碼、標籤編碼)

時間序列的特徵處理常用方法:

時間特徵連續化:連續的時間差值法,即計算出所有樣本的時間到某乙個未來時間之間的數值差距,這樣這個差距是utc的時間差,從而將時間特徵轉化為連續值

時間特徵離散化:根據時間所在的年,月,日,星期幾,小時數,將乙個時間特徵轉化為若干個離散特徵,這種方法對分析具有明顯時間趨勢的問題比較好用;

權重法:即根據時間的新舊得到乙個權重值。比如對於商品,三個月前購買的設定乙個較低的權重,最近三天購買的設定乙個中等的權重,在三個月內但是三天前的設定乙個較大的權重等。

參考:幾種常用的特徵選擇方法

note:

a)特徵選擇降維

相似:效果一致,試圖去減少特徵資料集中特徵的數目

差異:(特徵空間是否改變

-特徵選擇是從原始特徵資料集中選擇出子集,是一種包含的關係,沒有更改原始的特徵空間

-降維是通過屬性間的關係,如組合不同的屬性得新的屬性,改變了原來的特徵空間

b)- 根據方差移除特徵 removing features with low variance

假設某特徵(無缺失值或無窮)的特徵值只有0和1,並且在所有輸入樣本中,95%的例項的該特徵取值都是1,反映在統計量上就是方差過小low variance,也就是樣本在這個特徵上變化很小。

# remove features with variance lower than 0.2

from sklearn.feature_selection import variancethreshold

sel = variancethreshold(0.2)

data_vart = sel.fit_transform(dataset)

note:

1)實際問題中,低方差的資料並不一定代表著其不是有效資料,移除低方差資料帶來的可能並不是模型效能的提公升,而是下降。

2)閾值threshold設定的合理性是否能夠得到保證

- 單一變數特徵選擇 univariate feature selection

單一變數選擇就是通過某種得分來度量相關性,進而選擇特徵,sklearn中有兩個比較常用 :

三種衡量方法對於回歸和分類是不同的:

回歸:f_regression,   mutual_info_regression 

分類:chi2, f_classif, mutual_info_classif

互資訊(mutual_info_regression, mutual_info_classif)可以得到特徵和最後的結果之間的非線性的相關性,而卡方檢驗和f-檢驗應該只能夠判斷線性。

互資訊:度量 x 和 y 共享的資訊:它度量知道這兩個變數其中乙個,對另乙個不確定度減少的程度

卡方檢驗:用方差來衡量某個觀測頻率和理論頻率之間差異性的方法

python**():selectpercentile(method, params).fit_transform(x,y)

sklearn.feature_selection import f_regression

from sklearn.feature_selection import selectpercentile

# x.shape: (1456, 388)

# y.shape: (1456, 1)

datanew = selectpercentile(f_regression, 30).fit_transform(x,y)

datanew.shape

out[71]: (1456, 117) # features reduce from 388 to 117 with 30% percentage

- 遞迴特徵消除 rfe

給定乙個具有coef_或者feature_importance_屬性的模型,利用base model訓練這些相關性特徵,刪除得分最差的特徵,重複訓練直到滿足預設的特徵個數。

from sklearn.feature_selection import rfe

from sklearn.linear_model import logisticregression

#遞迴特徵消除法,返回特徵選擇後的資料

#引數estimator為基模型

#引數n_features_to_select為選擇的特徵個數

rfe(estimator=logisticregression(), n_features_to_select=5).fit_transform(x, y)

- selectfrommodel

類似rfe,引數為base model和threshold.

from sklearn.feature_selection import selectfrommodel

# set a minimum threshold of 0.3

sfm= selectfrommodel(lasso(), threshold=0.3)

sfm.fit(x, y)

n_features = sfm.transform(x).shape[1]

- 線性模型和正則化

正則化模型:

實際使用中,如果特徵是高維稀疏的,則使用l1正則;如果特徵是低維稠密的,則使用l2正則。

l2不能控制feature的「個數」,但是能防止模型overfit到某個feature上;相反l1是控制feature「個數」的,並且鼓勵模型在少量幾個feature上有較大的權重。

l1正則化:

l1正則化將係數w的l1範數作為懲罰項加到損失函式上,由於正則項非零,這就迫使那些弱的特徵所對應的係數變成0。因此l1正則化往往會使學到的模型很稀疏(係數w經常為0),這個特性使得l1正則化成為一種很好的特徵選擇方法。

l1正則化像非正則化線性模型一樣也是不穩定的,如果特徵集合中具有相關聯的特徵,當資料發生細微變化時也有可能導致很大的模型差異。

l2正則化:

l2正則化將係數向量的l2範數新增到了損失函式中。由於l2懲罰項中係數是二次方的,這使得l2和l1有著諸多差異,最明顯的一點就是,l2正則化會讓係數的取值變得平均

對於關聯特徵,這意味著他們能夠獲得更相近的對應係數。還是以y=x1+x2為例,假設x1和x2具有很強的關聯,如果用l1正則化,不論學到的模型是y=x1+x2還是y=2x1,懲罰都是一樣的,都是2 alpha。

但是對於l2來說,第乙個模型的懲罰項是2 alpha,但第二個模型的是4*alpha。可以看出,係數之和為常數時,各係數相等時懲罰是最小的,所以才有了l2會讓各個係數趨於相同的特點

l2正則化對於特徵選擇來說一種穩定的模型l1正則化係數會因為細微的資料變化而波動。所以l2正則化和l1正則化提供的價值是不同的,l2正則化對於特徵理解來說更加有用:表示能力強的特徵對應的係數是非零。

from sklearn.linear_model import lasso

lasso = lasso(alpha=0.03)

lasso.fit(x, y)

coefs = lasso.coef_ # 特徵係數

-決策樹模型的特徵選擇(xgboost,gboost,randomforest,cart…)

1)結合業務優先選擇有限的主要特徵,劃分子表,降低決策樹的高度。

缺點:特徵數量多的時候,決策樹可能層級過高

2)決策樹學習應用資訊增益準則(資訊增益或資訊增益比)選擇特徵。

決策樹根據夏農定理計算根據每乙個特徵劃分子表前後的資訊熵差,選擇熵減少量最大的特徵,優先參與子表劃分

資訊增益g(d,a):得知特徵a的資訊而使得對資料集d的分類的不確定性減少的程度(即熵減程度 = 經驗熵h(d) - 經驗條件熵h(d|a)).

g(d,a) = h(d) - h(d|a).

資訊增益準則的特徵選擇方法

對訓練資料集(或子集)d,計算其每個特徵的資訊增益,選擇資訊增益最大的特徵

缺陷:存在偏向於選擇取值較多的特徵的問題;

對於關聯特徵,先被選中的特徵重要度很高,其他的關聯特徵重要度往往較低,在理解特徵時會造成誤解。

對於基於模型的特徵選擇來說,關聯特徵的打分基本都會存在不穩定的現象。

學習總結 機器學習(1)學習資料彙總

2014年2月17日 2014年2月28日 特點闡述 寒假裡學習了stanford的 機器學習 由andrew ng教授 華裔 主講,收穫很大,特在這裡進行學習資料彙總,以供後來人饗。加州理工 caltech 的 yaser abu mostafa教授的機器學習,偏重於傳統統計理論 史丹福大學 st...

機器學習筆記 1

1 機器學習的定義 如果乙個程式可以在任務t上,隨經驗e的增加,效果p隨之增加,則這個程式可以從經驗中學習。過程 單個神經元 2 基於tensorflow的nn 神經網路 用張量表示資料,用計算圖搭建神經網路,用會話執行,優化線上的權重 引數 得到模型。2.1 張量 多維陣列 列表 階 表示張量的維...

機器學習筆記1

高斯分布屬於指數分布族,線性最小二乘就是基於高斯分布。線性最小二乘 最大似然 最小二乘。高斯判別分析 gda 針對的是特徵向量 x 為連續值時的問題,而樸素貝葉斯 nb 針對的是特徵向量 x 為離散值時的問題。gda 比 logistic 回歸有更嚴格的前置假設。當資料服從或大致服從正態分佈時,使用...