“當(dāng)前,信息化建設(shè)的第三波浪潮正撲面而來(lái),信息化正在開啟以數(shù) 據(jù)的深度挖掘和融合應(yīng)用為主要特征的智能化階段(信息化 3.0)。隨著互 聯(lián)網(wǎng)向物聯(lián)網(wǎng)(含工業(yè)互聯(lián)網(wǎng))延伸而覆蓋物理世界,“人機(jī)物”三元融 合的發(fā)展態(tài)勢(shì)已然成型,除了人類在使用信息系統(tǒng)的過程中產(chǎn)生數(shù)據(jù)以 外,各種傳感器、智能設(shè)備也在源源不斷地產(chǎn)生數(shù)據(jù),并逐漸成為數(shù)據(jù) 最重要的來(lái)源。近年來(lái),數(shù)據(jù)資源的不斷豐富、計(jì)算能力的快速提升, 推動(dòng)數(shù)據(jù)驅(qū)動(dòng)的智能快速興起。大量智能應(yīng)用通過對(duì)數(shù)據(jù)的深度融合與 挖掘,幫助人們采用新的視角和新的手段,全方位、全視角展現(xiàn)事物的 演化歷史和當(dāng)前狀態(tài),掌握事物的全局態(tài)勢(shì)和細(xì)微差別;歸納事物發(fā)展 的內(nèi)在規(guī)律,預(yù)測(cè)預(yù)判事物的未來(lái)狀態(tài);分析各種備選方案可能產(chǎn)生的 結(jié)果,從而為決策提供最佳選項(xiàng)。當(dāng)然,第三次浪潮還剛剛開啟、方興 未艾,大數(shù)據(jù)理論和技術(shù)還遠(yuǎn)未成熟,智能化應(yīng)用發(fā)展還處于初級(jí)階段。 然而,聚集和挖掘數(shù)據(jù)資源,開發(fā)和釋放數(shù)據(jù)蘊(yùn)含的巨大價(jià)值,已經(jīng)成 為信息化新階段的共識(shí)。——梅宏
(1)按搜索策略劃分特征選擇算法
根據(jù)算法進(jìn)行特征選擇所用的搜索策略,可以把特征選擇算法分為采用全局最優(yōu)搜索策略、隨機(jī)搜索策略和啟發(fā)式搜索策略3類。
(2)評(píng)價(jià)函數(shù)
評(píng)價(jià)函數(shù)的作用是評(píng)價(jià)產(chǎn)生過程所提供的特征子集的好壞。根據(jù)其工作原理,評(píng)價(jià)函數(shù)主要分為篩選器(filter)和封裝器(wrapper)兩大類。
篩選器通過分析特征子集內(nèi)部的特點(diǎn)來(lái)衡量其好壞。篩選器一般用作預(yù)處理,與分類器的選擇無(wú)關(guān),常用的度量方法有相關(guān)性、距離、信息增益、一致性等。
運(yùn)用相關(guān)性來(lái)度量特征子集的好壞是基于這樣假設(shè):好的特征子集所包含的特征應(yīng)該是與分類的相關(guān)度較高,而特征之間相關(guān)度較低的;運(yùn)用距離度量進(jìn)行特征選擇是基于這樣的假設(shè):好的特征子集應(yīng)該使得屬于同一類的樣本距離盡可能小,屬于不同類的樣本之間的距離盡可能大;使用信息增益作為度量函數(shù)的動(dòng)機(jī)在于:假設(shè)存在特征子集A和特征子集B,分類變量為C,若A的信息增益比B大,則認(rèn)為選用特征子集A的分類結(jié)果比B好,因此傾向于選用特征子集A。一致性指的是:若樣本1與樣本2屬于不同的分類,但在特征A和B上的取值完全一樣,那么特征子集{A, B}不應(yīng)該選作最終的特征集。
篩選器由于與具體的分類算法無(wú)關(guān),因此其在不同的分類算法之間的推廣能力較強(qiáng),而且計(jì)算量也較小。
封裝器實(shí)質(zhì)上是一個(gè)分類器,封裝器用選取的特征子集對(duì)樣本集進(jìn)行分類,分類的精度作為衡量特征子集好壞的標(biāo)準(zhǔn)。封裝器由于在評(píng)價(jià)的過程中應(yīng)用了具體的分類算法進(jìn)行分類,因此其推廣到其他分類算法的效果可能較差,而且計(jì)算量也較大。使用特定的分類器,用給定的特征子集對(duì)樣本集進(jìn)行分類,用分類的精度來(lái)衡量特征子集的好壞。
數(shù)據(jù)建模
數(shù)據(jù)建模是從大數(shù)據(jù)中找出知識(shí)的過程,常用的手段是機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘。所謂數(shù)據(jù)挖掘可以簡(jiǎn)單地理解為“數(shù)據(jù)挖掘 = 機(jī)器學(xué)習(xí)+數(shù)據(jù)庫(kù)”。從商業(yè)層次來(lái)說,數(shù)據(jù)挖掘是企業(yè)按既定業(yè)務(wù)目標(biāo),對(duì)大量企業(yè)數(shù)據(jù)進(jìn)行探索和分析,揭示隱藏的、未知的或驗(yàn)證已知的規(guī)律性,并進(jìn)一步將其模型化。從技術(shù)層次來(lái)說,數(shù)據(jù)挖掘是通過分析,從大量數(shù)據(jù)中尋找其規(guī)律的技術(shù)。
機(jī)器學(xué)習(xí)
在心理學(xué)理論中,學(xué)習(xí)是指(人或動(dòng)物)依靠經(jīng)驗(yàn)的獲得而使行為持久變化的過程。在機(jī)器學(xué)習(xí)場(chǎng)景下,不同的學(xué)者有不同的理解和定義。比如西蒙(Simon)認(rèn)為:如果一個(gè)系統(tǒng)能夠通過執(zhí)行某種過程而改進(jìn)它的性能,這就是學(xué)習(xí);明斯基(M. Minsky)認(rèn)為:學(xué)習(xí)是在人們頭腦中(心理內(nèi)部)進(jìn)行有用的變化;湯姆·米切爾(Tom M. Mitchell)認(rèn)為:對(duì)于某類任務(wù)T和性能度P,如果一個(gè)計(jì)算機(jī)程序在T上以P衡量的性能隨著經(jīng)驗(yàn)E而自我完善,那么,我們稱這個(gè)計(jì)算機(jī)程序從經(jīng)驗(yàn)E中學(xué)習(xí)。根據(jù)不同的分類準(zhǔn)則,機(jī)器學(xué)習(xí)又可以分為不同的類別,具體參見表4-2。
表4-2 不同分類準(zhǔn)則意義下的機(jī)器學(xué)習(xí)
事實(shí)上,具體到每一個(gè)機(jī)器學(xué)習(xí)方法,根據(jù)上述不同的分類準(zhǔn)則,可能會(huì)歸屬到一個(gè)或多個(gè)類別中。
非監(jiān)督學(xué)習(xí)
在非監(jiān)督學(xué)習(xí)(unsupervised learning)中,數(shù)據(jù)并不會(huì)被特別標(biāo)識(shí),學(xué)習(xí)模型是為了推斷出數(shù)據(jù)的一些內(nèi)在結(jié)構(gòu)。非監(jiān)督學(xué)習(xí)一般有兩種思路:
(1)第一種思路是在指導(dǎo)Agent時(shí)不為其指定明確的分類,而是在成功時(shí)采用某種形式的激勵(lì)制度。需要注意的是,這類訓(xùn)練通常會(huì)被置于決策問題的框架里,因?yàn)樗哪繕?biāo)不是產(chǎn)生一個(gè)分類系統(tǒng),而是做出最大回報(bào)的決定,這類學(xué)習(xí)往往被稱為強(qiáng)化學(xué)習(xí)。
(2)第二種思路稱之為聚合(clustering),這類學(xué)習(xí)類型的目標(biāo)不是讓效用函數(shù)最大化,而是找到訓(xùn)練數(shù)據(jù)中的近似點(diǎn)。常見的應(yīng)用場(chǎng)景包括關(guān)聯(lián)規(guī)則的學(xué)習(xí)以及聚類等。常見算法包括關(guān)聯(lián)規(guī)則挖掘、K-Means、EM等。
關(guān)聯(lián)規(guī)則挖掘
顧名思義,關(guān)聯(lián)規(guī)則挖掘就是從數(shù)據(jù)背后發(fā)現(xiàn)事物(務(wù))之間可能存在的關(guān)聯(lián)或者聯(lián)系。比如數(shù)據(jù)挖掘領(lǐng)域著名的“啤酒-尿不濕”的故事(這個(gè)故事的真假不論)就是典型的關(guān)聯(lián)規(guī)則挖掘發(fā)現(xiàn)的有趣現(xiàn)象。在關(guān)聯(lián)規(guī)則挖掘場(chǎng)景下,一般用支持度和置信度兩個(gè)閥值來(lái)度量關(guān)聯(lián)規(guī)則的相關(guān)性(關(guān)聯(lián)規(guī)則就是支持度和信任度分別滿足用戶給定閾值的規(guī)則)。所 謂 支 持 度(support), 指 的 是 同 時(shí) 包 含X、Y的 百 分 比, 即P(X, Y);所謂置信度(confidence)指的是包含X(條件)的事務(wù)中同時(shí)又包含Y(結(jié)果)的百分比,即條件概率P(Y|X),置信度表示了這條規(guī)則有多大程度上可信。
關(guān)聯(lián)規(guī)則挖掘的一般步驟是:首先進(jìn)行頻繁項(xiàng)集挖掘,即從數(shù)據(jù)中找出所有的高頻項(xiàng)目組(frequent itemsets,滿足最小支持度或置信度的集合,一般找滿足最小支持度的集合);然后進(jìn)行關(guān)聯(lián)規(guī)則挖掘,即從這些高頻項(xiàng)目組中產(chǎn)生關(guān)聯(lián)規(guī)則(association rules,既滿足最小支持度又滿足最小置信度的規(guī)則)。
引用一個(gè)經(jīng)典用例解釋上述的若干概念,使用的數(shù)據(jù)集如表4-3所示,該數(shù)據(jù)集可以認(rèn)為是超市的購(gòu)物小票,第一列表示購(gòu)物流水ID,第二列表示每個(gè)流水同時(shí)購(gòu)買的物品。
表4-3 超市購(gòu)物流水
計(jì)算示例1:計(jì)算“如果orange則coke的置信度”,即P(coke|orange),從上述的購(gòu)物流水?dāng)?shù)據(jù)中可以發(fā)現(xiàn),含有orange的交易有4個(gè)(分別是T1、T2、T3、T4),在這4個(gè)項(xiàng)目中僅有兩條交易含有coke(T1、T4),因此
計(jì)算示例2:計(jì)算在所有的流水交易中“既有orange又有coke的支持度”,即P(orange, coke),從上述的購(gòu)物流水?dāng)?shù)據(jù)中可以發(fā)現(xiàn),總計(jì)有5條交易記錄(T1、T2、T3、T4、T5),既有orange又有coke的記錄有兩條(T1、T4),因此
上述兩個(gè)計(jì)算示例總結(jié)出的關(guān)聯(lián)規(guī)則是:如果一個(gè)顧客購(gòu)買了orange,則有50%的可能購(gòu)買coke。而這樣的情況(即買了orange會(huì)再買coke)會(huì)有40%的可能發(fā)生。
K-Means算法
K-Means算法是典型的基于距離的聚類算法,K-Means認(rèn)為:
(1)兩個(gè)對(duì)象的距離越近,其相似度就越大。
(2)相似度接近的若干對(duì)象組成一個(gè)聚集(也可稱為“簇”)。
(3)K-Means的目標(biāo)是從給定數(shù)據(jù)集中找到緊湊且獨(dú)立的簇。
K-Means中的“K”指的就是在數(shù)據(jù)集中找出的聚集(“簇”)的個(gè)數(shù),在K-Means算法中,此“K”的大小需要事先設(shè)定,K-Means的算法流程如下:
輸入:數(shù)據(jù)集,K
輸出:K個(gè)聚集
Step-1:從N個(gè)數(shù)據(jù)對(duì)象中任意選擇K個(gè)對(duì)象作為初始聚類中心,記為
Step-2:根據(jù)每個(gè)聚類對(duì)象的均值(中心對(duì)象),計(jì)算每個(gè)對(duì)象與
這些中心對(duì)象的距離,并根據(jù)最小距離重新對(duì)相應(yīng)對(duì)象進(jìn)行劃分,即
Step-3:重新計(jì)算每個(gè)(有變化)聚類的均值(中心對(duì)象),即
Step-4:循環(huán)Step-2到Step-3直到每個(gè)聚類不再發(fā)生變化(收斂)為止。
K-Means聚類算法的優(yōu)點(diǎn)集中體現(xiàn)在(不限于):
(1)算法快速、簡(jiǎn)單。
(2)對(duì)大數(shù)據(jù)集有較高的計(jì)算效率并且可伸縮。
(3)時(shí)間復(fù)雜度近于線性,適合挖掘大規(guī)模數(shù)據(jù)集。K-Means聚類算法的時(shí)間復(fù)雜度是Q (N·K·T ),其中N代表數(shù)據(jù)集中對(duì)象的數(shù)量;T代表著算法迭代的次數(shù);K代表著簇的數(shù)目;一般而言:K<
K-Means的缺陷集中體現(xiàn)在(不限于):
(1)在K-Means算法中,K是事先設(shè)定的,而K值的選定是非常難以估計(jì)的。很多時(shí)候,事先并不知道給定的數(shù)據(jù)集應(yīng)該被分成多少個(gè)類別才最合適。
(2)在K-Means算法中,初始聚類中心的選擇對(duì)聚類結(jié)果有較大的影響,一旦初始值選擇得不好,可能無(wú)法得到有效的聚類結(jié)果。
(3)K-Means算法需要不斷地進(jìn)行樣本分類調(diào)整,不斷地計(jì)算調(diào)整后的新的聚類中心,因此當(dāng)數(shù)據(jù)量非常大時(shí),算法的時(shí)間開銷是非常大的。
監(jiān)督學(xué)習(xí)
監(jiān)督學(xué)習(xí)(supervised learning)是指:利用一組已知明確標(biāo)識(shí)或結(jié)果的樣本調(diào)整分類器的參數(shù),使其達(dá)到所要求性能的過程,也稱為有教(導(dǎo))師學(xué)習(xí)。所謂“監(jiān)督”或者“有教(導(dǎo))師”指的是監(jiān)督學(xué)習(xí)必須依賴一個(gè)已經(jīng)標(biāo)記的訓(xùn)練數(shù)據(jù)(訓(xùn)練集)作為監(jiān)督學(xué)習(xí)的輸入(學(xué)習(xí)素材)。訓(xùn)練集是由若干個(gè)訓(xùn)練實(shí)例組成,每個(gè)實(shí)例都是一個(gè)屬性集合(通常為向量,代表對(duì)象的特征)和一個(gè)明確的標(biāo)識(shí)(可以是離散的,也可以是連續(xù)的)組成。監(jiān)督學(xué)習(xí)的過程就是建立預(yù)測(cè)模型的學(xué)習(xí)過程,將預(yù)測(cè)結(jié)果與訓(xùn)練集的實(shí)際結(jié)果進(jìn)行比較,不斷地調(diào)整預(yù)測(cè)模型,直到模型的預(yù)測(cè)結(jié)果達(dá)到一個(gè)預(yù)期的準(zhǔn)確率。
根據(jù)訓(xùn)練集中的標(biāo)識(shí)是連續(xù)的還是離散的,可以將監(jiān)督學(xué)習(xí)分為兩類:回歸和分類。前者對(duì)應(yīng)于訓(xùn)練集的標(biāo)識(shí)是連續(xù)的情況,而后者適用于訓(xùn)練集的標(biāo)識(shí)是離散的場(chǎng)景,離散的標(biāo)識(shí)往往稱為類標(biāo)(label)。
回歸
回歸是研究一個(gè)隨機(jī)變量Y或者一組隨機(jī)變量Y ( y1, y2, …, yn )對(duì)一個(gè)屬性變量X或者一組屬性變量X (x1, x2, …, xn )的相依關(guān)系的統(tǒng)計(jì)分析方法,通常稱X或者X (x1, x2, …, xn )為自變量,稱Y或者Y ( y1, y2, …, yn )為因變量。當(dāng)因變量和自變量的關(guān)系是線性時(shí),則稱為線性模型(這是最簡(jiǎn)單的一類數(shù)學(xué)模型)。當(dāng)數(shù)學(xué)模型的函數(shù)形式是未知參數(shù)的線性函數(shù)時(shí),稱為線性回歸模型;當(dāng)函數(shù)形式是未知參數(shù)的非線性函數(shù)時(shí),稱為非線性回歸模型。
回歸分析的一般過程是通過因變量和自變量建立回歸模型,并根據(jù)訓(xùn)練集求解模型的各個(gè)參數(shù),然后評(píng)價(jià)回歸模型是否能很好地?cái)M合測(cè)試集實(shí)例,如果能夠很好地?cái)M合,則可以根據(jù)自變量進(jìn)行因變量的預(yù)測(cè),回歸分析的主要步驟是:
(1)尋找h函數(shù)(即hypothesis)。
(2)構(gòu)造J (W )函數(shù)(又稱損失函數(shù))。
(3)調(diào)整參數(shù)W使得J (W )函數(shù)最小。
1.? 線性回歸
線性回歸模型假設(shè)自變量(也稱輸入特征)和因變量(也稱目標(biāo)值)滿足線性關(guān)系。為了便于敘述,取自變量為X (x1, x2, …, xn ),因變量為Y,訓(xùn)練參數(shù)為W (w1, w2, …, wn )。
(1)目標(biāo)數(shù)學(xué)模型函數(shù)定義為
(2)基于最小二乘定義損失函數(shù)為
其中Xi和Yi分別表示訓(xùn)練集中第i個(gè)樣本的自變量和因變量,m表示訓(xùn)練集的個(gè)數(shù),前面乘上系數(shù)(1/2)是為了求導(dǎo)的時(shí)候,使常數(shù)系數(shù)消失。
(3)調(diào)整參數(shù)W使得J (W )最小,即
具體的方法有梯度下降法、最小二乘法等,下面先以梯度下降法介紹求解思路:對(duì)W取一個(gè)隨機(jī)初始值,然后不斷地迭代改變W的值使J減小,直到最終收斂(取得一個(gè)W值使得J (W )最?。的迭代更新規(guī)則如下
其中,ε稱為學(xué)習(xí)率(Learning Rate),j表示W(wǎng)的迭代次數(shù),將J (W )代入上式得到:
此更新規(guī)則稱為最小均方LMS(least mean squares,LMS)更新策略,也稱為Widrow-Hoff learning rule,從此更新公式可以看到,W的每一次迭代都考察訓(xùn)練集的所有樣本,這種更新策略稱為批量梯度下降(batch gradient descent)。還有一種更新策略是隨機(jī)梯度下降(stochastic gradient descent),其基本思路是:每處理一個(gè)訓(xùn)練樣本就更新一次W。相比較而言,由于batch gradient descent在每一步都考慮全部數(shù)據(jù)集,因而復(fù)雜度比較高;隨機(jī)梯度下降會(huì)比較快地收斂。在實(shí)際情況中兩種梯度下降得到的最優(yōu)解J (W )一般都會(huì)接近真實(shí)的最小值,所以對(duì)于較大的數(shù)據(jù)集,一般采用效率較高的隨機(jī)梯度下降法。
為了便于理解上述的計(jì)算流程,以一個(gè)具體的示例加以說明,示例設(shè)置如下。
整個(gè)訓(xùn)練過程中各個(gè)參數(shù)變化如表4-4,為了便于閱讀,將每次迭代W的變化羅列在表中,即表中的?w1、?w2、?w3。
為了表示方便,表4-4中的數(shù)值均保留兩位小數(shù),并且僅顯示了5步迭代的計(jì)算過程(假定0.02是可以接受的誤差),從表4-4可見,經(jīng)過5步迭代后可得到回歸模型函數(shù)是
表4-4 簡(jiǎn)單迭代過程示意
事實(shí)上,對(duì)于形如的樣本,其模型或許是,這意味著兩點(diǎn):
(1)從回歸的角度而言,結(jié)果可能并不唯一。
(2)回歸結(jié)果未必是數(shù)據(jù)樣本本來(lái)的模型。
對(duì)于后者,如果有更多的學(xué)習(xí)樣本,或許會(huì)有利于結(jié)果更加逼近訓(xùn)練集背后的模型,這或許也是大數(shù)據(jù)時(shí)代,為什么要更熱衷于“大”的數(shù)據(jù),因?yàn)椋ㄓ幸愿按蟆钡臄?shù)據(jù)作為支撐,才有可能發(fā)掘數(shù)據(jù)背后的那個(gè)知識(shí)或模型。
剛才提及的更新策略是梯度下降法,需要多次迭代,相對(duì)比較費(fèi)時(shí)而且不太直觀。除了梯度下降法以外,還有最小二乘法更新策略。最小二乘法的計(jì)算思路是基于矩陣論,將權(quán)值的計(jì)算從梯度下降法的迭代改為矩陣計(jì)算,經(jīng)過推導(dǎo)可以知道
限于篇幅原因,此處不做具體的推導(dǎo)。無(wú)論是梯度下降法還是最小二乘法,其在擬合的過程中都是基于X (x1, x2, …, xn )中“每一個(gè)屬性的重要性(權(quán)重)是一樣”的這樣假設(shè),而這在實(shí)際場(chǎng)景中未必適用(往往會(huì)產(chǎn)生過擬合或者欠擬合的現(xiàn)象),針對(duì)這種情況就產(chǎn)生了加權(quán)的線性回歸的思路,其本質(zhì)是對(duì)各個(gè)元素進(jìn)行規(guī)范化處理,對(duì)不同的輸入特征賦予了不同的非負(fù)值權(quán)重,權(quán)重越大,對(duì)于代價(jià)函數(shù)的影響越大。
特 別 值 得 一 提 的 是: 上 述 提 到 的 線 性 回 歸 模 型Y (W, X ) =
w1x1 + w2x2 + … + wn xn,所謂的線性是對(duì)參數(shù)W而言的,并非一定是輸入X (x1, x2, …, xn )的線性函數(shù),比如可以通過一系列的基函數(shù)?i (.)對(duì)輸入
進(jìn)行非線性變換,即
其中,?i (.)是基函數(shù),可選擇的基函數(shù)有多項(xiàng)式、高斯函數(shù)、Sigmoid函數(shù)等,簡(jiǎn)單介紹如下。
(1)多項(xiàng)式
多項(xiàng)式函數(shù)是由常數(shù)與自變量經(jīng)過有限次乘法與加法運(yùn)算得到的,定義如下
其中,ai (i = 0, 1, …, n)是常數(shù),當(dāng)n = 1時(shí),多項(xiàng)式函數(shù)為一次函數(shù)。
(2)高斯函數(shù)
高斯函數(shù)的形式如下
其中,a、b及c均是實(shí)常數(shù),且a > 0。
(3)Sigmoid函數(shù)
Sigmoid函數(shù)是一個(gè)在生物學(xué)中常見的S函數(shù),定義如下
2.? Logistic回歸
Logistic回歸一般用于分類問題,而其本質(zhì)是線性回歸模型,只是在回歸的連續(xù)值結(jié)果上加了一層函數(shù)映射,將特征線性求和,然后使用g (z)作映射,將連續(xù)值映射到一個(gè)區(qū)間內(nèi),然后在該區(qū)間內(nèi)取定一個(gè)閾值作為分類邊界。根據(jù)映射函數(shù)g (z)的不同選擇,其分類性能也不同,比如如果映射函數(shù)是Sigmoid函數(shù)時(shí),其分類結(jié)果為0和1兩類,而如果映射函數(shù)是雙曲正弦sinh函數(shù)時(shí),其分類結(jié)果則為1和-1兩類。
以Sigmoid二值化(Sigmoid函數(shù)的特征是:當(dāng)自變量趨于-∞,因變量趨近于0,而當(dāng)自變量趨近于∞,因變量趨近于1)為例,為了便于后文的敘述,將Y (W, X )寫作hW (X ),Logistic回歸模型如下Logistic回歸與多重線性回歸實(shí)際上有很多相同之處,最大的區(qū)別就是他們的因變量不同,其他的基本都差不多。正是因?yàn)槿绱?,這兩種回歸可以歸于同一個(gè)家族,即廣義線性模型(generalized linearmodel)。Logistic回歸的因變量可以是二分類的,也可以是多分類的,但是二分類的更為常用,也更加容易解釋。所以實(shí)際中最為常用的就是二分類的Logistic回歸。如果因變量是多分類的,則擴(kuò)展為Softmax回歸。Softmax回歸模型是logistic模型在多分類問題上的推廣,在Softmax回歸中,類標(biāo)簽Y 可以取k (k > 2)個(gè)不同的值,其推導(dǎo)思路與Logistic回歸相同,本文不再贅述。
分類
分類問題是機(jī)器學(xué)習(xí)研究中的一個(gè)重要問題,與回歸問題類似,分類過程也是從訓(xùn)練集中建立因變量和自變量的映射過程。與回歸問題不同的是,在分類問題中,因變量的取值是離散的,根據(jù)因變量的取值范圍(個(gè)數(shù))可將分類問題分為二分類問題(比如“好人”或者“壞人”)、三分類問題(比如“支持”、“中立”或者“反對(duì)”)及多分類問題。在分類問題中,因變量稱為類標(biāo)(label),而自變量稱為屬性(或者特征)。
根據(jù)分類采用的策略和思路的不同,分類算法包括(不限于):基于示例的分類方法(代表算法是KNN)、基于概率模型的分類方法(代表算法是樸素貝葉斯、最大期望算法EM)、基于線性模型的分類方法(代表算法是SVM)、基于決策模型的分類方法(代表算法包括:C4.5、AdaBoost、隨機(jī)森林)等,下面簡(jiǎn)單介紹上述各種典型的分類算法的問題背景和算法思路。
1. KNN
K最近鄰(k-nearest neighbor,KNN)分類算法是一個(gè)理論上比較成熟的方法,也是最簡(jiǎn)單的機(jī)器學(xué)習(xí)算法之一。該方法的出發(fā)點(diǎn)是:如果一個(gè)樣本在特征空間中的k個(gè)最相似(即特征空間中最鄰近)的樣本中的大多數(shù)屬于某一個(gè)類別,則該樣本也屬于這個(gè)類別,并具有這個(gè)類別上樣本的特性。KNN算法則是從訓(xùn)練集中找到和新數(shù)據(jù)最接近的k條記錄,然后根據(jù)他們的主要類別來(lái)決定新數(shù)據(jù)的類別。該算法涉及3個(gè)主要因素:訓(xùn)練集、距離或相似的度量、k的大小,算法的執(zhí)行步驟如下:
輸入:訓(xùn)練集(包括n個(gè)已經(jīng)標(biāo)注的記錄(X, X ))、k、測(cè)試用例X (x1, x2, …, xn )
輸出:測(cè)試用例的類標(biāo)
Step-1:遍歷訓(xùn)練集中的每個(gè)記錄,計(jì)算每個(gè)記錄屬性特征Xi(i = 1, 2, …n)與測(cè)試用例X (x1, x2, …, xn )的距離,記為Di(i = 1, 2, …n);
Step-2:從Di (i = 1, 2, …n)中選擇最小的k個(gè)記錄(樣本);
Step-3:統(tǒng)計(jì)這k個(gè)記錄(樣本)對(duì)應(yīng)的類別出現(xiàn)的頻率;
Step-4:返回出現(xiàn)頻率最高的類別作為測(cè)試用例的預(yù)測(cè)類標(biāo)。
KNN的思想很好理解,也容易實(shí)現(xiàn)。更重要的是:KNN算法不僅可以用于分類,還可以用于回歸,具體思路是:通過找出一個(gè)樣本的k個(gè)最近鄰居,將這些鄰居的屬性的平均值賦給該樣本,就可以得到該樣本的屬性。更有用的方法是將不同距離的鄰居對(duì)該樣本產(chǎn)生的影響給予不同的權(quán)值(如權(quán)值與距離成反比),使得回歸更加普適。但KNN算法的不足之處在于:
(1)每次分類都需要和訓(xùn)練集中所有的記錄進(jìn)行一次距離或相似度的計(jì)算,如果訓(xùn)練集很大,則計(jì)算負(fù)擔(dān)很重。
(2)從上述記錄流程中可以看出,如果k個(gè)近鄰的類別屬性各異,則就給分類帶來(lái)了麻煩(需要其他策略支持)。
2.樸素貝葉斯
樸素貝葉斯分類是利用統(tǒng)計(jì)學(xué)中的貝葉斯定理來(lái)預(yù)測(cè)類成員的概率,即給定一個(gè)樣本,計(jì)算該樣本屬于一個(gè)特定的類的概率,樸素貝葉斯分類基于的一個(gè)假設(shè)是:每個(gè)屬性之間都是相互獨(dú)立的,并且每個(gè)屬性對(duì)分類問題產(chǎn)生的影響都是一樣的。
貝葉斯定理由英國(guó)數(shù)學(xué)家貝葉斯(Thomas Bayes)發(fā)現(xiàn),用來(lái)描述兩個(gè)條件概率之間的關(guān)系,比如P (A|B)和P (B|A),其中P (A|B)表示事件B已經(jīng)發(fā)生的前提下,事件A發(fā)生的概率,稱為事件B發(fā)生下事件A的條件概率,其基本公式是
按照乘法法則
P (A∩B) = P (A) * P (B | A) = P (B) * P (A | B)
由上式可以推導(dǎo)得到
例,一座別墅在過去的20年里一共發(fā)生過2次被盜,別墅的主人有一條狗,狗平均每周晚上叫3次,在盜賊入侵時(shí)狗叫的概率被估計(jì)為0.9,問題是:在狗叫的時(shí)候發(fā)生入侵的概率是多少?
用貝葉斯的理論求解此問題,假設(shè)A事件為“狗在晚上叫”,B為“盜賊入侵”,則:
(1)(計(jì)算根據(jù):狗平均每周晚上叫3次)
(2)(計(jì)算根據(jù):過去20年發(fā)生過2次被盜)
(3) P (A|B)=0.9。(計(jì)算根據(jù):B 事件發(fā)生時(shí) A 事件發(fā)生的概率是 0.9)
基于上述數(shù)據(jù),可以很容易地計(jì)算出A事件發(fā)生時(shí)B事件發(fā)生的概率P (B | A)是
樸素貝葉斯分類的出發(fā)點(diǎn)是:對(duì)于給出的待分類項(xiàng),求解在此項(xiàng)出現(xiàn)的條件下各個(gè)類別出現(xiàn)的概率,哪個(gè)最大,就認(rèn)為此待分類項(xiàng)屬于哪個(gè)類別。為了便于描述,將事件A表示為特征屬性X (x1, x2, …, xn ),將事件B表示類標(biāo)屬性Y (y1, y2, …, ym ),則樸素貝葉斯分類問題可以描述為:
對(duì)于一個(gè)給定的測(cè)試樣本的特征屬性X (x1, x2, …, xn ),求其屬于各個(gè)類標(biāo)
yi(i = 1, 2, …, m)的概率P (yi | X )中的最大值,基于前面的定義可以知道
其中X表示特征屬性(x1, x2, …, xn ),由于樸素貝葉斯是基于屬性獨(dú)立性的假設(shè)(前文已提及),故
又由于P (X )是一個(gè)常數(shù),因此只要比較分子的大小即可。樸素貝葉斯分類器的算法流程如下。
輸入:訓(xùn)練集,測(cè)試用例X (x1, x2, …, xn)
輸出:測(cè)試用例X (x1, x2, …, xn)的類標(biāo)
Step-1:遍歷訓(xùn)練集,統(tǒng)計(jì)各個(gè)類別下各個(gè)特征屬性的條件概率估計(jì),即P (xi | yi)(i = 1, 2, …, n; j = 1, 2, …, m)
Step-2:遍歷訓(xùn)練集,根據(jù)上述公式,計(jì)算P (y1 | X ), P (y2 | X ), …,P (ym | X )
Step-3:如果P (yk | X ) = max{P (y1 | X ), P (y2| X), …, P (ym | X )},則測(cè)試用例的類標(biāo)是yk。
為了更好地理解上述計(jì)算流程,以一個(gè)具體的實(shí)例說明。已知一個(gè)訓(xùn)練集如表4-5所示,特征屬性有兩個(gè),分別是color和weight,其中,color的取值范圍是{0, 1, 2, 3};weight的取值范圍是{0, 1, 2, 3, 4}。類標(biāo)屬性有1個(gè)(sweet),取值范圍是{yes, no}。
表4-5 訓(xùn)練集示意
測(cè)試用例是(color = 3; weight = 4),求其類標(biāo)。
遍歷訓(xùn)練集,可以得到:
遍歷訓(xùn)練集,可以得到:
因?yàn)闇y(cè)試用例是(color = 3; weight = 4),所以
由于P (y1 | (x1 = 3;x2 = 4)) > P (y2 | (x1 = 3; x2 = 4)),故測(cè)試用例的類標(biāo)是y1,即yes。
通過上述的計(jì)算實(shí)例可以發(fā)現(xiàn),事實(shí)上,是沒有必要把P (xi | yi)的所有可能均事先計(jì)算出來(lái),而是根據(jù)測(cè)試用例的具體樣本進(jìn)行選擇性的計(jì)算即可。理論上,樸素貝葉斯分類模型與其他分類方法相比具有最小的誤差率,但其獨(dú)立性假設(shè)在實(shí)際應(yīng)用中往往是不成立的,這給樸素貝葉斯分類模型的正確分類帶來(lái)了一定影響。針對(duì)這個(gè)缺點(diǎn),也有一些改進(jìn)的算法,此處不作羅列。
-
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8353瀏覽量
132315 -
數(shù)據(jù)建模
+關(guān)注
關(guān)注
0文章
11瀏覽量
6963 -
大數(shù)據(jù)
+關(guān)注
關(guān)注
64文章
8854瀏覽量
137212
原文標(biāo)題:如何用機(jī)器學(xué)習(xí)方法進(jìn)行數(shù)據(jù)建模?(文末福利)
文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論