2010-08-31 61 views
3

我正在測試幾種機器學習算法實現,檢查它們是否可以像論文中描述的那樣高效工作,並確保它們可以爲我們的統計NLP(自然語言處理)平臺提供強大的功能。如何測試機器學習或統計NLP算法實現包?

你們能告訴我一些測試算法實現的方法嗎? 1)哪些方面? 2)如何? 3)我必須遵循一些基本步驟嗎? 4)使用不同的編程語言時,我是否必須考慮多樣性的具體情況? 5)我必須理解算法嗎?我的意思是,如果我真的知道算法是什麼以及它是如何工作的,它是否提供任何幫助?基本上,我們使用C或C++來實現算法,而我們的工作環境是Linux/Unix。我們的測試方法只關注黑盒測試和測試函數的輸入/輸出。我渴望改善它們,但我現在沒有更好的主意...

Great Thx !! LOL

回答

2

對於許多機器學習和統計分類任務,測量質量的標準度量是Precision and Recall。大多數已發佈的算法將對這些度量標準做出某種聲明,或者您可以實施它們並自行運行這些測試。這應該提供一個很好的衡量你所期望的質量的指標。

當您談論算法的效率時,這通常是關於算法的時間或空間性能的一些陳述,以其輸入的大小或複雜度(通常在Big O notation中表示)表示。大多數公佈的算法將報告算法的時間和空間特性的上限。你可以用它作爲比較指標,儘管你需要了解一些關於計算的複雜性,以確保你不會自欺欺人。您也可以從程序代碼的手動檢查中獲取這些信息,但可能並不需要,因爲這些信息幾乎總是與算法一起發佈。

最後,理解算法總是一個好主意。它可以讓你更容易地知道你需要做什麼,作爲該算法的用戶,以確保你獲得最好的結果(並且確實知道你得到的結果是否合理),並且它可以讓你應用質量度量,比如我在這個答案的第一段中提出的質量度量。