五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

KNN、SVM、MLP、K-means分類實驗

2022-03-29 18:11 作者:深度之眼官方賬號  | 我要投稿

來源:投稿 作者:摩卡

編輯:學姐

NO.1

數(shù)據(jù)集簡介


實驗使用了兩個數(shù)據(jù)集,一個是經典的鳶尾花數(shù)據(jù)集(iris)另一個是樹葉數(shù)據(jù)集(leaf)


鳶尾花數(shù)據(jù)集(iris):


鳶尾花數(shù)據(jù)集發(fā)布于1988年7月1日,該數(shù)據(jù)集共有150條數(shù)據(jù),分為3個類別,為setosa、versicolor、virginica 。


每個類別有50條數(shù)據(jù),每條數(shù)據(jù)有4個特征,分別是sepal_length(范圍在4.3-7.9)、sepal_width(范圍在2.0-4.4)、petal_length(范圍在1.0-6.9)、petal_width(范圍在0.1-2.5)。


該數(shù)據(jù)集沒有缺失值,但類別標簽是字符串類型,需要進行重新編碼(編碼時從0開始)


樹葉數(shù)據(jù)集(leaf):


樹葉數(shù)據(jù)集發(fā)布于2014年2月24日,該數(shù)據(jù)集共有340條數(shù)據(jù),有30個類別(有的是在同一類別下但是有學名有不同),每條數(shù)據(jù)有15個特征,沒有缺失值,類別標簽是數(shù)字編碼無需進行轉換。該數(shù)據(jù)集還提供RGB格式,可以用于計算機視覺任務。



NO.2

實驗工具介紹


硬件:本實驗所使用的CPU型號為inter@i5-10210U 1.6GHz-4.2GHz

軟件:所使用的軟件為Anaconda + Pycharm

框架:所使用的框架為pytorch、使用機器學習庫sklearn、pandas、繪圖工具matplotlib


NO.3

實驗步驟簡介


01?模型簡介


選取了KNN、SVM、K-means、MLP這幾個模型進行實驗。

K近鄰法(k-nearest neighbor, k-NN)


KNN是一個基本的分類方法,由Cover和Hart在1968年提出。


K近鄰算法簡單直觀:


給定一個訓練集T={(x1, y1), (x2, y2), (x3, y3), …… ,(xn, yn)},對于新輸入的實例xn+1,在訓練集中找到與該實例最相近的k個實例,這k個實例的多數(shù)屬于某個類,就把該輸入實例分到這個類。k-近鄰算法可以分為兩個部分,一部分是根據(jù)訓練集構造kd樹進行超平面的劃分,一部分是根據(jù)新輸入的實例在kd樹中進行搜索來確定新輸入實例的類別。


當超平面構造完成,k值選取完畢之后,新實例的標簽也就確定了。在進行距離測量時可以選擇L1、L2范數(shù),確定新實例所屬類別時可以使用多數(shù)表決的方法。


支持向量機(support vector machines, SVM)


支持向量機(support vectoe machines)由Cortes和Vapnik提出,最初只是線性支持向量機,適用于可線性分類的數(shù)據(jù)。后來Boser、Guyon、Vapink又引入了核(kernel)的技巧,提出了非線性支持向量機。


圖3 樣本點到平面距離


非線性支持向量機(non- linear support vectoe machines)


顧名思義該向量機的決策邊界(decision boundary)可以是非線性的。非線性支持向量機在線性向量機的基礎上修改了,將修改為。


是一個特征向量,由每個樣本與標記點(landmarks)的相似程度構成。


如圖中紅色的點為標記點(landmarks),綠色點為當前特征點x,藍色點為其他特征點x_others。是由x與各個標記點的相似程度構成,當使用高斯核時相似程度的度量函數(shù)為



K均值聚類(k-means)

??

聚類算法針對給定的樣本,依據(jù)它們特征的相似度或者距離,將其歸并到若干“類”或“簇”的分析問題。聚類屬于無監(jiān)督學習,只根據(jù)樣本的相似度或距離將其進行歸類。K-means聚類算法屬于中心聚類方法,通過迭代,將樣本分攤到k個類中,使得樣本與其所屬的中心最近。



k-means聚類算法分過程為,先隨機產生k個聚類中心(centroid),在訓練集中按照樣本點距離各中心的距離著色(著色過程也就是分類過程)再根據(jù)各類別點計算出均值,作為新聚類中心,如此循環(huán)直到聚類結束。


根據(jù)上述算法描述可知,K-means聚類的優(yōu)化對象是各個樣本點到聚類中心的距離,



其中為每個樣本點被分配到的類,為k個聚類中心,為每個樣本點被分配到的聚類中心。



多層感知機(multilayer perceptron,MLP)


多層感知機也叫做深度前饋網(wǎng)絡(deep feedforward network)、前饋神經網(wǎng)絡(feedforward neural network)。神經網(wǎng)絡中最基本的單元是神經元(neuron)模型,每個神經元與其他神經元相連接,神經元收到來自n個其他神經元傳遞過來的輸入信號,這些輸入信號通過帶權重的連接進行傳遞,神經元接收到的總輸入值將與神經元的閾值進行比較,然后通過激活函數(shù)(activation function)處理以產生神經元的輸出。



假設有如下圖所示結構的網(wǎng)絡,該網(wǎng)絡從左至右分別為input層、hidden1層、hidden2層、output層。


圖13 神經網(wǎng)絡


約定表示第j層上第i個神經元的激活項,表示第k層的第i個激活項的第j個輸入,為激活函數(shù)。根據(jù)上述前向傳播方法可知、、、、為:



圖14 梯度下降局部最優(yōu)、全局最優(yōu)


02?鳶尾花數(shù)據(jù)集處理


2.1數(shù)據(jù)預處理


鳶尾花數(shù)據(jù)集:


使用seaborn庫繪制數(shù)據(jù)集的圖像進行分析,根據(jù)類別進行分類。得到一下圖片。根據(jù)下面圖像的觀察,以花萼長度(sepal_length)與花萼寬度(sepal_width)進行分類時沒有很好的將數(shù)據(jù)分開,所以進行數(shù)據(jù)清洗的時候將這兩個類別清洗掉,以此來提高效率。


圖15 鳶尾花特征可視化1


進行數(shù)據(jù)清洗完畢后,進行可視化,得到如下結果。


圖16 鳶尾花特征可視化2


因為鳶尾花數(shù)據(jù)集的標簽類別項是字符串類型,需要進行編碼,使用LabelEncoder()將其編碼為0(setosa)、1(versicolor)、2(virginica)。


使用StandardScaler()進行標準化(使用StandardScaler()進行標準化的數(shù)學原理為將數(shù)據(jù)按其屬性減去其均值,然后除以其方差。最后得到的結果是,對每個屬性/每列來說所有數(shù)據(jù)都聚集在0附近,方差值為1)。



2.2劃分數(shù)據(jù)集


將數(shù)據(jù)集劃分為訓練集(train_dataset)和測試集(test_dataset)兩部分,訓練集120條數(shù)據(jù),測試集有30條數(shù)據(jù)。


03樹葉數(shù)據(jù)集處理


3.1數(shù)據(jù)預處理


樹葉(leaf)數(shù)據(jù)集共有14個特征和一個類別屬性,計算屬性與類別的相關系數(shù),并進行熱圖的繪制。由下圖可知,與類別成正相關的屬性由高到底排序為B、M、I、K、C、J、L、N、D、A、E,也可以發(fā)現(xiàn)屬性H、G、F與屬性成負相關。


圖17 樹葉屬性熱圖1


進行數(shù)據(jù)清洗,除去成負相關的屬性H、G、F,得到的熱圖如下。


圖18 樹葉屬性熱圖2


對樹葉的類別進行編碼使用LabelEncoder() 類別編號從0-29。使用StandardScaler()進行標準化。


3.2劃分數(shù)據(jù)據(jù)


將數(shù)據(jù)集劃分為訓練集(train_dataset)和測試集(test_dataset)兩部分,訓練集有210條數(shù)據(jù),測試集有130條數(shù)據(jù)。


04鳶尾花數(shù)據(jù)集分類結果展示


4.1 KNN

使用KNN模型進行分類,測量鄰居間距離使用minkowski距離,鄰居個數(shù)k=5。預測準確率為97%。


圖19 KNN分類邊界


圖20 KNN評價指標


4.2 SVM


使用SVM進行分類,使用的核函數(shù)為高斯核(Gaussian kernel ),超參數(shù)C=1.0。預測準確率為97%。


圖21 SVM分類邊界


圖22 SVM評價指標




4.3 K-means

使用K-means進行分類,簇的個數(shù)n_clusters=3,最大迭代次數(shù)max_iter=100。預測準確率為97%


圖23 K-means分類邊界


圖24 K-means評價指標


4.4 MLP


使用MLP進行分類,構造全連接神經網(wǎng)絡,該網(wǎng)絡有1個輸入層,1個輸出層,3個隱藏層。輸入層有2個神經元(在數(shù)據(jù)預處理前input神經元為4個),隱藏層神經元個數(shù)為16個,輸出層神經元個數(shù)為3個(因為有3個類別,所以輸出神經元個數(shù)為3)。


隱藏層激活函數(shù)為ReLu函數(shù),使用交叉熵損失函數(shù),優(yōu)化方法使用梯度下降法(SGD),學習率lr=0.01,momentum=0.9,最大周期max_epoch=50。訓練準確率最高為100%,預測準確率最高為97%。

圖25 MLP訓練、測試損失曲線

圖26 MLP評價指標


05

樹葉數(shù)據(jù)集分類結果


5.1 KNN


使用KNN模型進行分類,由于樹葉數(shù)據(jù)集相比于鳶尾花數(shù)據(jù)集更復雜,參數(shù)的選擇也更困難,所以使用網(wǎng)格化搜索最優(yōu)參數(shù)。測量鄰居間距離使p=1曼哈頓距離,鄰居個數(shù)k=4,權重weight=“distance”(權重和距離成反比),預測準確率為65%。

圖27 KNN評價指標

5.2 SVM


使用SVM進行分類,同樣使用網(wǎng)格化搜索最優(yōu)參數(shù)。使用的核函數(shù)為線性核(Linear kernel ),超參數(shù)C=1.0、gamma=0.0001。預測準確率為77%。

圖28 SVM評價指標


5.3 MLP


使用MLP進行分類,構造全連接神經網(wǎng)絡,該網(wǎng)絡有1個輸入層,1個輸出層,3個隱藏層。


輸入層有14個神經元(在數(shù)據(jù)預處理后雖然變成11個但是效果不好),隱藏層神經元個數(shù)為23個,輸出層神經元個數(shù)為30個(因為有30個類別,所以輸出神經元個數(shù)為30)。


隱藏層激活函數(shù)為ReLu函數(shù),還在每層上添加了隨即失活,失活率p=0.1,使用交叉熵損失函數(shù),優(yōu)化方法使用梯度下降法(SGD),學習率lr=0.01,momentum=0.9,最大周期max_epoch=2500。訓練準確率最高為93.3%,預測準確率最高為82.3%。

圖29 MLP訓練、測試損失曲線

圖30 MLP評價指標


06實驗結果比較


6.1鳶尾花數(shù)據(jù)集

由下圖可以看出,MLP、K-means、SVM、KNN四種方法準確率(acc)均為97%。MLP、K-means、SVM、KNN四種方法的平均精度(Avg_precision)均為97%。


MLP、K-means、SVM、KNN四種方法的平均召回率(Avg_recall):SVM、KNN、MLP皆為97%, K-means為95%。


MLP、K-means、SVM、KNN四種方法的平均召回率(Avg_f1-score) :SVM、KNN、MLP皆為97%, K-means為96%。

圖31 指標比較1


6.2樹葉數(shù)據(jù)集


由下圖可以看出,MLP準確率最高為82%,SVM其次為77%,最后是KNN為65%。MLP平均準確率(Avg_precision)率最高為85%,SVM其次為79%,最后是KNN為69%。


MLP平均準確率(Avg_recall)率最高為82%,SVM其次為77%,最后是KNN為65%。MLP平均準確率(Avg_f1-score)率最高為82%,SVM其次為76%,最后是KNN為66%。

圖32 指標比較2


07實驗結果分析


7.1鳶尾花數(shù)據(jù)集


通過上面4個模型的accuracy、Avg_precision、Avg_reacll、Avg_f1-score 4個指標的對比可以發(fā)現(xiàn),4個模型對鳶尾花數(shù)據(jù)集的各項指標都很高。在特征工程部分,將鳶尾花的4個屬性進行清洗,只保留了2個重要的屬性,使得噪聲減少,提高了識別準確率等各項指標。

表1 鳶尾花數(shù)據(jù)集


7.2樹葉數(shù)據(jù)集


通過上面3個模型的accuracy、Avg_precision、Avg_reacll、Avg_f1-score 4個指標的對比,可以發(fā)現(xiàn),相比于鳶尾花數(shù)據(jù)集,模型的各項指標都有大幅度的下降。這是由于樹葉數(shù)據(jù)集比鳶尾花數(shù)據(jù)集更加復雜:類別多(30類)、特征多(14個)。并且在MLP、SVM、KNN三個模型中,MLP表現(xiàn)最好,識別率為82%,其余三項指標也都在82%左右。


表2 樹葉數(shù)據(jù)集


08?總結


選擇了兩個數(shù)據(jù)集進行實驗,先在特征較少,數(shù)據(jù)量較小的鳶尾花數(shù)據(jù)集上進行實驗,所用4個模型均取得較好結果。注意一點,K-means屬于無監(jiān)督學習方法,所以在進行評估的時候將K-means模型預測出來的標簽不一定與數(shù)據(jù)集的標簽編碼對應。多進行幾次聚類,繪制出圖像,根據(jù)圖像選擇。


在進行樹葉數(shù)據(jù)集的分類時,因為數(shù)據(jù)集的特征數(shù)較多,想到使用PCA進行數(shù)據(jù)壓縮,將14個特征壓縮到10和特征,但是效果并不理想。也采用了計算相關系數(shù)的方法,效果也不好。


所以只在原數(shù)據(jù)的基礎上進行了標準化。在MLP、SVM、KNN三個模型中,顯然MLP的實驗效果更好。在更開始訓練MLP時出現(xiàn)過擬合現(xiàn)象,在每一個隱藏層前都添加了隨即失活(p=0.1)來避免過擬合的出現(xiàn)。

KNN、SVM、MLP、K-means分類實驗的評論 (共 條)

分享到微博請遵守國家法律
孟连| 武乡县| 宁都县| 凤城市| 宁强县| 健康| 晋州市| 柳州市| 调兵山市| 嘉黎县| 房产| 衡阳市| 陈巴尔虎旗| 梅河口市| 鹤峰县| 武夷山市| 璧山县| 四会市| 花莲县| 抚宁县| 昌乐县| 铁力市| 澄迈县| 兴仁县| 凭祥市| 盐边县| 富顺县| 修水县| 黔西县| 东阿县| 叙永县| 基隆市| 社会| 恭城| 呼伦贝尔市| 乐平市| 石泉县| 若尔盖县| 临汾市| 合肥市| 依兰县|