大數據分析方法與應用 課件 第8章 支持向量機_第1頁
大數據分析方法與應用 課件 第8章 支持向量機_第2頁
大數據分析方法與應用 課件 第8章 支持向量機_第3頁
大數據分析方法與應用 課件 第8章 支持向量機_第4頁
大數據分析方法與應用 課件 第8章 支持向量機_第5頁
已閱讀5頁,還剩37頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

大數據分析方法與應用上海理工大學主講人:耿秀麗

教授第8章支持向量機8.1支持向量機的原理目錄CONTENTS8.2支持向量機算法8.3支持向量機算法參數優化8.4算法應用及案例分析8.5課后習題第8章支持向量機8.1.1支持向量機的由來8.1.2支持向量機的發展8.1支持向量機的原理8.1支持向量機原理

支持向量機是什么?支持向量機(SupportVectorMachine,SVM)是一種以統計學習為基礎的強大的監督學習算法,通常用于分類和回歸問題。SVM在機器學習領域非常流行,并被廣泛應用于各種領域,如文本分類、圖像識別、生物信息學和金融預測等。SVM的核心思想是在特征空間中找到一個最優的超平面,將不同類別的數據點分開,并且使得超平面與最近的數據點之間的間隔盡可能大。這些最近的數據點被稱為“支持向量”,因為它們對于定義分類邊界非常重要。8.1支持向量機原理

8.1.1支持向量機的由來SVM的早期發展始于統計學習理論,該理論是一種使用統計的方法專門研究小樣本情況下機器學習規律的理論并且針對小樣本問題建立了一套全新的理論體系,其統計推理規則不僅考慮了對漸進性能的要求,而且追求在現有有限信息的條件下得到最后結果Vapnik在該理論中提出了結構風險最小化(StructuralRiskMinimization,SRM)的概念,該概念強調在進行模型選擇時需要平衡模型的經驗誤差和模型的復雜性,以實現更好的泛化性能。具體來說結構化風險可以分為結構風險和置信風險。結構風險指的是給定樣本上的分類誤差,而置信風險是指在未知樣本的分類誤差。我們在訓練模型時會讓結構風險變得很小,但是這個模型能否預測未知樣本則需關注置信風險。訓練樣本數越多置信風險也越小。而分類函數越復雜,則會導致其普適性變差,增加置信風險。SVM的研究意義就是讓結構風險和置信風險的和最小。8.1支持向量機原理

8.1.2支持向量機的發展最早的SVM是用于線性可分數據的,研究主要集中在找到最大間隔超平面和支持向量的數學推導與算法優化上。Vapnik和Cortes首次提出了現代形式的線性SVM,其基本思想是通過拉格朗日乘數法將線性可分問題轉化為凸優化問題,并利用對偶問題求解得到支持向量為了應對現實世界中存在的線性不可分數據,研究者又提出了軟間隔SVM,引入松弛變量來容忍一定的誤分類1995年為了應對現實世界中存在的線性不可分數據8.1支持向量機原理

8.1.2支持向量機的發展提出了一對多(One-vs-Rest)和一對一(One-vs-One)等策略來處理多類別分類問題。開始的SVM是針對二分類問題的,但實際中存在多類別分類的需求研究者提出了核函數的概念,將數據映射到高維特征空間,并在高維空間中尋找線性可分的超平面由于實際數據往往是復雜的、非線性可分的8.1支持向量機原理

8.1.1支持向量機的由來8.1支持向量機原理

8.1.1支持向量機的由來支持向量機原理這些豆子叫做data,把線叫做classifier,最大間隙trick叫做optimization,拍桌子叫做kernelling核函數,那張紙叫做hyperplane超平面8.2.1支持向量機的模型算法8.2.2支持向量機模型優化算法8.2支持向量機算法8.2.3核函數8.2.4支持向量機算法的計算機實現8.2支持向量機算法

8.2.1支持向量機的模型算法給定訓練樣本集:

D={(x1,y1),…,(xm,ym)}其中xi∈Rn,yi∈{-1,+1},i=1,...,m,Rn表示n維歐式空間。劃分超平面的線性方程描述:分類學習最基本的思想就是基于訓練樣本集D在樣本空間中找到一個超平面,將不同的樣本分開。找到最大間隔則可以找到最優超平面。如圖8?1所示,由此SVM優化模型表述如下:

圖8?1

支持向量機示意圖對于一個線性可分的訓練集,SVM認為存在(ω·b)使得yi[ωTxi+b]≥0。同時根據點到平面之間距離的公式,可以得出樣本空間中任意一點到超平面的距離為:距離超平面最近的幾個點被稱為支持向量,兩類異類向量的距離則為樣本中的間隔D,可以用如下公式描述:8.2支持向量機算法

8.2.1支持向量機的模型算法對于非線性問題來說,往往無法在原始樣本空間中尋找到一個超平面把訓練樣本正確分類。SVM的做法是在將原始樣本空間映射到一個更高的特征空間,以期可以找到一個超平面,使得樣本集在這個空間內可分。具體做法是令φ(x)表示x映射在特征空間的向量。

特征空間的超平面可以表示為:

則有SVM優化模型:

而高維映射φ(x)的線性表達式不易求出,往往使用如下核函數:

同時訓練集中可能存在一些特異點,在特征空間中也找不到線性可分的超平面的情況下,去掉這些特異點后,剩下的大部分訓練數集是線性可分的。8.2支持向量機算法

8.2.1支持向量機的模型算法線性不可分意味著某些樣本點(xi,yi)不能滿足間隔大于等于1的條件,樣本點落在超平面與邊界之間。為解決這一問題,可以對每個樣本點引入一個松弛變量ξi≥0,使得間隔加上松弛變量大于等于1

這樣約束條件變為:

SVM的優化模型則變成:

其中C>0為懲罰參數,C值大時對誤分類的懲罰增大,C值小時對誤分類的懲罰減小。C主要作用在于使得間隔足夠大,同時使誤分類點的個數盡量少,用于調和兩者的系數。8.2支持向量機算法

8.2.2支持向量機的模型優化算法VM的優化模型本身是一個凸的二次型問題,使用原問題的對偶問題可以使得優化模型可解。原問題的模型描述如下所示。

原問題的對偶問題定義如下所示。

對偶問題的優化模型如下所示。

8.2支持向量機算法

8.2.2支持向量機的模型優化算法根據對偶問題的原問題,SVM的優化模型如下所示。其對應的對偶問題優化模型如下所示。而后根據強對偶關系定理,若f(w)為凸函數,且g(w)=Aw+b,g(w)=Cw+d,則此優化問題的原問題與對偶問題的間距為0,即:SVM的最終優化模型為:

8.2支持向量機算法

8.2.3核函數核函數是什么?

核函數是SVM中的重要概念,它允許我們在低維空間中進行計算,這樣做的好處是避免了直接在高維空間中進行復雜計算,從而節省了計算資源和時間。

數學上,核函數是一個將原始特征空間映射到高維特征空間的函數。在高維特征空間中,數據更有可能是線性可分的。核函數可以將原始特征空間中的點對應到高維空間中,然后在高維空間中計算數據之間的內積,從而實現在原始特征空間中的非線性分類。核函數有什么種類?在SVM的最終優化模型中,K(xi,yi)被稱為核函數,它滿足Mercer條件的任何對稱的核函數對應于樣本空間的點積。核函數的種類較多,常用的有:1)線性核(LinearKernel):K(xi,yi)=xTy,這是最簡單的核函數,適用于線性可分問題。2)多項核(PolynomialKernel):K(xi,yi)=(xTy+c)α,其中c是一個常數項,α是多項式的階數。多項式核函數可以用于處理一些簡單的非線性問題。3)徑向基核(RadialBasiaFunctionKernel)Rbf(高斯徑向基函數核):RBF核函數是非常常用的核函數,適用于各種非線性問題。4)Sigmoid核(SigmoidKernel):K(xi,yi)=tanh(βxTy+θ),這個核函數的形式基于Sigmoid函數,其中β和θ是參數。Sigmoid核函數可以用于神經網絡的模擬,在SVM中被用來解決二分類問題8.2支持向量機算法

8.2.4支持向量機算法的計算機實現支持向量機(SVM)進行分類的Python代碼如下所示。1)首先需要在pycharm中添加相應的第三方庫,即在文件>設置>Python解釋器中單擊“+”,如圖8-2所示。圖8?2pycharm中添加第三方庫8.2支持向量機算法

8.2.4支持向量機算法的計算機實現2)在新建的python文件中,書寫相應的代碼,如圖8-3所示。圖8?3代碼示例8.2支持向量機算法

8.2.4支持向量機算法的計算機實現3)最后單擊運行得到分類結果,如圖8-4所示。圖8?4運行代碼8.3.1模糊支持向量機8.3.2最小二乘支持向量機8.3支持向量機算法參數優化8.3.3粒子群算法優化支持向量機8.3支持向量機算法參數優化

8.3.1模糊支持向量機(FuzzySupportVectorMachine,FSVM)是什么?

由于支持向量機對于離群點和噪點的敏感性,Lin和Wang提出了FSVM,用于有噪聲或離群點的分類。

其中FSVM的關鍵問題在于如何確定隸屬度函數,目前沒有統一的標準去選擇一個相對較為合適的隸屬度,往往需要依據經驗來選擇較為合適的隸屬度函數。通過對每個輸入的樣本點賦予模糊隸屬度值,使不同的樣本點對最優分類超平面的構建具有不同的貢獻,降低了噪聲或離群點對最優決策面的影響。8.3支持向量機算法參數優化

8.3.1模糊支持向量機(FuzzySupportVectorMachine,FSVM)對于給定的一組訓練樣本集S={(x1,y1,S1),(x2,y2,S2),…,(xm,ym,Sm)},其中xm是樣本空間的樣本點,ym是樣本對應的標簽,Sm是模糊隸屬度值,代表著樣本點xm歸屬于某一類ym的權重。與標準的SVM算法一樣,模糊支持向量機也是尋找一個能最大化分類間隔的超平面ωTφ(x)+b=0,使得高維的求解最優解分類問題轉化成如下所示的最優化問題。其中ξi是松弛變量,C是正則化參數用于平衡分類最大間隔和分類誤差之間的平衡。ξiSm為重要性不同變量的錯分程度。當Sm越小,ξi的影響越小,則對應的φ(x)對于分類的作用就越小。SmC則是衡量樣本xi在訓練FSVM算法時的重要程度,SmC的值越大,代表樣本xi被正確分類的可能性越大,反之表示樣本xi被正確分類的可能性越小。要解決上述優化問題,如同SVM的標準型一樣,構造出原問題的對偶問題,如下所示。8.3支持向量機算法參數優化

8.3.1模糊支持向量機(FuzzySupportVectorMachine,FSVM)根據強對偶關系定理,最后得出:8.3支持向量機算法參數優化

8.3.1模糊支持向量機(FuzzySupportVectorMachine,FSVM)那么我們如何確定隸屬度?1)基于距離確定隸屬度函數該方法是將樣本分為正類和負類,分別在兩個類找到中心,通過各個樣本到類中心的距離來確定隸屬度。樣本點到類中心的距離越小,表示該樣本點的隸屬度越大,反之,則表示該樣本點的隸屬度越小。找到兩個類的中心后,基于類中心的超平面到各個樣本點的距離來度量隸屬度函數的大小。2)基于K近鄰法(KNN)確定隸屬度函數該方法是在樣本數據中找到一個集合包含其附近的K個點,計算樣本點到這個集合中所有點的距離的平均值di,找到其中的最遠距離dmax和最近距離dmin,帶入如下函數,即為隸屬度函數。8.3支持向量機算法參數優化

8.3.2最小二乘支持向量機LSSVM(LeastSquareSupportVectorMachine,LSSVM)

由于支持向量機在大規模訓練樣本時,存在訓練速度慢、穩定性差等缺點,且學習過程中需要求解二次規劃問題,從而制約了使用范圍。1999年,Suykens和Vandewalle等人在SVM的基礎上提出LSSVM,該算法的計算復雜度大大降低,使得訓練速度得到提高。LSSVM方法是在標準支持向量機的基礎上的一種擴展,該算法將支持向量機的求解從二次規劃問題轉化為線性方程組。它與支持向量機的不同之處在于它把不等式約束改成等式約束,并把經驗風險由偏差的一次方改為二次方。

給定訓練樣本集D={(x1,y1),(x2,y2),…,(xm,ym)},yi∈{-1,+1},首先用非線性φ(x)把樣本空間映射到高維特征空間之中,在這個高維空間中,劃分樣本空間的超平面用ωTφ(x)+b=0表示。根據最小二乘支持向量機,利用結構風險最小化原則,將傳統的支持向量機中的不等式約束問題轉化為等式約束問題,將二次規劃問題轉化為線性方程組來求解,具體如下所示。

最小二乘支持向量機是一個帶有等式約束的二次規劃問題,根據強對偶關系定理變形化簡,最后得出最小二乘法支持向量機的非線性預測模型如下所示。8.3支持向量機算法參數優化

8.3.3粒子群算法優化支持向量機8.3.3.1粒子群算法粒子群優化算法的數學描述為,在假定的D維空間中,有M個粒子,每個粒子代表一個解。設第i個粒子的坐標為Xid=(xi1,xi2,xi3,…,xid);第i個粒子的速度(粒子移動的距離和方向)為Vid=(vi1,vi2,vi3,…,vid);第i個粒子搜索到的最優位置為:Pid=(pi1,pi2,pi3,…,pid);群體搜索到的最優位置為Pgd=(pg1,pg2,pg3,…,pgd),則,粒子下一步迭代的速度和粒子坐標結果表示為:其中:ω為慣性因子;c1,c2表示學習因子,一般取c1=c2;r1,r2表示隨機參數數據處理給定初始數據集及相關參數計算適應度更新粒子的位置和速度計算粒子平均最優位置迭代次數是否達到上限獲得最優SVM參數8.3支持向量機算法參數優化

8.3.3粒子群算法優化支持向量機8.3.3.2粒子群優化SVM由于SVM的分類效果對核函數因子б和懲罰因子C這兩個參數的選取有著極高的依賴性,且支持向量機無法對這兩個參數閾值進行定義,而g趨于∞或g趨于0均不會產生優質的學習效果,且當C的取值不恰當時,會引起模型訓練失敗。為了取得更好的效果,通過PSO算法優化SVM模型中的懲罰因子C和核函數因子б。最后將最優參數代入到SVM模型中進行分類預測。PSO優化SVM參數過程如圖8-5所示,具體步驟如下:是否當數據集的數量級相差較大,需進行標準化處理8.4算法應用和案例分析8.4.1

案例背景8.4.2數據集的收集8.4.3劃分訓練集和測試集8.4.4基于SVM的模型預測與建立8.4.5結果分析8.4算法應用和案例分析8.4.1

案例背景A公司是國內一家大型電器制造商,專注于空調產品。他們面臨市場份額下降和智能化趨勢的挑戰。為了完成企業轉型,公司首先將產品和服務進行升級,以滿足智能化需求。但在這個過程中,他們面臨幾個問題:1)智能化推薦方法不成熟,仍然使用傳統的人工推薦方法。2)服務模塊中的售后維修和保養等基本服務與競爭對手相比沒有明顯優勢。3)缺乏系統性的產品和服務設計,整合經驗有限。4)傳統機器學習算法推薦精度低,模型性能差,缺乏研發和優化。

為了實現智能化服務化,A公司需要解決這些問題。在產品配置方面,他們不僅要提供滿意的產品,還要優化相關服務。此外,公司還需加強技術人員培訓和招聘,提高推薦精度,研發新的配置模型,增強客戶滿意度,加強與客戶的聯系。

為了進一步推進智能化服務化轉型,他們需要優化空調產品配置方案,使其更加靈活和可持續。同時,與人工推薦方案進行對比,驗證機器學習算法的推薦準確性,為未來將機器學習算法作為輔助推薦工具做準備。8.4算法應用和案例分析8.4.2數據集的收集根據公司相關手冊、產品目錄以及以往客戶的需求條件,共收集了8種關于空調的客戶需求。包括環保性、穩定性、智能性、簡便性、適應性、可靠性、舒適性、能耗性。每種需求的具體描述如表8-1所示。8.4算法應用和案例分析8.4.2數據集的收集其中每種需求有五個等級{L,ML,M,MH,H},具體意義為{低,較低,中,較高,高},為了便于計算機解讀,用{-2,-1,0,1,2}進行代替。具體的需求特征描述如表8-2所示。8.4算法應用和案例分析8.4.2數據集的收集為了編碼產品,首先要確定產品模塊和服務模塊。通過查找相關的資料,我們了解到中央空調包括了9個產品組件,每個組件都有一個或多個實例,如表8-3所示。8.4算法應用和案例分析8.4.2數據集的收集在服務模塊中,一共有5個模塊,每個模塊都有多個實例如表8-4所示。不同的產品模塊和服務模塊組成不同的產品配置方案。由于客戶的需求各異,最終確定了6種產品配置方案以滿足不同客戶的需求。例如,產品配置方案“1”可表示為:{A3,B2,C2,D2,E,F1,G,H2,I1,J2,K1,L1,M1,N1}。8.4算法應用和案例分析8.4.3劃分訓練集和測試集首先,從公司設計和銷售數據庫中提取52個數據樣本,具體數據如表8-5所示將52個樣本劃分為訓練集和測試集,訓練集的樣本數量為40個,測試集的數量為12。利用粒子群優化算法找出SVM模型的最優核函數參數和懲罰因子參數,最后將最優參數代入SVM模型中進行預測。SVM模型的輸入為需求特征,輸出為產品服務系統配置方案。8.4算法應用和案例分析8.4.4基于SVM的模型預測與建立通過OVO(OneVsOne,一對一)方法構造多類SVM模型。對于由OVO方法創建的每個可能的二進制SVM模型,將高斯RBF函數選擇為內核函數。然后,利用粒子群優化(PSO)算法并進行5-foldCV的參數尋優,找出最優參數對(C,б)帶入多分類SVM模型對產品配置進行預測。在PSO算法中,參數設置為:種群數量為50,粒子維度為2,由于樣本不多,并通過多次試驗,迭代次數設置為100次能夠尋找出最優參數,若數據樣本過多,可以增加迭代次數,因此迭代次數設置為100次,適應度函數為5-foldCV下的分類精度,算法停止條件為迭代次數大于100次。通過每一次迭代得出一個參數對(C,б),反復迭代到最大的迭代次數輸出最優的參數對(C,б)。量子粒子群優化算法的具體參數設置如表8-6所示。8.4算法應用和案例分析8.4.4基于SVM的模型預測與建立構建PSO-SVM模型后,為了能夠找出最優的核函數參數和懲罰因子,使用訓練精度作為評價指標,訓練精度最高情況下對應的核函數參數值和懲罰因子值為最優值,模型訓練結果如圖8-6所示。8.4算法應用和案例分析8.4.4基于SVM的模型預測與建立通過粒子群優化算法得出,當迭代次數到95次的時候,5-foldCV下的分類精度(即88.84%)達到最高,此時得出最優參數值=15.1922,=0.2264。將最優的參數帶入多分類SVM模型中,將12個用于測試集的樣本輸入模型中來測試模型的分類精度,測試結果如圖8-7所示。8.4算法應用和案例分析8.4.4基于SVM的模型預測與建立從圖8-7可以看出,只有一個最初歸類為“2”的樣本被誤歸類為“4”,其分類的精度為91.67%。為了驗證該模型解決實際問題的可靠性,將測試兩個新客戶的需求所提供的產品配置與實際的吻合性。第一個新客戶需要為醫院配置中央空調,其需求是能夠除菌,噪聲低(即環保性非常高),由于考慮到病人,所以舒適性也要求非常高。其輸入為{3,3,2,1,-2,3,2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論