花書上對基本機器學習演算法是按照有監督學習演算法和無監督學習演算法分類的:
無監督學習演算法:主成分分析,k-均值聚類,k近鄰分類(k-nn)
有監督學習演算法:logistic回歸演算法(邏輯回歸),svm(支援向量機)(拓展內容是是核函式),決策樹,線性判別分析(lda)
現在是打算先找一找這些演算法有沒有c/c++實現,再評估一下資料集的支援範圍之類的東西,如果實在找不到再考慮python的插樁分析。。
然後這些是搜尋得到的可用開源庫,我打算先從可以快速上手的開源庫著手,尋找能夠簡單執行的演算法實現,實在不行再考慮使用上面倉庫的實現.
# svm(libsvm)
# opencv
# 然後opencv是自帶了logistic回歸,knn,svm,決策樹,貝葉斯分類,隨機梯度下降svm分類。
# 如果可以跑opencv的例程,就優先使用opencv
opencv的機器學習演算法介紹:
相關問題(mark慢慢看):
cpp例程:
kmeans:
logistic回歸:
pca:
knn,svm:
svmsgd:
# cnn(tiny-cnn)
# dnn(tiny-dnn)
# pca,kmeans(armadillo)
接下來的工作有兩個,乙個是進行上述庫的安裝和樣例測試,還有乙個就是測試dynamorio能否支援定點到定點的插樁分析,通過節選片段**進行插樁分析,應該可以有效過濾非相干操作。
# build basic tools
$ make
# 使用svm-train執行樣例測試
$ ./svm-train heart_scale
# build
$ cmake .
$ sudo make install
# 假設待執行檔案為example.cpp
$ g++ example.cpp -o example -std=c++11 -o2 -larmadillo
即可。
這是我仿照官方文件寫的乙個樣例
#include #include using namespace std;
using namespace arma;
int main(int argc, char** ar**)
{ mat a(5, 4, fill::randu);
mat coeff;
mat score;
vec latent;
vec tsquared;
princomp(coeff, score, latent, tsquared, a);
cout《然後使用g++ myexample.cpp -o myexample -std=c++11 -o2 -larmadillo命令進行鏈結,使用.\myexample
執行即可。
opencv的安裝好麻煩。。好像是由於依賴問題導致安裝好之後也沒有辦法跑樣例,解除安裝也解除安裝不了。。。只好重灌虛擬機器。。。哭了
常見機器學習演算法例程分析 畢設筆記6
年後有兩門課要考試,再加上摸摸魚。就到現在了。這次打算從畢業設計會用到的幾個簡單的開源庫開始分析,最後分析opencv的。目標演算法 svm 使用到開源庫自帶的例程svm train,使用的資料是package中自帶的心率資料 heart scale 資料集特徵 271個資料點,標籤為正負1,資料維...
基本機器學習面試問題 理論 演算法2
線性回歸 可以新增多項式和互動特徵以增加非線性 邏輯回歸 knn給定乙個資料點,使用一定的距離度量 例如歐幾里德距離 計算 k 個最近的資料點 近鄰 對於分類,可以取大多數近鄰的標籤 對於回歸,我們採用標籤值的均值。對於 knn 來說,我們不需要訓練模型,我們只是在推理時間內進行計算。這可能在計算上...
《機器學習實戰》學習筆記之k 近鄰演算法3
2.3 手寫識別系統 從os模組中匯入listdir函式,用來讀取給定目錄中的檔名 from os import listdir關於zeros函式的使用,及注釋 image convert to vector def img2vector filename returnvect zeros 1,10...