機器學習是一門廣闊而令人興奮的學科,吸引了許多領域專家的注意。不幸的是,對於C++程式設計師和愛好者來說,機器學習領域似乎缺乏支援。為了填補這一空白並讓 C++ 在 ML 領域真正立足,編寫了這個函式庫。該庫的目的是充當低階開發人員和機器學習工程師之間的十字路口。
首先下載 ML++ 函式庫的頭檔。您可以透過複製儲存庫並提取其中的 MLPP 目錄來完成此操作:
git clone https://github.com/novak-99/MLPP
接下來,執行「buildSO.sh」shell 腳本:
sudo ./buildSO.sh
執行此操作後,將 ML++ 原始檔維護在本機目錄中並以這種方式包含它們:
# include " MLPP/Stat/Stat.hpp " // Including the ML++ statistics module.
int main (){
...
}
最後,創建完專案後,使用 g++ 編譯它:
g++ main.cpp /usr/local/lib/MLPP.so --std=c++17
請注意,ML++ 使用std::vector<double>
資料類型來模擬向量,並使用std::vector<std::vector<double>>
資料類型來模擬矩陣。
首先包含您選擇的對應頭檔。
# include " MLPP/LinReg/LinReg.hpp "
接下來,實例化該類別的一個物件。不要忘記將輸入集和輸出集作為參數傳遞。
LinReg model (inputSet, outputSet);
然後,呼叫您想要使用的優化器。對於梯度下降等迭代優化器,請包含學習率、曆元數以及是否使用 UI 面板。
model.gradientDescent( 0.001 , 1000 , 0 );
太好了,您現在可以開始測試了!若要測試單一測試實例,請使用下列函數:
model.modelTest(testSetInstance);
這將傳回模型對該範例的奇異預測。
若要測試整個測試集,請使用下列函數:
model.modelSetTest(testSet);
結果將是模型對整個資料集的預測。
ML++ 與大多數框架一樣,是動態的、不斷變化的。這在機器學習領域尤其重要,因為新的演算法和技術正在不斷開發中。以下是目前正在為 ML++ 開發的一些內容:
- 卷積神經網絡
- SVM 內核
- 支援向量回歸
在創建 ML++ 的過程中,各種不同的材料為我提供了幫助,我想在此對其中的一些材料表示感謝。 TutorialsPoint 的這篇文章在嘗試實現矩陣的行列式時提供了很大的幫助,而 GeeksForGeeks 的這篇文章在嘗試求矩陣的伴隨和逆時也非常有幫助。