《統計學習方法》感知機學習演算法對偶形式C 實現

2021-10-12 05:09:10 字數 1830 閱讀 7385

部分函式採用一般形式的檔案中的函式

main.cpp

#include

#include

#include

#include

#include

"perceptron.h"

#include

"perceptron2.h"

using

namespace std;

intmain()

;double b =0;

vectordouble

>> x,,

};vector<

int> y

;double learning_rate =1;

cout <<

"begin"

<< endl;

perceptron2 per

(alpha, b, x, y, learning_rate)

; vector<

double

> x0

; per.

train()

;double ret = per.

predict

(x0)

; cout << ret << endl;

}

//

// created by gu on 12/16/2020.

//#include

#include

#include

#include

"perceptron.h"

#include

"perceptron2.h"

using

namespace std;

int perceptron2::

train()

}}while

(flag)

;return0;

}double perceptron2::

predict

(const vector<

double

>

&x)const

prediction +

= m_b;

return

sign

(prediction);}

perceptron2::

perceptron2

(vector<

double

>

&alpha,

double b, vectordouble

>>

&x, vector<

int>

&y,double learning_rate)

:m_alpha

(alpha)

,m_b

(b),

m_x(x)

,m_y

(y),

m_learning_rate

(learning_rate)

}}

//

// created by gu on 12/16/2020.

//#ifndef cpp_perceptron2_h

#define cpp_perceptron2_h

#include

using

namespace std;

/* * 感知機是二分類的線性分類模型,其輸入為例項的特徵向量,輸出為例項的類別,取+1和-1二值

* */

class

perceptron2

;#endif

//cpp_perceptron2_h

統計學習方法(二) 感知機學習方法的對偶形式

我們知道,在感知機的原始形式中,w 和 b 通過以下形式更新 w leftarrow w eta y x b leftarrow b eta y i 假設點 x i,y i 在學習過程中被使用了 n i 次 也即被分類錯誤了 i 次 那麼最後學習到的 w,b 可以表示為 w sum n i eta ...

感知機 統計學習方法

一 感知機適用問題以及它的輸入,輸出,求解方法 1 感知機 perceptron 適用於二類分類問題 該分類問題是線性可分問題 2 感知機模型是線性分類模型 3 感知機的幾何解釋,感知機對應的是乙個超平面 4 輸入 例項的特徵向量 5 輸出 例項的類別,取 1和 1二值 6 求解方法 有監督學習 給...

《統計學習方法》 感知機

最近終於有開始看 統計學習方法 了,畢竟無腦調參確實沒有什麼意義。一方面是作為看書的筆記,一方面作為比部落格或許能起到一點參考作用吧。希望可以日更。由輸入空間到輸出空間的函式 f x si gn w x b f x sign w cdot x b f x s ign w x b 稱為感知機。感知機是...