『壹』 四種聚類方法之比較
四種聚類方法之比較
介紹了較為常見的k-means、層次聚類、SOM、FCM等四種聚類演算法,闡述了各自的原理和使用步驟,利用國際通用測試數據集IRIS對這些演算法進行了驗證和比較。結果顯示對該測試類型數據,FCM和k-means都具有較高的准確度,層次聚類准確度最差,而SOM則耗時最長。
關鍵詞:聚類演算法;k-means;層次聚類;SOM;FCM
聚類分析是一種重要的人類行為,早在孩提時代,一個人就通過不斷改進下意識中的聚類模式來學會如何區分貓狗、動物植物。目前在許多領域都得到了廣泛的研究和成功的應用,如用於模式識別、數據分析、圖像處理、市場研究、客戶分割、Web文檔分類等[1]。
聚類就是按照某個特定標准(如距離准則)把一個數據集分割成不同的類或簇,使得同一個簇內的數據對象的相似性盡可能大,同時不在同一個簇中的數據對象的差異性也盡可能地大。即聚類後同一類的數據盡可能聚集到一起,不同數據盡量分離。
聚類技術[2]正在蓬勃發展,對此有貢獻的研究領域包括數據挖掘、統計學、機器學習、空間資料庫技術、生物學以及市場營銷等。各種聚類方法也被不斷提出和改進,而不同的方法適合於不同類型的數據,因此對各種聚類方法、聚類效果的比較成為值得研究的課題。
1 聚類演算法的分類
目前,有大量的聚類演算法[3]。而對於具體應用,聚類演算法的選擇取決於數據的類型、聚類的目的。如果聚類分析被用作描述或探查的工具,可以對同樣的數據嘗試多種演算法,以發現數據可能揭示的結果。
主要的聚類演算法可以劃分為如下幾類:劃分方法、層次方法、基於密度的方法、基於網格的方法以及基於模型的方法[4-6]。
每一類中都存在著得到廣泛應用的演算法,例如:劃分方法中的k-means[7]聚類演算法、層次方法中的凝聚型層次聚類演算法[8]、基於模型方法中的神經網路[9]聚類演算法等。
目前,聚類問題的研究不僅僅局限於上述的硬聚類,即每一個數據只能被歸為一類,模糊聚類[10]也是聚類分析中研究較為廣泛的一個分支。模糊聚類通過隸屬函數來確定每個數據隸屬於各個簇的程度,而不是將一個數據對象硬性地歸類到某一簇中。目前已有很多關於模糊聚類的演算法被提出,如著名的FCM演算法等。
本文主要對k-means聚類演算法、凝聚型層次聚類演算法、神經網路聚類演算法之SOM,以及模糊聚類的FCM演算法通過通用測試數據集進行聚類效果的比較和分析。
2 四種常用聚類演算法研究
2.1 k-means聚類演算法
k-means是劃分方法中較經典的聚類演算法之一。由於該演算法的效率高,所以在對大規模數據進行聚類時被廣泛應用。目前,許多演算法均圍繞著該演算法進行擴展和改進。
k-means演算法以k為參數,把n個對象分成k個簇,使簇內具有較高的相似度,而簇間的相似度較低。k-means演算法的處理過程如下:首先,隨機地選擇k個對象,每個對象初始地代表了一個簇的平均值或中心;對剩餘的每個對象,根據其與各簇中心的距離,將它賦給最近的簇;然後重新計算每個簇的平均值。這個過程不斷重復,直到准則函數收斂。通常,採用平方誤差准則,其定義如下:
這里E是資料庫中所有對象的平方誤差的總和,p是空間中的點,mi是簇Ci的平均值[9]。該目標函數使生成的簇盡可能緊湊獨立,使用的距離度量是歐幾里得距離,當然也可以用其他距離度量。k-means聚類演算法的演算法流程如下:
輸入:包含n個對象的資料庫和簇的數目k;
輸出:k個簇,使平方誤差准則最小。
步驟:
(1) 任意選擇k個對象作為初始的簇中心;
(2) repeat;
(3) 根據簇中對象的平均值,將每個對象(重新)賦予最類似的簇;
(4) 更新簇的平均值,即計算每個簇中對象的平均值;
(5) until不再發生變化。
2.2 層次聚類演算法
根據層次分解的順序是自底向上的還是自上向下的,層次聚類演算法分為凝聚的層次聚類演算法和分裂的層次聚類演算法。
凝聚型層次聚類的策略是先將每個對象作為一個簇,然後合並這些原子簇為越來越大的簇,直到所有對象都在一個簇中,或者某個終結條件被滿足。絕大多數層次聚類屬於凝聚型層次聚類,它們只是在簇間相似度的定義上有所不同。四種廣泛採用的簇間距離度量方法如下:
這里給出採用最小距離的凝聚層次聚類演算法流程:
(1) 將每個對象看作一類,計算兩兩之間的最小距離;
(2) 將距離最小的兩個類合並成一個新類;
(3) 重新計算新類與所有類之間的距離;
(4) 重復(2)、(3),直到所有類最後合並成一類。
2.3 SOM聚類演算法
SOM神經網路[11]是由芬蘭神經網路專家Kohonen教授提出的,該演算法假設在輸入對象中存在一些拓撲結構或順序,可以實現從輸入空間(n維)到輸出平面(2維)的降維映射,其映射具有拓撲特徵保持性質,與實際的大腦處理有很強的理論聯系。
SOM網路包含輸入層和輸出層。輸入層對應一個高維的輸入向量,輸出層由一系列組織在2維網格上的有序節點構成,輸入節點與輸出節點通過權重向量連接。學習過程中,找到與之距離最短的輸出層單元,即獲勝單元,對其更新。同時,將鄰近區域的權值更新,使輸出節點保持輸入向量的拓撲特徵。
演算法流程:
(1) 網路初始化,對輸出層每個節點權重賦初值;
(2) 將輸入樣本中隨機選取輸入向量,找到與輸入向量距離最小的權重向量;
(3) 定義獲勝單元,在獲勝單元的鄰近區域調整權重使其向輸入向量靠攏;
(4) 提供新樣本、進行訓練;
(5) 收縮鄰域半徑、減小學習率、重復,直到小於允許值,輸出聚類結果。
2.4 FCM聚類演算法
1965年美國加州大學柏克萊分校的扎德教授第一次提出了『集合』的概念。經過十多年的發展,模糊集合理論漸漸被應用到各個實際應用方面。為克服非此即彼的分類缺點,出現了以模糊集合論為數學基礎的聚類分析。用模糊數學的方法進行聚類分析,就是模糊聚類分析[12]。
FCM演算法是一種以隸屬度來確定每個數據點屬於某個聚類程度的演算法。該聚類演算法是傳統硬聚類演算法的一種改進。
演算法流程:
(1) 標准化數據矩陣;
(2) 建立模糊相似矩陣,初始化隸屬矩陣;
(3) 演算法開始迭代,直到目標函數收斂到極小值;
(4) 根據迭代結果,由最後的隸屬矩陣確定數據所屬的類,顯示最後的聚類結果。
3 四種聚類演算法試驗
3.1 試驗數據
實驗中,選取專門用於測試分類、聚類演算法的國際通用的UCI資料庫中的IRIS[13]數據集,IRIS數據集包含150個樣本數據,分別取自三種不同的鶯尾屬植物setosa、versicolor和virginica的花朵樣本,每個數據含有4個屬性,即萼片長度、萼片寬度、花瓣長度,單位為cm。在數據集上執行不同的聚類演算法,可以得到不同精度的聚類結果。
3.2 試驗結果說明
文中基於前面所述各演算法原理及演算法流程,用matlab進行編程運算,得到表1所示聚類結果。
如表1所示,對於四種聚類演算法,按三方面進行比較:(1)聚錯樣本數:總的聚錯的樣本數,即各類中聚錯的樣本數的和;(2)運行時間:即聚類整個過程所耗費的時間,單位為s;(3)平均准確度:設原數據集有k個類,用ci表示第i類,ni為ci中樣本的個數,mi為聚類正確的個數,則mi/ni為第i類中的精度,則平均精度為:
3.3 試驗結果分析
四種聚類演算法中,在運行時間及准確度方面綜合考慮,k-means和FCM相對優於其他。但是,各個演算法還是存在固定缺點:k-means聚類演算法的初始點選擇不穩定,是隨機選取的,這就引起聚類結果的不穩定,本實驗中雖是經過多次實驗取的平均值,但是具體初始點的選擇方法還需進一步研究;層次聚類雖然不需要確定分類數,但是一旦一個分裂或者合並被執行,就不能修正,聚類質量受限制;FCM對初始聚類中心敏感,需要人為確定聚類數,容易陷入局部最優解;SOM與實際大腦處理有很強的理論聯系。但是處理時間較長,需要進一步研究使其適應大型資料庫。
聚類分析因其在許多領域的成功應用而展現出誘人的應用前景,除經典聚類演算法外,各種新的聚類方法正被不斷被提出。
『貳』 老師讓學習人工智慧中常用分類和聚類演算法和scilearn包的使用,請問應該怎麼學習
Scikit-learn
Scikit-learn 是基於Scipy為機器學習建造的的一個Python模塊,他的特色就是多樣化的分類,回歸和聚類的演算法包括支持向量機,邏輯回歸,樸素貝葉斯分類器,隨機森林,Gradient Boosting,聚類演算法和DBSCAN。而且也設計出了Python numerical和scientific libraries Numpy and Scipy
2.Pylearn2
Pylearn是一個讓機器學習研究簡單化的基於Theano的庫程序。
3.NuPIC
NuPIC是一個以HTM學習演算法為工具的機器智能。HTM是皮層的精確計算方法。HTM的核心是基於時間的持續學習演算法和儲存和撤銷的時空模式。NuPIC適合於各種各樣的問題,尤其是檢測異常和預測的流數據來源。
4. Nilearn
Nilearn 是一個能夠快速統計學習神經影像數據的Python模塊。它利用Python語言中的scikit-learn 工具箱和一些進行預測建模,分類,解碼,連通性分析的應用程序來進行多元的統計。
5.PyBrain
Pybrain是基於Python語言強化學習,人工智慧,神經網路庫的簡稱。 它的目標是提供靈活、容易使用並且強大的機器學習演算法和進行各種各樣的預定義的環境中測試來比較你的演算法。
6.Pattern
Pattern 是Python語言下的一個網路挖掘模塊。它為數據挖掘,自然語言處理,網路分析和機器學習提供工具。它支持向量空間模型、聚類、支持向量機和感知機並且用KNN分類法進行分類。
7.Fuel
Fuel為你的機器學習模型提供數據。他有一個共享如MNIST, CIFAR-10 (圖片數據集), Google』s One Billion Words (文字)這類數據集的介面。你使用他來通過很多種的方式來替代自己的數據。
8.Bob
Bob是一個的信號處理和機器學習的工具。它的工具箱是用Python和C++語言共同編寫的,它的設計目的是變得更加高效並且減少開發時間,它是由處理圖像工具,音頻和處理、機器學習和模式識別的大量包構成的。
9.Skdata
Skdata是機器學習和統計的數據集的庫程序。這個模塊對於玩具問題,流行的計算機視覺和自然語言的數據集提供標準的Python語言的使用。
10.MILK
MILK是Python語言下的機器學習工具包。它主要是在很多可得到的分類比如SVMS,K-NN,隨機森林,決策樹中使用監督分類法。 它還執行特徵選擇。 這些分類器在許多方面相結合,可以形成不同的例如無監督學習、密切關系金傳播和由MILK支持的K-means聚類等分類系統。
11.IEPY
IEPY是一個專注於關系抽取的開源性信息抽取工具。它主要針對的是需要對大型數據集進行信息提取的用戶和想要嘗試新的演算法的科學家。
12.Quepy
Quepy是通過改變自然語言問題從而在資料庫查詢語言中進行查詢的一個Python框架。他可以簡單的被定義為在自然語言和資料庫查詢中不同類型的問題。所以,你不用編碼就可以建立你自己的一個用自然語言進入你的資料庫的系統。
現在Quepy提供對於Sparql和MQL查詢語言的支持。並且計劃將它延伸到其他的資料庫查詢語言。
13.Hebel
Hebel是在Python語言中對於神經網路的深度學習的一個庫程序,它使用的是通過PyCUDA來進行GPU和CUDA的加速。它是最重要的神經網路模型的類型的工具而且能提供一些不同的活動函數的激活功能,例如動力,涅斯捷羅夫動力,信號丟失和停止法。
14.mlxtend
它是一個由有用的工具和日常數據科學任務的擴展組成的一個庫程序。
15.nolearn
這個程序包容納了大量能對你完成機器學習任務有幫助的實用程序模塊。其中大量的模塊和scikit-learn一起工作,其它的通常更有用。
16.Ramp
Ramp是一個在Python語言下制定機器學習中加快原型設計的解決方案的庫程序。他是一個輕型的pandas-based機器學習中可插入的框架,它現存的Python語言下的機器學習和統計工具(比如scikit-learn,rpy2等)Ramp提供了一個簡單的聲明性語法探索功能從而能夠快速有效地實施演算法和轉換。
17.Feature Forge
這一系列工具通過與scikit-learn兼容的API,來創建和測試機器學習功能。
這個庫程序提供了一組工具,它會讓你在許多機器學習程序使用中很受用。當你使用scikit-learn這個工具時,你會感覺到受到了很大的幫助。(雖然這只能在你有不同的演算法時起作用。)
18.REP
REP是以一種和諧、可再生的方式為指揮數據移動驅動所提供的一種環境。
它有一個統一的分類器包裝來提供各種各樣的操作,例如TMVA, Sklearn, XGBoost, uBoost等等。並且它可以在一個群體以平行的方式訓練分類器。同時它也提供了一個互動式的情節。
19.Python 學習機器樣品
用的機器學習建造的簡單收集。
20.Python-ELM
這是一個在Python語言下基於scikit-learn的極端學習機器的實現。
『叄』 用於數據挖掘的聚類演算法有哪些,各有何優勢
1、層次聚類演算法
1.1聚合聚類
1.1.1相似度依據距離不同:Single-Link:最近距離、Complete-Link:最遠距離、Average-Link:平均距離
1.1.2最具代表性演算法
1)CURE演算法
特點:固定數目有代表性的點共同代表類
優點:識別形狀復雜,大小不一的聚類,過濾孤立點
2)ROCK演算法
特點:對CURE演算法的改進
優點:同上,並適用於類別屬性的數據
3)CHAMELEON演算法
特點:利用了動態建模技術
1.2分解聚類
1.3優缺點
優點:適用於任意形狀和任意屬性的數據集;靈活控制不同層次的聚類粒度,強聚類能力
缺點:大大延長了演算法的執行時間,不能回溯處理
2、分割聚類演算法
2.1基於密度的聚類
2.1.1特點
將密度足夠大的相鄰區域連接,能有效處理異常數據,主要用於對空間數據的聚類
2.1.2典型演算法
1)DBSCAN:不斷生長足夠高密度的區域
2)DENCLUE:根據數據點在屬性空間中的密度進行聚類,密度和網格與處理的結合
3)OPTICS、DBCLASD、CURD:均針對數據在空間中呈現的不同密度分不對DBSCAN作了改進
2.2基於網格的聚類
2.2.1特點
利用屬性空間的多維網格數據結構,將空間劃分為有限數目的單元以構成網格結構;
1)優點:處理時間與數據對象的數目無關,與數據的輸入順序無關,可以處理任意類型的數據
2)缺點:處理時間與每維空間所劃分的單元數相關,一定程度上降低了聚類的質量和准確性
2.2.2典型演算法
1)STING:基於網格多解析度,將空間劃分為方形單元,對應不同解析度
2)STING+:改進STING,用於處理動態進化的空間數據
3)CLIQUE:結合網格和密度聚類的思想,能處理大規模高維度數據
4)WaveCluster:以信號處理思想為基礎
2.3基於圖論的聚類
2.3.1特點
轉換為組合優化問題,並利用圖論和相關啟發式演算法來解決,構造數據集的最小生成數,再逐步刪除最長邊
1)優點:不需要進行相似度的計算
2.3.2兩個主要的應用形式
1)基於超圖的劃分
2)基於光譜的圖劃分
2.4基於平方誤差的迭代重分配聚類
2.4.1思想
逐步對聚類結果進行優化、不斷將目標數據集向各個聚類中心進行重新分配以獲最優解
2.4.2具體演算法
1)概率聚類演算法
期望最大化、能夠處理異構數據、能夠處理具有復雜結構的記錄、能夠連續處理成批的數據、具有在線處理能力、產生的聚類結果易於解釋
2)最近鄰聚類演算法——共享最近鄰演算法SNN
特點:結合基於密度方法和ROCK思想,保留K最近鄰簡化相似矩陣和個數
不足:時間復雜度提高到了O(N^2)
3)K-Medioids演算法
特點:用類中的某個點來代表該聚類
優點:能處理任意類型的屬性;對異常數據不敏感
4)K-Means演算法
1》特點:聚類中心用各類別中所有數據的平均值表示
2》原始K-Means演算法的缺陷:結果好壞依賴於對初始聚類中心的選擇、容易陷入局部最優解、對K值的選擇沒有準則可依循、對異常數據較為敏感、只能處理數值屬性的數據、聚類結構可能不平衡
3》K-Means的變體
Bradley和Fayyad等:降低對中心的依賴,能適用於大規模數據集
Dhillon等:調整迭代過程中重新計算中心方法,提高性能
Zhang等:權值軟分配調整迭代優化過程
Sarafis:將遺傳演算法應用於目標函數構建中
Berkh in等:應用擴展到了分布式聚類
還有:採用圖論的劃分思想,平衡聚類結果,將原始演算法中的目標函數對應於一個各向同性的高斯混合模型
5)優缺點
優點:應用最為廣泛;收斂速度快;能擴展以用於大規模的數據集
缺點:傾向於識別凸形分布、大小相近、密度相近的聚類;中心選擇和雜訊聚類對結果影響大
3、基於約束的聚類演算法
3.1約束
對個體對象的約束、對聚類參數的約束;均來自相關領域的經驗知識
3.2重要應用
對存在障礙數據的二維空間按數據進行聚類,如COD(Clustering with Obstructed Distance):用兩點之間的障礙距離取代了一般的歐式距離
3.3不足
通常只能處理特定應用領域中的特定需求
4、用於高維數據的聚類演算法
4.1困難來源因素
1)無關屬性的出現使數據失去了聚類的趨勢
2)區分界限變得模糊
4.2解決方法
1)對原始數據降維
2)子空間聚類
CACTUS:對原始空間在二維平面上的投影
CLIQUE:結合基於密度和網格的聚類思想,借鑒Apriori演算法
3)聯合聚類技術
特點:對數據點和屬性同時進行聚類
文本:基於雙向劃分圖及其最小分割的代數學方法
4.3不足:不可避免地帶來了原始數據信息的損失和聚類准確性的降低
『肆』 PCM聚類演算法中各參數的選取方法
www.elsevier.com/locate/patrec
www.elsevier.com/locate/fss
看看吧
『伍』 matlab遺傳演算法工具箱求解多元函數顯示輸入參數數目不足求解答,非常感謝
錯誤的主要原因是你寫的函數有問題。函數應該這樣來表示:
function y = Test1(x)
a=x(1);b=x(2);
y=a+b;
end
使用優化工具箱,選擇ga,運行可以得到如下結果
『陸』 k-means聚類演算法一定要指定聚類個數嗎
一,K-Means聚類演算法原理
k-means 演算法接受參數 k
;然後將事先輸入的n個數據對象劃分為
k個聚類以便使得所獲得的聚類滿足:同一聚類中的對象相似度較高;而不同聚類中的對象相似度較小.聚類相似度是利用各聚類中對象的均值所獲得一個「中心對
象」(引力中心)來進行計算的.
K-means演算法是最為經典的基於劃分的聚類方法,是十大經典數據挖掘演算法之一.K-means演算法的基本思想是:以空間中k個點為中心進行聚類,對最靠近他們的對象歸類.通過迭代的方法,逐次更新各聚類中心的值,直至得到最好的聚類結果.
假設要把樣本集分為c個類別,演算法描述如下:
(1)適當選擇c個類的初始中心;
(2)在第k次迭代中,對任意一個樣本,求其到c個中心的距離,將該樣本歸到距離最短的中心所在的類;
(3)利用均值等方法更新該類的中心值;
(4)對於所有的c個聚類中心,如果利用(2)(3)的迭代法更新後,值保持不變,則迭代結束,否則繼續迭代.
該演算法的最大優勢在於簡潔和快速.演算法的關鍵在於初始中心的選擇和距離公式.
『柒』 用Matlab中的Kmeans工具箱的時候,報錯Undefined function or method 'isnan' for input arguments of typ
Matlab函數kmeans:K-均值聚類
http://hi..com/lewutian
K-means聚類演算法採用的是將N*P的矩陣X劃分為K個類,使得類內對象之間的距離最大,而類之間的距離最小。
使用方法:
Idx=Kmeans(X,K)
[Idx,C]=Kmeans(X,K)
[Idx,C,sumD]=Kmeans(X,K)
[Idx,C,sumD,D]=Kmeans(X,K)
[…]=Kmeans(…,』Param1』,Val1,』Param2』,Val2,…)
各輸入輸出參數介紹:
X N*P的數據矩陣
K 表示將X劃分為幾類,為整數
Idx N*1的向量,存儲的是每個點的聚類標號
C K*P的矩陣,存儲的是K個聚類質心位置
sumD 1*K的和向量,存儲的是類間所有點與該類質心點距離之和
D N*K的矩陣,存儲的是每個點與所有質心的距離
[…]=Kmeans(…,'Param1',Val1,'Param2',Val2,…)
這其中的參數Param1、Param2等,主要可以設置為如下:
1. 『Distance』(距離測度)
『sqEuclidean』 歐式距離(默認時,採用此距離方式)
『cityblock』 絕度誤差和,又稱:L1
『cosine』 針對向量
『correlation』 針對有時序關系的值
『Hamming』 只針對二進制數據
2. 『Start』(初始質心位置選擇方法)
『sample』 從X中隨機選取K個質心點
『uniform』 根據X的分布范圍均勻的隨機生成K個質心
『cluster』 初始聚類階段隨機選擇10%的X的子樣本(此方法初始使用』sample』方法)
matrix 提供一K*P的矩陣,作為初始質心位置集合
3. 『Replicates』(聚類重復次數) 整數
『捌』 數據挖掘對聚類的數據要求是什麼
1. 可擴展性(Scalability)
大多數來自於機器學習和統計學領域的聚類演算法在處理數百條數據時能表現出高效率
2. 處理不同數據類型的能力
數字型;二元類型,分類型/標稱型,序數型,比例標度型等等
3. 發現任意形狀的能力
基於距離的聚類演算法往往發現的是球形的聚類,其實現實的聚類是任意形狀的
4. 用於決定輸入參數的領域知識最小化
對於高維數據,參數很難決定,聚類的質量也很難控制
5. 處理雜訊數據的能力
對空缺值、孤立點、數據雜訊不敏感
6. 對於輸入數據的順序不敏感
同一個數據集合,以不同的次序提交給同一個演算法,應該產生相似的結果
7. 高維度
高維度的數據往往比較稀鬆,而且高度傾斜
8. 基於約束的聚類
找到既滿足約束條件,又具有良好聚類特性的數據分組
9. 可解釋性和可用性
聚類要和特定的語義解釋和應用相聯系
相異度矩陣:存儲n個對象兩兩之間的近似性,也叫單模矩陣,行和列代表相同的實體
『玖』 python代碼如何應用系統聚類和K-means聚類法進行聚類分析 然後選擇變數,建立適當的模型
-Means聚類演算法
k-means演算法以k為參數,把n個對象分成k個簇,使簇內具有較高的相似度,而簇間的相似度較低。
隨機選擇k個點作為初始的聚類中心。
對於剩下的點,根據其與聚類中心的距離,將其歸入最近的簇。
對每個簇,計算所有點的均值作為新的聚類中心。
重復2,3直到聚類中心不再發生改變
Figure 1
K-means的應用
數據介紹:
現有1999年全國31個省份城鎮居民家庭平均每人全年消費性支出的八大主要變數數據,這八大變數分別是:食品、衣著、家庭設備用品及服務、醫療保健、交通和通訊、娛樂教育文化服務、居住以及雜項商品和服務。利用已有數據,對31個省份進行聚類。
實驗目的:
通過聚類,了解1999年各個省份的消費水平在國內的情況。
技術路線:
sklearn.cluster.Kmeans
數據實例:
『拾』 MATLAB建模方法有哪些
首先,Matlab是一個工具,它不是一個方法。
其次,我給你推薦一本書
《MATLAB 在數學建模中的應用(第2版)》
然後它的目錄可以回答你的問題:
第1章 數學建模常規方法及其MATLAB實現
1.1 MATLAB與數據文件的交互
1.1.1 MATLAB與Excel的交互
1.1.2 MATLAB與TXT交互
1.1.3 MATLAB界面導入數據的方法
1.2 數據擬合方法
1.2.1 多項式擬合
1.2.2 指定函數擬合
1.2.3 曲線擬合工具箱
1.3 數據擬合應用實例
1.3.1 人口預測模型
1.3.2 薄膜滲透率的測定
1.4 數據的可視化
1.4.1 地形地貌圖形的繪制
1.4.2 車燈光源投影區域的繪制(CUMCM2002A)
1.5 層次分析法(AHP)
1.5.1 層次分析法的應用場景
1.5.2 AHPMATLAB程序設計
第2章 規劃問題的MATLAB求解
2.1 線性規劃
2.1.1 線性規劃的實例與定義
2.1.2 線性規劃的MATLAB標准形式
2.1.3 線性規劃問題解的概念
2.1.4 求解線性規劃的MATLAB解法
2.2 非線性規劃
2.2.1 非線性規劃的實例與定義
2.2.2 非線性規劃的MATLAB解法
2.2.3 二次規劃
2.3 整數規劃
2.3.1 整數規劃的定義
2.3.2 01整數規劃
2.3.3 隨機取樣計演算法
第3章 數據建模及MATLAB實現
3.1 雲模型
3.1.1 雲模型基礎知識
3.1.2 雲模型的MATLAB程序設計
3.2 Logistic回歸
3.2.1 Logistic模型
3.2.2 Logistic回歸MATLAB程序設計
3.3 主成分分析
3.3.1 PCA基本思想
3.3.2 PCA步驟
3.3.3 主成分分析MATLAB程序設計
3.4 支持向量機(SVM)
3.4.1 SVM基本思想
3.4.2 理論基礎
3.4.3 支持向量機MATLAB程序設計
3.5 K均值(KMeans)
3.5.1 KMeans原理、步驟和特點
3.5.2 KMeans聚類MATLAB程序設計
3.6 樸素貝葉斯判別法
3.6.1 樸素貝葉斯判別模型
3.6.2 樸素貝葉斯判別法MATLAB設計
3.7 數據建模綜合應用
參考文獻
第4章 灰色預測及其MATLAB實現
4.1 灰色系統基本理論
4.1.1 灰色關聯度矩陣
4.1.2 經典灰色模型GM(1,1)
4.1.3 灰色Verhulst模型
4.2 灰色系統的程序設計
4.2.1 灰色關聯度矩陣的程序設計
4.2.2 GM(1,1)的程序設計
4.2.3 灰色Verhulst模型的程序設計
4.3 灰色預測的MATLAB程序
4.3.1 典型程序結構
4.3.2 灰色預測程序說明
4.4 灰色預測應用實例
4.4.1 實例一長江水質的預測(CUMCM2005A)
4.4.2 實例二預測與會代表人數(CUMCM2009D)
4.5 小結
參考文獻
第5章 遺傳演算法及其MATLAB實現
5.1 遺傳演算法基本原理
5.1.1 人工智慧演算法概述
5.1.2 遺傳演算法生物學基礎
5.1.3 遺傳演算法的實現步驟
5.1.4 遺傳演算法的拓展
5.2 遺傳演算法的MATLAB程序設計
5.2.1 程序設計流程及參數選取
5.2.2 MATLAB遺傳演算法工具箱
5.3 遺傳演算法應用案例
5.3.1 案例一:無約束目標函數最大值遺傳演算法求解策略
5.3.2 案例二:CUMCM中多約束非線性規劃問題的求解
5.3.3 案例三:BEATbx遺傳演算法工具箱的應用——電子商務中轉化率影響因素研究
參考文獻
第6章 模擬退火演算法及其MATLAB實現
6.1 演算法的基本理論
6.1.1 演算法概述
6.1.2 基本思想
6.1.3 其他一些參數的說明
6.1.4 演算法基本步驟
6.1.5 幾點說明
6.2 演算法的MATLAB實現
6.2.1 演算法設計步驟
6.2.2 典型程序結構
6.3 應用實例:背包問題的求解
6.3.1 問題的描述
6.3.2 問題的求解
6.4 模擬退火程序包ASA簡介
6.4.1 ASA的優化實例
6.4.2 ASA的編譯
6.4.3 MATLAB版ASA的安裝與使用
6.5 小結
6.6 延伸閱讀
參考文獻
第7章 人工神經網路及其MATLAB實現
7.1 人工神經網路基本理論
7.1.1 人工神經網路模型拓撲結構
7.1.2 常用激勵函數
7.1.3 常見神經網路理論
7.2 BP神經網路的結構設計
7.2.1 鯊魚嗅聞血腥味與BP神經網路訓練
7.2.2 透視神經網路的學習步驟
7.2.3 BP神經網路的動態擬合過程
7.3 RBF神經網路的結構設計
7.3.1 梯度訓練法RBF神經網路的結構設計
7.3.2 RBF神經網路的性能
7.4 應用實例
7.4.1 基於MATLAB源程序公路運量預測
7.4.2 基於MATLAB工具箱公路運量預測
7.4.3 艾滋病治療最佳停葯時間的確定(CUMCM2006B)
7.4.4 RBF神經網路預測新客戶流失概率
7.5 延伸閱讀
7.5.1 從金融分析中的小數定理談神經網路的訓練樣本遴選規則
7.5.2 小議BP神經網路的衍生機理
參考文獻
第8章粒子群演算法及其MATLAB實現
8.1 PSO演算法相關知識
8.1.1 初識PSO演算法
8.1.2 PSO演算法的基本理論
8.1.3 PSO演算法的約束優化
8.1.4 PSO演算法的優缺點
8.2 PSO演算法程序設計
8.2.1 程序設計流程
8.2.2 PSO演算法的參數選取
8.2.3 PSO演算法MATLAB源程序範例
8.3 應用案例:基於PSO演算法和BP演算法訓練神經網路
8.3.1 如何評價網路的性能
8.3.2 BP演算法能夠搜索到極值的原理
8.3.3 PSOBP神經網路的設計指導原則
8.3.4 PSO演算法優化神經網路結構
8.3.5 PSOBP神經網路的實現
參考文獻
第9章 蟻群演算法及其MATLAB實現
9.1 蟻群演算法原理
9.1.1 蟻群演算法基本思想
9.1.2 蟻群演算法數學模型
9.1.3 蟻群演算法流程
9.2 蟻群演算法的MATLAB實現
9.2.1 實例背景
9.2.2 演算法設計步驟
9.2.3 MATLAB程序實現
9.2.4 程序執行結果與分析
9.3 演算法關鍵參數的設定
9.3.1 參數設定的准則
9.3.2 螞蟻數量
9.3.3 信息素因子
9.3.4 啟發函數因子
9.3.5 信息素揮發因子
9.3.6 信息素常數
9.3.7 最大迭代次數
9.3.8 組合參數設計策略
9.4 應用實例:最佳旅遊方案(蘇北賽2011B)
9.4.1 問題描述
9.4.2 問題的求解和結果
9.5 本章小結
參考文獻
第10章 小波分析及其MATLAB實現
10.1 小波分析基本理論
10.1.1 傅里葉變換的局限性
10.1.2 伸縮平移和小波變換
10.1.3 小波變換入門和多尺度分析
10.1.4 小波窗函數自適應分析
10.2 小波分析MATLAB程序設計
10.2.1 小波分析工具箱函數指令
10.2.2 小波分析程序設計綜合案例
10.3 小波分析應用案例
10.3.1 案例一:融合拓撲結構的小波神經網路
10.3.2 案例二:血管重建引出的圖像數字水印
參考文獻
第11章 計算機虛擬及其MATLAB實現
11.1 計算機虛擬基本知識
11.1.1 從3G移動互聯網協議WCDMA談MATLAB虛擬
11.1.2 計算機虛擬與數學建模
11.1.3 數值模擬與經濟效益博弈
11.2 數值模擬MATLAB程序設計
11.2.1 微分方程組模擬
11.2.2 服從概率分布的隨機模擬
11.2.3 蒙特卡羅模擬
11.3 動態模擬MATLAB程序設計
11.3.1 MATLAB音頻處理
11.3.2 MATLAB常規動畫實現
11.4 應用案例:四維水質模型
11.4.1 問題的提出
11.4.2 問題的分析
11.4.3 四維水質模型准備
11.4.4 條件假設與符號約定
11.4.5 四維水質模型的組建
11.4.6 模型求解
11.4.7 計算機模擬情境
參考文獻
下篇 真題演習
第12章 彩票中的數學(CUMCM2002B)
12.1 問題的提出
12.2 模型的建立
12.2.1 模型假設與符號說明
12.2.2 模型的准備
12.2.3 模型的建立
12.3 模型的求解
12.3.1 求解的思路
12.3.2 MATLAB程序
12.3.3 程序結果
12.4 技巧點評
參考文獻
第13章 露天礦卡車調度問題(CUMCM2003B)
13.1 問題的提出
13.2 基本假設與符號說明
13.2.1 基本假設
13.2.2 符號說明
13.3 問題分析及模型准備
13.4 原則①:數學模型(模型1)的建立與求解
13.4.1 模型的建立
13.4.2 模型求解
13.5 原則②:數學模型(模型2)的建立與求解
13.6 技巧點評
參考文獻
第14章 奧運會商圈規劃問題(CUMCM2004A)
14.1 問題的描述
14.2 基本假設、名詞約定及符號說明
14.2.1 基本假設
14.2.2 符號說明
14.2.3 名詞約定
14.3 問題分析與模型准備
14.3.1 基本思路
14.3.2 基本數學表達式的構建
14.4 設置MS網點數學模型的建立與求解
14.4.1 模型建立
14.4.2 模型求解
14.5 設置MS網點理論體系的建立
14.6 商區布局規劃的數學模型
14.6.1 模型建立
14.6.2 模型求解
14.7 模型的評價及使用說明
14.7.1 模型的優點
14.7.2 模型的缺點
14.8 技巧點評
參考文獻
第15章 交巡警服務平台的設置與調度(CUMCM2011B)
15.1 問題的提出
15.2 問題的分析
15.3 基本假設
15.4 問題1模型的建立與求解
15.4.1 交巡警服務平台管轄范圍分配
15.4.2 交巡警的調度
15.4.3 最佳新增服務平台設置
15.5 問題2模型的建立和求解
15.5.1 全市服務平台的合理性分析問題的模型與求解
15.5.2 搜捕嫌疑犯實例的模型與求解
15.6 模型的評價與改進
15.6.1 模型優點
15.6.2 模型缺點
15.7 技巧點評
參考文獻
第16章 葡萄酒的評價(CUMCM2012A)
16.1 問題的提出
16.2 基本假設
16.3 問題①模型的建立和求解
16.3.1 問題①的分析
16.3.2 模型的建立和求解
16.4 問題②模型的建立和求解
16.4.1 問題②的基本假設和分析
16.4.2 模型的建立和求解
16.5 問題③模型的建立和求解
16.5.1 問題③的分析
16.5.2 模型的建立和求解
16.6 問題④模型的建立和求解
16.6.1 問題④的分析
16.6.2 模型的建立和求解
16.7 論文點評
參考文獻
附件數學建模參賽經驗
一、如何准備數學建模競賽
二、數學建模隊員應該如何學習MATLAB
三、如何在數學建模競賽中取得好成績
四、數學建模競賽中的項目管理和時間管理
五、一種非常實用的數學建模方法——目標建模法