歡迎使用CSDN markdown編輯器

2021-07-04 14:07:41 字數 2054 閱讀 5790

今天做了利用libsvm對恆星光譜進行分類的train和predict,原計畫在boosting分類的過程中進行libsvm的引數調整,但發現這樣做無法保證每次訓練的基分類器的準確度,於是今天下午將libsvm從boosting**中分離出來,進行了初步定的train和predict。

起先對libsvm的使用並不是十分明了,今天嘗試讀了一下libsvm_train的核心原始碼,對train函式的使用有了乙個明確的了解,在此結合原始碼做簡單介紹:

train函式的輸入格式,引數修改全都由這個類來控制

private void parse_command_line(string argv) 時進行下列判斷,否則跳出迴圈。注意這裡是可以進行多個引數同時改變的,即可以輸入形式為argv = 

break

; if (++i >= argv.length)

exit_with_help();

switch (argv[i - 1].charat(1))

break

; case 'w':

++param.nr_weight;

param.weight_label[param.nr_weight - 1] = atoi(argv[i - 1]

.substring(2));

param.weight[param.nr_weight - 1] = atof(argv[i]);

break

; default:

system.err

.print("unknown option: " + argv[i - 1] + "\n");

exit_with_help();}}

svm.svm_set_print_string_function(print_func);

// determine filenames

if (i >= argv.length)

exit_with_help();

input_file_name = argv[i];//引數後第乙個字串為訓練集路徑

if (i < argv.length - 1)

model_file_name = argv[i + 1];//引數後第二個字串為模型儲存路徑

else

}

總體來說,train訓練的輸入argv的形式為argv =.

在今天的模型訓練中還出現了乙個差錯值得注意,當時我用了100條光譜(5000維)作為訓練集進行訓練,然後用其他100條光譜進行測試,測試準確率特別低,保持在11%左右,學長指出在高維的環境下如此小的訓練集訓練出的分類器是說明不了任何問題的,形象的解釋如圖:

一般來說,待分類的資料的維數越高,訓練乙個分類面就越困難,需要的訓練資料也就越多。目前正在用資料集為1w的資料進行引數的調整,明天更引數調整方法總結。

今天還和學長討論了有關libsvm使用時的一些問題和處理恆星光譜時的對一些問題的思考:

1.在利用libsvm處理低維資料時可以採用稍微複雜一些的核函式,如libsvm自帶的rbf核函式;當處理維度比較高的資料時,採用一些簡單的核函式(如線性函式)往往可以在很快的時間內得到稍遜色於複雜函式的分類器,雖然精度略有降低,但是速度上有很大提公升。

2.利用cnn處理影象問題時對平移、旋轉變換不敏感,在資料中存在較多這樣的變幻時可以考慮運用cnn

3.處理標籤錯誤問題的解決方法:

1)利用聚類的思想,對光譜進行粗分類,根據多個分類器的分類結果對光譜進行投票,決定是否保留此光譜資料,這樣可以排除掉很大一部分本身標籤錯誤和分類錯誤的資料,剩下的光譜資料擁有較高的置信度,再用其進行分類器訓練的過程中可以遮蔽掉標籤錯誤的影響。

2)利用rbm網路進行學習,因為rbm在手寫體識別中擁有十分優秀的實驗結果,擬利用手寫體資料隨機置錯20%的訓練集資料來檢驗其對訓練集錯誤的容忍度,從而判斷是否適用於光譜資料。

歡迎使用CSDN markdow

本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...

歡迎毛毛與妞妞使用CSDN markdown編輯器

建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...

歡迎使用CSDN markdow1n編輯器

本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...