機器學習演算法小結

2022-08-04 11:06:11 字數 4785 閱讀 9159

貝葉斯分類器(bayesian classifier)

(如何建立乙個文件分類系統,用於垃圾郵件過濾,或是根據關鍵字的模糊搜尋來對一組文件進行劃分)

貝葉斯分類器一般用於關於文件處理,但實際上也可以適用於任何其他形式的資料集,只要能將其轉化成一組特徵列表。所謂特徵,就是指乙個給定項中存在或缺少的某種東西。(在文件中,特徵就是文件中的單詞)

*訓練利用樣本進行訓練(同所以監督演算法一樣)

*分類經過訓練之後,對新的專案進行自動分類;

需要一種方法能將所有特徵的概率組合到一起,形成乙個整體上的概率。

決策樹分類器(decision tree classifier)

(如何根據伺服器日誌來對使用者的行為進行建模)

演算法從根部開始構造決策樹,在每一步選擇乙個屬性,利用該屬性以最佳的可能方式對資料進行拆分

為了建立(根)節點,第一步就是要對每乙個變數進行嘗試,最後獲得拆分效果最好的那個變數(但面對規模更大一些的資料集時,就不會總是有清晰的拆分結果,為了衡量乙個拆分的優劣,需要知道熵的概念)

熵(每個集合的熵都是用來計算資訊增益的):集合中的熵偏小,意味著該集合中大部分元素都是同質的;熵等於0,則所有元素都是同乙個型別的

神經網路(neural networks)

(如何根據使用者以往點選的鏈結簡單構建乙個神經網路,用以對搜尋結果的排名進行調整,神經網路可以識別出哪些單詞的組合最重要的,以及哪些單詞對於某次查詢是並不重要的,不僅可以將神經網路用於分類,還可以將其用於數值**問題)

神經網路一類之——多層感知神經網路(multilayer perceptron network)

多層感知神經網路:一層輸入神經元,多層隱藏神經元,一層輸出神經元

層與層之間通過突觸彼此相連,每乙個突觸都有乙個與之關聯的權重,權重越大,對神經元輸出的影響也越大

*簡單的例子:垃圾郵件的過濾問題

首先需要設定好突觸的權重(設定突觸的方法???),位於第一層的神經元對於用作輸入的單詞給予響應,如某個單詞存在於郵件資訊中,則與該單詞關聯最強的神經元就會被啟用,第二層神經元接受第一層神經元的輸入,因此會對單詞的組合給予響應(因為每層的每個神經元之間都有聯絡),最後,這些神經元會將結果輸出,形成強或弱關聯,最終的決策結論,就是判定哪乙個輸出最強

例子總結:多層神經網路可以非常輕鬆的處理代表不同事物的各種特徵的不同組合

*訓練:

神經網路的真正威力是可以從隨機的權重值開始,然後通過訓練不斷的從樣本中得到學習,訓練神經網路最常見的方法就是」反向傳播法」:

首先,從乙個樣本中及其正確答案(非垃圾郵件/垃圾郵件)開始

隨後,將樣本送入神經網路,觀察其當前的推測結果

開始的時候,網路也許會為垃圾郵件賦予乙個比非垃圾郵件更高一些的權重,       這是不正確且需要修正的,即需要告訴網路,垃圾郵件的權值更接近於0,非       垃圾郵件則更接近與1

指向垃圾郵件的突觸權重,會根據每乙個隱藏層節點的貢獻程度相應的做向下微調,而指向非垃圾郵件的權重則會向上微調;介於輸入層和隱藏層之間的突觸權重,也會根據其對輸出層中的重要節點的貢獻程度進行相應的調整(調整的公式???)

支援向量機 (support-vector machines)

(svm)

svm接受資料集作為數字輸入,並嘗試**這些資料屬於哪個分類

svm通過尋找介於兩個分類之間的分界線來構建**模型

通過支援向量機找到的分界線,能夠清晰地對資料進行劃分,這意味著分界線與處於其附近的座標點彼此間達到最大可能距離

而最佳分界線,是表現最好的那條線:確定這條分界線所在位置唯一需要的座標點,是距離它最近的那些點,這些點被稱為」支援向量」

核技法(the kernel trick)

假如在圖上找不到任何可以劃分資料的直線,因此在沒有按某種方式對資料採取變換之前,無法利用」線性分類器」來找到有效劃分的;

方法一:(就需要一些方法(通過在各個軸上施加不同的函式,將資料變換到另乙個不同的空間內,甚至超過二維空間))」多項式變換」(???),利用該方法後可以得到新的分布圖,並且很可以通過線性分類器得到分界線

方法二:(在現實中,大多數情況下為了找到分界線往往要將座標點變換到更為複雜的空間,這些空間維度有的是上千維,有的是無限維,多項式變換並不總是可行)」核技法」——不再進行空間的變換,而是用乙個新的函式(???)來取代原來的點函式,該函式會在資料被變換到另乙個不同的空間之後,返回相應的點積結果

k-最近鄰(k-nearest neighbors,knn)

(如何針對一組給定的樣本來構造****模型)

*工作原理:

接受乙個用以進行數值**的新資料項,然後將其與一組已經賦過值的資料項進行比較,演算法會從中找出與待測資料項最為接近的若干項,並對其求均值以得到最終的**結果

k——若干項的數目,即用於求均值的最佳匹配數

*擴充套件根據近鄰之間距離遠近程度進行加權平均,距離非常接近的近鄰會比稍遠者更高的權重

*變數縮放和多餘變數

knn演算法存在的大問題——考慮所有的變數

通過計算距離之前對資料進行調整加以解決,對某些變數的數值進行放大,某些縮小,完全補齊作用的變數乘以0,對有價值但值域範圍差別很大的變數縮放到更具可比性的程度

縮放量——需要通過對**演算法實施交叉驗證,判斷一組縮放因子的優劣程度,即哪些因子應該被用於對新資料的**

交叉驗證:先從資料集中去除一部分資料,然後利用剩餘資料來推測出這部分資料,演算法會嘗試對推測的結果進行評估,通過對不同的縮放因子進行交叉驗證,可以得到針對每一項資料的誤差率,從而可以判斷哪些縮放因子應該用於對資料的猜測

例子:去掉某個資料349,採用k=2,推測值=(399+299)/2,誤差=(推測值-去掉的實際資料值)的平方=0

##分級聚類、k-均值聚類都屬於非監督學習技術:不要求訓練用的資料樣本,因為這些方法不是用來做**的

(如何選擇一組熱門部落格並自動對其進行聚類,從中可以發現哪些部落格被理所當然的劃歸到了一類,這些部落格或具有相似的描寫主題或使用了相近的詞彙)

聚類(clustering)

分級聚類

*工作方式

尋找距離最近的資料項,合二為一,並且新聚類的位置等於原來兩個資料項位置的均值,持續到每個資料項都被包含在乙個大的聚類當中

*級?因為最終可以形成乙個層級結構,該層級結構可以顯示為樹狀圖的形式(dendrogram),我們可以選出任意乙個枝節點,並判斷是否為乙個有價值的群組

k-均值聚類

k-均值聚類實際上是對資料拆分到不同的群組中,要求開始執行運算之前給出想要的群組數量

*執行過程

兩個中心點隨機位置產生

每個資料都分配給最近的中心點

(中心點改變)對之前分配好的某一組資料進行計算平均值,得到新位置,把中心點移到該位置

當進行再分配時,會發現某一組的某個資料項會距離另乙個組的中心點更近了,此時會把這個資料項歸劃到另一組

##多維縮放也是非監督技術,並不是要做**,而是使不同資料項之間的關聯程度更易於理解

多維縮放(multidimensional scaling)

多維縮放會為資料集構造乙個低維度的表達形式,並令距離值盡可能接近於原資料集,對於螢幕或者紙張的列印輸出,多維縮放通常意味著將資料從多維將至二維

例子:將一張4維資料集(每一項資料有4個相關的值),利用歐幾里得距離公式,得到每兩項直接的距離值,從而可以將所有資料項繪製在2維圖上,圖元素即為每兩項之間計算得到的距離值;而後,由於存在誤差,需要不斷重複進行節點移動,知道無法通過移動節點來減少總的誤差值為止

##也是一種非監督演算法,因為其作用並非**分類或數值,而是幫助我們識別資料的特徵

非負矩陣因式分解(non-negative matrix factorization,nmf)

(觀察構成新聞故事的各種不同的主題,藉此來了解如何將**交易量分解成一系列會對單支或者多支**即刻構成影響的新聞事件)

*nmf的作用

(情況:不知道資料(觀測值)的權重和特徵)

nmf為我們找到特徵和權重的可能取值,nmf的目標就是自動找到」特徵矩陣」和」權重矩陣」,李娜改革矩陣乘法可以得到」資料集矩陣」(???)——以隨機矩陣開始,並根據一系列更新法則(???)對這些矩陣進行更新,知道特徵矩陣和權重矩陣的乘積與資料矩陣足夠接近為止

*結果的意義

特徵矩陣可以告訴我們潛藏著資料背後的諸多因素~

##優化不是要處理資料集,而是要嘗試找到能夠使成本函式的輸出結果達到最小化的值

對於一些成本問題,一旦設計好成本函式,可以利用演算法(模擬退火、遺傳演算法)來解決

優化(optimization)

成本函式:

(用於優化的成本函式有許多變數需要考慮,而且有時並不清楚到底要修改其中的哪乙個變數,才能使最終結果的改善效果達到最好)

#此處只考慮乙個變數的函式

首先,可以先簡單繪製,可以很容易找到函式的最低點(乙個帶有多個變數的複雜函式則不適用)

注意:一般會有很多個區域性最小值,此時假如我們嘗試隨機選擇題解並沿斜坡向下的方法不一定能找到最優解(很有可能陷入乙個包含區域性最小值的區域,從而永遠無法找到全域性範圍內的最小值)

a.  模擬退火

(物理學領域合金冷卻)

以乙個隨即推測的題解開始,然後以此為基準隨機選擇乙個方向,並就近找到另乙個近似解,判斷其成本值;

如果變小,則新的題解取代原來的題解;

如果變大,則新題解取代舊題解的概率取決於當前的溫度值,此處的溫度,會以乙個相對較高的數值開始緩慢下降,正因如此,演算法在執行的早起階段更容易接受表現相對較差的題解,這樣我們就有效的避免了陷入區域性最小值的可能,當溫度到達0,演算法便返回當前的題解

b. 遺傳演算法

(進化理論)

以一組被稱為種群的隨機題解開始;

種群中表現最為優異的成員——即成本最低者,會被選中並通過稍事改變(變異)或者特徵組合(交叉(配對))的方式加以修改;

得到新的族群,稱為下一代;

重複,達到某個閾值,或種群經歷數代後沒有任何改善,或遺傳代數達到最大值,終止

《機器學習實戰》小結

最近一段時間讀了peter harrington 的machine learning in action,對機器學習有個大致的了解,做個總結。全書分為4部分 監督學習 分類 回歸 無監督學習 其他工具。包含演算法原理解釋,並講解python實現演算法的流程。讀完能對機器學習方法有個大致了解。我主要細...

機器學習知識小結

機器學習方法從數學的角度來看其實就是 模型 策略 演算法。模型就是對乙個實際業務問題進行建模,將其轉化為乙個可以用數學來量化表達的問題。策略就是定義損失函式來描述 值與理論值之間的差距,將其轉化為乙個使損失函式最小化的優化問題。演算法指的是求解最優化問題的方法,我們一般將其轉化為無約束優化問題,然後...

機器學習學習小結(3)

1.scikit learn環境 在anaconda常用的命令 在anaconda prompt中鍵入 若在window命令視窗中直接輸入conda list會提示不是內部或外部命令 scikit learn中文文件 建立在numpy,scipy和matplotlib 事先需要安裝 2.anacon...