基于KNN算法的少量数据分类实验
一、實驗目的
??利用knn分類算法來對汽車碰撞聲以及汽車鳴笛聲進行識別,本次實驗使用的聲學特征是37維mfcc特征,其中包括前12維倒譜系數、12維一階差分系數、12維二階差分系數以及1維短時信號能量譜系數。
二、實驗內容
1、實驗步驟
1.1實驗步驟流程圖
2、knn分類算法簡述
2.1算法概述
KNN(k-Nearest Nerghbor)是一種有監督分類算法,是最簡單的機器學習算法之一,顧名思義,其算法主體思想就是根據距離相近的鄰居類別,來判定自己的所屬類別。算法的前提是需要有一個已被標記類別的訓練數據集,具體的計算步驟分為以下三步:
(1)、計算測試對象與訓練集中所有對象的距離,可以是歐式距離、余弦距離等,比較常用的是較為簡單的歐式距離;
(2)、找出上步計算的距離中最近的K個對象,作為測試對象的鄰居;
(3)、找出K個對象中出現頻率最高的對象,其所屬的類別就是該測試對象所屬的類別。
2.2算法優缺點
(1)、優點
思想簡單,易于理解,易于實現,無需估計參數,無需訓練;
適合對稀有事物進行分類;
特別適合于多分類問題。
(2)、缺點
懶惰算法,進行分類時計算量大,要掃描全部訓練樣本計算距離,內存開銷大,評分慢;
當樣本不平衡時,如其中一個類別的樣本較大,可能會導致對新樣本計算近鄰時,大容量樣本占大多數,影響分類效果;
可解釋性較差,無法給出決策樹那樣的規則。
3、算法參數選擇
本次實驗使用汽車碰撞聲和汽車鳴笛聲各10條數據作為訓練數據集,臨近K值選取9。
三、實驗結果
1、分類結果
使用50條聲音片段來測試分類器,并將分類結果結果保存到表格中,如下表列出的16條分類結果數據。
?
抽取的文件名 | 抽取的幀數 | knn算法是否正確識別 | 標簽及其出現的次數 |
crash1 | 44-53 | 是 | {0: 8, 1: 1} |
crash2 | 278-287 | 是 | {0: 6, 1: 3} |
crash3 | 118-127 | 是 | {1: 2, 0: 7} |
crash4 | 6-15 | 是 | {0: 5, 1: 4} |
crash5 | 22-31 | 是 | {0: 6, 1: 3} |
crash6 | 10-19 | 否 | {1: 5, 0: 4} |
crash7 | 44-53 | 否 | {0: 3, 1: 6} |
crash8 | 88-97 | 是 | {1: 3, 0: 6} |
crash9 | 125-134 | 是 | {0: 5, 1: 4} |
crash10 | 5-14 | 是 | {1: 4, 0: 5} |
crash11 | 6-15 | 否 | {1: 5, 0: 4} |
crash12 | 3-12 | 否 | {0: 4, 1: 5} |
crash13 | 11-20 | 否 | {1: 6, 0: 3} |
crash14 | 27-36 | 否 | {1: 6, 0: 3} |
horn1 | 8-17 | 是 | {1: 5, 0: 4} |
horn3 | 3-12 | 是 | {1: 7, 0: 2} |
表1 分類結果表格
2、分類結果分析
50個樣本數據中,分類器正確識別31個樣本數據,整體準確率僅僅達到62%,在其中34條碰撞聲數據中,分類器正確識別到17條數據,識別準確率僅僅達到50%。在其中16條鳴笛聲中數據中,分類器正確識別到14條數據,準確率能達到87.5%。
四、實驗總結
從本次實驗結果來看,knn+mfcc組合的聲音識別算法對汽車碰撞聲的識別準確率僅僅達到50%,其分類效果并不好,但是對汽車鳴笛聲的識別率能達到87.5%,在可以接受的范圍內。
本次實驗有多處不足之處,
(1) 實驗中對每一段聲音信號僅僅隨機選取了十幀的特征來做為訓練和識別的特征集有待商榷,不能保證十幀的特征數據能夠表征聲音信號的完整特征。
(2) 實驗中knn算法訓練集數據集過少,每個標簽僅僅選取十個樣本數據。訓練樣本數據集過少會降低knn算法的識別準確率。
(3) 實驗數據僅僅選取兩種聲音信號,不足以說明分類器適用性。
總結
以上是生活随笔為你收集整理的基于KNN算法的少量数据分类实验的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最新版珊瑚虫QQ带的流氓软件yok搜索引
- 下一篇: 4000000000内满足f(n)=n最