近年來(lái),全國(guó)賽的題目中,多多少少都有些數(shù)據(jù),而且數(shù)據(jù)量總體來(lái)說(shuō)呈不斷增加的趨勢(shì), 這是由于在科研界和工業(yè)界已積累了比較豐富的數(shù)據(jù),伴隨大數(shù)據(jù)概念的興起及機(jī)器學(xué)習(xí)技術(shù)的發(fā)展, 這些數(shù)據(jù)需要轉(zhuǎn)化成更有意義的知識(shí)或模型。 所以在建模比賽中, 只要數(shù)據(jù)量還比較大, 就有機(jī)器學(xué)習(xí)的用武之地。
1.?MATLAB機(jī)器學(xué)習(xí)概況
機(jī)器學(xué)習(xí) ( Machine Learning ) 是一門(mén)多領(lǐng)域交叉學(xué)科,它涉及到概率論、統(tǒng)計(jì)學(xué)、計(jì)算機(jī)科學(xué)以及軟件工程。機(jī)器學(xué)習(xí)是指一套工具或方法,憑借這套工具和方法,利用歷史數(shù)據(jù)對(duì)機(jī)器進(jìn)行“訓(xùn)練”進(jìn)而“學(xué)習(xí)”到某種模式或規(guī)律,并建立預(yù)測(cè)未來(lái)結(jié)果的模型。
機(jī)器學(xué)習(xí)涉及兩類學(xué)習(xí)方法(如圖1):有監(jiān)督學(xué)習(xí),主要用于決策支持,它利用有標(biāo)識(shí)的歷史數(shù)據(jù)進(jìn)行訓(xùn)練,以實(shí)現(xiàn)對(duì)新數(shù)據(jù)的標(biāo)識(shí)的預(yù)測(cè)。有監(jiān)督學(xué)習(xí)方法主要包括分類和回歸;無(wú)監(jiān)督學(xué)習(xí),主要用于知識(shí)發(fā)現(xiàn),它在歷史數(shù)據(jù)中發(fā)現(xiàn)隱藏的模式或內(nèi)在結(jié)構(gòu)。無(wú)監(jiān)督學(xué)習(xí)方法主要包括聚類。
圖1 機(jī)器學(xué)習(xí)方法
MATLAB 統(tǒng)計(jì)與機(jī)器學(xué)習(xí)工具箱(Statistics and Machine Learning Toolbox)支持大量的分類模型、回歸模型和聚類的模型,并提供專門(mén)應(yīng)用程序(APP),以圖形化的方式實(shí)現(xiàn)模型的訓(xùn)練、驗(yàn)證,以及模型之間的比較。
-
分類
分類技術(shù)預(yù)測(cè)的數(shù)據(jù)對(duì)象是離散值。例如,電子郵件是否為垃圾郵件,腫瘤是癌性還是良性等等。 分類模型將輸入數(shù)據(jù)分類。 典型應(yīng)用包括醫(yī)學(xué)成像,信用評(píng)分等。MATLAB 提供的分類算法包括:
圖2 分類算法家族
-
回歸
回歸技術(shù)預(yù)測(cè)的數(shù)據(jù)對(duì)象是連續(xù)值。 例如,溫度變化或功率需求波動(dòng)。 典型應(yīng)用包括電力負(fù)荷預(yù)測(cè)和算法交易等?;貧w模型包括一元回歸和多元回歸,線性回歸和非線性回歸,MATLAB 提供的回歸算法有:
圖3 回歸算法家族
-
聚類
聚類算法用于在數(shù)據(jù)中尋找隱藏的模式或分組。聚類算法構(gòu)成分組或類,類中的數(shù)據(jù)具有更高的相似度。聚類建模的相似度衡量可以通過(guò)歐幾里得距離、概率距離或其他指標(biāo)進(jìn)行定義。MATLAB 支持的聚類算法有:
圖4 聚類算法家族
以下將通過(guò)一些示例演示如何使用 MATLAB 提供的機(jī)器學(xué)習(xí)相關(guān)算法進(jìn)行數(shù)據(jù)的分類、回歸和聚類。
2.?分類技術(shù)
-
支持向量機(jī)(SVM)
SVM 在小樣本、非線性及高維數(shù)據(jù)分類中具有很強(qiáng)的優(yōu)勢(shì)。在 MATLAB 中,可以利用 SVM 解決二分類問(wèn)題。同時(shí)也可以使用 SVM 進(jìn)行數(shù)據(jù)的多分類劃分。
1) 二分類
以下示例顯示了利用 MATLAB 提供的支持向量機(jī)模型進(jìn)行二分類,并在圖中畫(huà)出了支持向量的分布情況(圖5中圓圈內(nèi)的點(diǎn)表示支持向量)。MATLAB 支持 SVM 的核函數(shù)(KernelFunction 參數(shù))有:線性核函數(shù)(Linear),多項(xiàng)式核函數(shù)(Polynomial)、高斯核函數(shù)(Gaussian)。
%% 支持向量機(jī)模型
load?fisheriris;
% 數(shù)據(jù)只取兩個(gè)分類:‘versicolor' 和 'virginica'
inds = ~strcmp(species,?'setosa');
% 使用兩個(gè)維度
X = meas(inds,3:4);
y = species(inds);
tabulate(y)
? ? ? ?Value ? ? ?Count ? ? ?Percent
versicolor ? ? ? ? ? ?50 ? ? ? ? ?50.00%
?verginica ? ? ? ? ? ?50 ? ? ? ? ?50.00%
%% SVM模型訓(xùn)練,使用線性核函數(shù)
SVMModel = fitcsvm(X, y,?'KernelFunction',?'linear'?);
%% 查看進(jìn)行數(shù)據(jù)劃分的支持向量
sv = SVMModel.SupportVectors;
figure
gscatter( X( : , 1) , X( : , 2) ,y)
hold?on
plot(sv( : , 1) , sv( : , 2) ,?'ko'?,?'MarkerSize'?, 10)
legend(?'versicolor'?,?'virginica'?,?'Support Vector'?)
hold?off
圖5 支持向量分布
2)?多分類
MATLAB 多分類問(wèn)題的處理是基于二分類模型.下面的示例演示如何利用 SVM 的二分類模型并結(jié)合 fitcecoc 函數(shù)解決多分類問(wèn)題。
% 導(dǎo)入Fisher' s iris數(shù)據(jù)集
load?fisheriris
X = meas;
Y = species;
tabulate(Y)
? ? ? ?Value ? Count ? Percent
? ? ?setosa ? ? ? ? 50 ? ? ? 33.33%
versicolor ? ? ? ? 50 ? ? ? ?33.33%
? virginica ? ? ? ? 50 ? ? ? ?33.33%
% 創(chuàng)建SVM模板(二分類模型),并對(duì)分類變量進(jìn)行標(biāo)準(zhǔn)化處理
% predictors
t = templateSVM(?'Standardize'?, 1);
% 基于SVM二分類模型進(jìn)行訓(xùn)練并生成多分類模型
Mdl = fitcecoc( X, Y,?'Learners'?, t , . . .?'ClassNames'?, {'setosa'?,?'versicolor'?,?'virginica'})
Mdl =?
?ClassificationECOC
? ? ? ? ? ?ResponseName: ? ?'Y'
?CategoricalPredictors: ? [ ]
? ? ? ? ? ? ? ? ClassNames: ? {'setosa' 'versicolor' 'virginica'}
? ? ? ? ? ?ScoreTransform: ? 'none'
? ? ? ? ? ? BinaryLearners: ? {3*1 cell}
? ? ? ? ? ? ? ?CodingName: ? 'onevsone'
MATLAB 的 fitcecoc 函數(shù)支持多種二分類模型,例如, templateKNN, templateTree, templateLinear, templateNaiveBayes, 等等。
3. 回歸
回歸模型描述了響應(yīng)(輸出)變量與一個(gè)或多個(gè)預(yù)測(cè)變量(輸入)變量之間的關(guān)系。 MATLAB 支持線性,廣義線性和非線性回歸模型。以下示例演示如何訓(xùn)練邏輯回歸模型。
-
邏輯回歸
在 MATLAB 中,邏輯回歸屬于廣義線性回歸的范疇,可以通過(guò)使用 fitglm 函數(shù)實(shí)現(xiàn)邏輯回歸模型的訓(xùn)練。
% 判定不同體重、年齡和性別的人的吸煙概率
load?hospital
dsa = hospital;
% 指定模型使用的計(jì)算公式
% 公式的書(shū)寫(xiě)方式符合 Wilkinson Notation, 詳情請(qǐng)查看:
% http://cn.mathworks.com/help/stats/wilkinson-notation.html
modelspec =?'Smoker ~ 1+ Age + Weight + Sex + Age:Weight + Age:Sex + Weight:Sex';
% 通過(guò)參數(shù) ’Disribution' 指定 ‘binomial' 構(gòu)建邏輯回歸模型
mdl = fitglm(dsa, modelspec,?'Distribution',?'binomial')
4.?聚類
聚類是將數(shù)據(jù)集分成組或類。 形成類,使得同一類中的數(shù)據(jù)非常相似,而不同類中的數(shù)據(jù)差異非常明顯。
-
層次聚類
下面以層次聚類方法為例,演示如何利用 MATLAB 進(jìn)行聚類分析。
% 數(shù)據(jù)導(dǎo)入
load?fisheriris
% MATLAB中層次聚類是通過(guò)linkage函數(shù)實(shí)現(xiàn)
% 通過(guò)參數(shù)可以配置距離計(jì)算方法
% 類內(nèi)距離的計(jì)算方法:'euclidean' ,歐幾里得距離
eucD = pdist(mean ,?'euclidean'?);
% 類間距離的計(jì)算方法:'ward' ,最小化兩個(gè)類內(nèi)點(diǎn)之間聚類平方和
Z = linkage(eucD,?'ward');
% 使用 cophenetic 相關(guān)系數(shù)評(píng)價(jià)聚類計(jì)算過(guò)程(類內(nèi)距離最小,類間距離最大)
% 值越大表明距離計(jì)算結(jié)果越好
cophenet(Z, eucD)
ans = 0.872828315330562
%生成4個(gè)類別的聚類結(jié)果
c = cluster(Z,?'maxclust'?, 4);
可以顯示層次聚類生成的聚類樹(shù),使用 dendrogram 函數(shù):
% 查看層次聚類樹(shù)
dendrogram(Z)
圖6 層次聚類
???免費(fèi)分享一些我整理的人工智能學(xué)習(xí)資料給大家,整理了很久,非常全面。包括一些人工智能基礎(chǔ)入門(mén)視頻+AI常用框架實(shí)戰(zhàn)視頻、圖像識(shí)別、OpenCV、NLP、YOLO、機(jī)器學(xué)習(xí)、pytorch、計(jì)算機(jī)視覺(jué)、深度學(xué)習(xí)與神經(jīng)網(wǎng)絡(luò)等視頻、課件源碼、國(guó)內(nèi)外知名精華資源、AI熱門(mén)論文等。
下面是部分截圖,加我免費(fèi)領(lǐng)取
目錄
一、人工智能免費(fèi)視頻課程和項(xiàng)目
二、人工智能必讀書(shū)籍
三、人工智能論文合集
四、機(jī)器學(xué)習(xí)+計(jì)算機(jī)視覺(jué)基礎(chǔ)算法教程
最后,我想說(shuō)的是,自學(xué)人工智能并不是一件難事。只要我們有一個(gè)正確的學(xué)習(xí)方法和學(xué)習(xí)態(tài)度,并且堅(jiān)持不懈地學(xué)習(xí)下去,就一定能夠掌握這個(gè)領(lǐng)域的知識(shí)和技術(shù)。讓我們一起抓住機(jī)遇,迎接未來(lái)!
上面這份完整版的Python全套學(xué)習(xí)資料已經(jīng)上傳至CSDN官方,朋友如果需要可以點(diǎn)擊鏈接領(lǐng)取?文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-776861.html
二維碼詳情文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-776861.html
到了這里,關(guān)于數(shù)學(xué)建模 | MATLAB數(shù)據(jù)建模方法--機(jī)器學(xué)習(xí)方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!