-
當(dāng)前位置:首頁 > 創(chuàng)意學(xué)院 > 技術(shù) > 專題列表 > 正文
優(yōu)化算法分類(優(yōu)化算法分類有哪些)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于優(yōu)化算法分類的問題,以下是小編對(duì)此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對(duì)話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com
創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀企業(yè),服務(wù)客戶遍布全國,網(wǎng)絡(luò)營銷相關(guān)業(yè)務(wù)請(qǐng)撥打175-8598-2043,或微信:1454722008
本文目錄:
一、組合優(yōu)化問題
從廣義上講,組合優(yōu)化問題是涉及從有限的一組對(duì)象中找到"最佳"對(duì)象的問題 ?!白罴选笔峭ㄟ^給定的評(píng)估函數(shù)來測(cè)量的,該函數(shù)將對(duì)象映射到某個(gè)分?jǐn)?shù)或者成本,目標(biāo)是找到最高評(píng)估分?jǐn)?shù)和最低成本的對(duì)象。組合優(yōu)化往往涉及排序、分類、篩選等問題。以離散的COP問題來講,目標(biāo)就是從所有可行解中尋找一個(gè)集合、一個(gè)排列或者一個(gè)圖。
旅行商問題 (Traveling Salesman Problem - TSP)
加工調(diào)度問題 (Scheduling Problem,如Flow-Shop,Job-Shop)
0-1背包問題 (Knapsack Problem)
裝箱問題 (Bin Packing Problem)
圖著色問題 (Graph Coloring Problem)
聚類問題 (Clustering Problem)
著名的旅行商問題(TSP):假設(shè)有一個(gè)旅行商人要拜訪n個(gè)城市,他必須選擇所要走的路徑,路徑的限制是每個(gè)城市只能拜訪一次,而且最后要回到原來出發(fā)的城市。路徑的選擇目標(biāo)是要求得的路徑長度為所有路徑之中的最小值。TSP是一個(gè)典型的組合優(yōu)化問題,且是一個(gè)NP完全難題,關(guān)于NP的這個(gè)概念本文就不做詳細(xì)介紹了,但簡單的說就是:TSP問題目前尚不能找到一個(gè)多項(xiàng)式時(shí)間復(fù)雜度的算法來求解。例如,下圖顯示了美國所有州所在城市的最佳旅游:
對(duì)項(xiàng)目的想法 :
BIOS配置尋優(yōu)也可以理解為組合優(yōu)化問題,是一個(gè)NP-hard問題,具有高維的離散動(dòng)作空間。
參考 組合優(yōu)化問題求解算法思路的整理
貪婪算法、局部搜索算法、松弛算法、動(dòng)態(tài)規(guī)劃法 等都可用于構(gòu)建近似算法求解。
啟發(fā)式算法可分為傳統(tǒng)啟發(fā)式算法和元啟發(fā)式算法,傳統(tǒng)啟發(fā)式算法包括 構(gòu)造性方法、局部搜索算法、松弛方法、解空間縮減算法等
元啟發(fā)式算法包括 禁忌搜索算法、模擬退火算法、遺傳算法、蟻群算法、粒子群算 法、人工神經(jīng)網(wǎng)絡(luò)等 。
參考 相關(guān)資料匯總與點(diǎn)評(píng)部分
二、K-means原理、優(yōu)化、應(yīng)用
K-Means算法是無監(jiān)督的聚類算法,它實(shí)現(xiàn)起來比較簡單,聚類效果也不錯(cuò),因此應(yīng)用很廣泛。K-Means算法有大量的變體,本文就從最傳統(tǒng)的K-Means算法講起,在其基礎(chǔ)上講述K-Means的優(yōu)化變體方法。包括初始化優(yōu)化K-Means++, 距離計(jì)算優(yōu)化elkan K-Means算法和大數(shù)據(jù)情況下的優(yōu)化Mini Batch K-Means算法。
K-Means算法的思想很簡單,對(duì)于給定的樣本集,按照樣本之間的距離大小,將樣本集劃分為K個(gè)簇。讓簇內(nèi)的點(diǎn)盡量緊密的連在一起,而讓簇間的距離盡量的大。
1、隨機(jī)選擇K個(gè)聚類的初始中心。
2、對(duì)任意一個(gè)樣本點(diǎn),求其到K個(gè)聚類中心的距離,將樣本點(diǎn)歸類到距離最小的中心的聚類。
3、每次迭代過程中,利用均值等方法更新各個(gè)聚類的中心點(diǎn)(質(zhì)心)。
4、對(duì)K個(gè)聚類中心,利用2、3步迭代更新后,如果位置點(diǎn)變化很小(可以設(shè)置閾值),則認(rèn)為達(dá)到穩(wěn)定狀態(tài),迭代結(jié)束。(畫圖時(shí),可以對(duì)不同的聚類塊和聚類中心可選擇不同的顏色標(biāo)注)
1、原理比較簡單,實(shí)現(xiàn)也是很容易,收斂速度快。
2、聚類效果較優(yōu)。
3、算法的可解釋度比較強(qiáng)。
4、主要需要調(diào)參的參數(shù)僅僅是簇?cái)?shù)k。
1、K值的選取不好把握
2、對(duì)于不是凸的數(shù)據(jù)集比較難收斂
3、如果各隱含類別的數(shù)據(jù)不平衡,比如各隱含類別的數(shù)據(jù)量嚴(yán)重失衡,或者各隱含類別的方差不同,則聚類效果不佳。
4、 最終結(jié)果和初始點(diǎn)的選擇有關(guān),容易陷入局部最優(yōu)。
5、對(duì)噪音和異常點(diǎn)比較的敏感。
解決K-Means算法對(duì) 初始簇心 比較敏感的問題,二分K-Means算法是一種弱化初始質(zhì)心的一種算法。
1、將所有樣本數(shù)據(jù)作為一個(gè)簇放到一個(gè)隊(duì)列中。
2、從隊(duì)列中選擇一個(gè)簇進(jìn)行K-Means算法劃分,劃分為兩個(gè)子簇,并將子簇添加到隊(duì)列中。
3、循環(huán)迭代步驟2操作,直到中止條件達(dá)到(聚簇?cái)?shù)量、最小平方誤差、迭代次數(shù)等)。
4、隊(duì)列中的簇就是最終的分類簇集合。
從隊(duì)列中選擇劃分聚簇的規(guī)則一般有兩種方式;分別如下:
1、對(duì)所有簇計(jì)算誤差和SSE(SSE也可以認(rèn)為是距離函數(shù)的一種變種),選擇SSE最大的聚簇進(jìn)行劃分操作(優(yōu)選這種策略)。
2、選擇樣本數(shù)據(jù)量最多的簇進(jìn)行劃分操作:
由于 K-means 算法的分類結(jié)果會(huì)受到初始點(diǎn)的選取而有所區(qū)別,因此有提出這種算法的改進(jìn): K-means++ 。
其實(shí)這個(gè)算法也只是對(duì)初始點(diǎn)的選擇有改進(jìn)而已,其他步驟都一樣。初始質(zhì)心選取的基本思路就是, 初始的聚類中心之間的相互距離要盡可能的遠(yuǎn) 。
1、隨機(jī)選取一個(gè)樣本作為第一個(gè)聚類中心 c1;
2、計(jì)算每個(gè)樣本與當(dāng)前已有類聚中心最短距離(即與最近一個(gè)聚類中心的距離),用 D(x)表示;這個(gè)值越大,表示被選取作為聚類中心的概率較大;最后,用輪盤法選出下一個(gè)聚類中心。
3、重復(fù)步驟2,知道選出 k 個(gè)聚類中心。
4、選出初始點(diǎn)(聚類中心),就繼續(xù)使用標(biāo)準(zhǔn)的 k-means 算法了。
盡管K-Means++在聚類中心的計(jì)算上浪費(fèi)了很多時(shí)間,但是在迭代過程中,k-mean 本身能快速收斂,因此算法實(shí)際上降低了計(jì)算時(shí)間。
解決K-Means++算法缺點(diǎn)而產(chǎn)生的一種算法;主要思路是改變每次遍歷時(shí)候的取樣規(guī)則,并非按照K-Means++算法每次遍歷只獲取一個(gè)樣本,而是每次獲取K個(gè)樣本,重復(fù)該取樣操作O(logn)次 (n是樣本的個(gè)數(shù)) ,然后再將這些抽樣出來的樣本聚類出K個(gè)點(diǎn),最后使用這K個(gè)點(diǎn)作為K-Means算法的初始聚簇中心點(diǎn)。實(shí)踐證明:一般5次重復(fù)采用就可以保證一個(gè)比較好的聚簇中心點(diǎn)。
1、在N個(gè)樣本中抽K個(gè)樣本,一共抽logn次,形成一個(gè)新的樣本集,一共有Klogn個(gè)數(shù)據(jù)。
2、在新數(shù)據(jù)集中使用K-Means算法,找到K個(gè)聚簇中心。
3、把這K個(gè)聚簇中心放到最初的樣本集中,作為初始聚簇中心。
4、原數(shù)據(jù)集根據(jù)上述初始聚簇中心,再用K-Means算法計(jì)算出最終的聚簇。
Canopy屬于一種‘粗’聚類算法,即使用一種簡單、快捷的距離計(jì)算方法將數(shù)據(jù)集分為若干可重疊的子集canopy,這種算法不需要指定k值、但精度較低,可以結(jié)合K-means算法一起使用:先由Canopy算法進(jìn)行粗聚類得到k個(gè)質(zhì)心,再使用K-means算法進(jìn)行聚類。
1、將原始樣本集隨機(jī)排列成樣本列表L=[x1,x2,...,xm](排列好后不再更改),根據(jù)先驗(yàn)知識(shí)或交叉驗(yàn)證調(diào)參設(shè)定初始距離閾值T1、T2,且T1>T2 。
2、從列表L中隨機(jī)選取一個(gè)樣本P作為第一個(gè)canopy的質(zhì)心,并將P從列表中刪除。
3、從列表L中隨機(jī)選取一個(gè)樣本Q,計(jì)算Q到所有質(zhì)心的距離,考察其中最小的距離D:
如果D≤T1,則給Q一個(gè)弱標(biāo)記,表示Q屬于該canopy,并將Q加入其中;
如果D≤T2,則給Q一個(gè)強(qiáng)標(biāo)記,表示Q屬于該canopy,且和質(zhì)心非常接近,所以將該canopy的質(zhì)心設(shè)為所有強(qiáng)標(biāo)記樣本的中心位置,并將Q從列表L中刪除;
如果D>T1,則Q形成一個(gè)新的聚簇,并將Q從列表L中刪除。
4、重復(fù)第三步直到列表L中元素個(gè)數(shù)為零。
1、‘粗’距離計(jì)算的選擇對(duì)canopy的分布非常重要,如選擇其中某個(gè)屬性、其他外部屬性、歐式距離等。
2、當(dāng)T2<D≤T1時(shí),樣本不會(huì)從列表中被刪除,而是繼續(xù)參與下一輪迭代,直到成為新的質(zhì)心或者某個(gè)canopy的強(qiáng)標(biāo)記成員。
3、T1、T2的取值影響canopy的重疊率及粒度:當(dāng)T1過大時(shí),會(huì)使樣本屬于多個(gè)canopy,各個(gè)canopy間區(qū)別不明顯;當(dāng)T2過大時(shí),會(huì)減少canopy個(gè)數(shù),而當(dāng)T2過小時(shí),會(huì)增加canopy個(gè)數(shù),同時(shí)增加計(jì)算時(shí)間。
4、canopy之間可能存在重疊的情況,但是不會(huì)存在某個(gè)樣本不屬于任何canopy的情況。
5、Canopy算法可以消除孤立點(diǎn),即刪除包含樣本數(shù)目較少的canopy,往往這些canopy包含的是孤立點(diǎn)或噪音點(diǎn)。
由于K-Means算法存在初始聚簇中心點(diǎn)敏感的問題,常用使用Canopy+K-Means算法混合形式進(jìn)行模型構(gòu)建。
1、先使用canopy算法進(jìn)行“粗”聚類得到K個(gè)聚類中心點(diǎn)。
2、K-Means算法使用Canopy算法得到的K個(gè)聚類中心點(diǎn)作為初始中心點(diǎn),進(jìn)行“細(xì)”聚類。
1、執(zhí)行速度快(先進(jìn)行了一次聚簇中心點(diǎn)選擇的預(yù)處理);
2、不需要給定K值,應(yīng)用場(chǎng)景多。
3、能夠緩解K-Means算法對(duì)于初始聚類中心點(diǎn)敏感的問題。
Mini Batch K-Means算法是K-Means算法的一種優(yōu)化變種,采用 小規(guī)模的數(shù)據(jù)子集 (每次訓(xùn)練使用的數(shù)據(jù)集是在訓(xùn)練算法的時(shí)候隨機(jī)抽取的數(shù)據(jù)子集) 減少計(jì)算時(shí)間 ,同時(shí)試圖優(yōu)化目標(biāo)函數(shù);Mini Batch K-Means算法可以減少K-Means算法的收斂時(shí)間,而且產(chǎn)生的結(jié)果效果只是略差于標(biāo)準(zhǔn)K-Means算法。
1、首先抽取部分?jǐn)?shù)據(jù)集,使用K-Means算法構(gòu)建出K個(gè)聚簇點(diǎn)的模型。
2、繼續(xù)抽取訓(xùn)練數(shù)據(jù)集中的部分?jǐn)?shù)據(jù)集樣本數(shù)據(jù),并將其添加到模型中,分配給距離最近的聚簇中心點(diǎn)。
3、更新聚簇的中心點(diǎn)值。
4、循環(huán)迭代第二步和第三步操作,直到中心點(diǎn)穩(wěn)定或者達(dá)到迭代次數(shù),停止計(jì)算操作。
https://www.jianshu.com/p/f0727880c9c0
三、數(shù)學(xué)建模分類模型有哪些
數(shù)學(xué)建模常用模型有哪些?
1、蒙特卡羅算法(該算法又稱隨機(jī)性模擬算法,是通過計(jì)算機(jī)仿真來解決問題的算
法,同時(shí)可以通過模擬可以來檢驗(yàn)自己模型的正確性,是比賽時(shí)必用的方法)
2、數(shù)據(jù)擬合、參數(shù)估計(jì)、插值等數(shù)據(jù)處理算法(比賽中通常會(huì)遇到大量的數(shù)據(jù)需要
處理,而處理數(shù)據(jù)的關(guān)鍵就在于這些算法,通常使用Matlab作為工具)
3、線性規(guī)劃、整數(shù)規(guī)劃、多元規(guī)劃、二次規(guī)劃等規(guī)劃類問題(建模競(jìng)賽大多數(shù)問題
屬于最優(yōu)化問題,很多時(shí)候這些問題可以用數(shù)學(xué)規(guī)劃算法來描述,通常使用Lindo、
Lingo軟件實(shí)現(xiàn))
4、圖論算法(這類算法可以分為很多種,包括最短路、網(wǎng)絡(luò)流、二分圖等算法,涉
及到圖論的問題可以用這些方法解決,需要認(rèn)真準(zhǔn)備)
5、動(dòng)態(tài)規(guī)劃、回溯搜索、分治算法、分支定界等計(jì)算機(jī)算法(這些算法是算法設(shè)計(jì)
中比較常用的方法,很多場(chǎng)合可以用到競(jìng)賽中)
6、最優(yōu)化理論的三大非經(jīng)典算法:模擬退火法、神經(jīng)網(wǎng)絡(luò)、遺傳算法(這些問題是
用來解決一些較困難的最優(yōu)化問題的算法,對(duì)于有些問題非常有幫助,但是算法的實(shí)
現(xiàn)比較困難,需慎重使用)
7、網(wǎng)格算法和窮舉法(網(wǎng)格算法和窮舉法都是暴力搜索最優(yōu)點(diǎn)的算法,在很多競(jìng)賽
題中有應(yīng)用,當(dāng)重點(diǎn)討論模型本身而輕視算法的時(shí)候,可以使用這種暴力方案,最好
使用一些高級(jí)語言作為編程工具)
8、一些連續(xù)離散化方法(很多問題都是實(shí)際來的,數(shù)據(jù)可以是連續(xù)的,而計(jì)算機(jī)只
認(rèn)的是離散的數(shù)據(jù),因此將其離散化后進(jìn)行差分代替微分、求和代替積分等思想是非
常重要的)
9、數(shù)值分析算法(如果在比賽中采用高級(jí)語言進(jìn)行編程的話,那一些數(shù)值分析中常
用的算法比如方程組求解、矩陣運(yùn)算、函數(shù)積分等算法就需要額外編寫庫函數(shù)進(jìn)行調(diào)
用)
10、圖象處理算法(賽題中有一類問題與圖形有關(guān),即使與圖形無關(guān),論文中也應(yīng)該
要不乏圖片的,這些圖形如何展示以及如何處理就是需要解決的問題,通常使用Matlab
四、什么是網(wǎng)格搜索法?如何用它來優(yōu)化學(xué)習(xí)算法
網(wǎng)格搜索法是指定參數(shù)值的一種窮舉搜索方法,通過將估計(jì)函數(shù)的參數(shù)通過交叉驗(yàn)證的方法進(jìn)行優(yōu)化來得到最優(yōu)的學(xué)習(xí)算法。
即,將各個(gè)參數(shù)可能的取值進(jìn)行排列組合,列出所有可能的組合結(jié)果生成“網(wǎng)格”。然后將各組合用于SVM訓(xùn)練,并使用交叉驗(yàn)證對(duì)表現(xiàn)進(jìn)行評(píng)估。在擬合函數(shù)嘗試了所有的參數(shù)組合后,返回一個(gè)合適的分類器,自動(dòng)調(diào)整至最佳參數(shù)組合,可以通過clf.best_params_獲得參數(shù)值
以上就是關(guān)于優(yōu)化算法分類相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。
推薦閱讀:
網(wǎng)站seo整站優(yōu)化(網(wǎng)站seo整站優(yōu)化工具)
網(wǎng)站關(guān)鍵詞提升(網(wǎng)站關(guān)鍵詞怎樣優(yōu)化)
寧波關(guān)鍵詞優(yōu)化首選(寧波關(guān)鍵詞優(yōu)化軟件)
物業(yè)春節(jié)社區(qū)文化活動(dòng)方案(小區(qū)物業(yè)春節(jié)活動(dòng)策劃書)