感知器java實現簡略版

2021-07-23 13:30:08 字數 2057 閱讀 3301

/** 

* 感知器分類:隨機梯度下降演算法求解。

* 感知器是乙個線性二分類器: y = (w)t·x + b 最優化可以求解w和b。

* * 損失函式:l(w,b) = 求和(i(yi != wt·xi + b) * yi(wt·xi + b))

* * 輸入: double[m][n] data 每行表示乙個樣本,每行是乙個n維的特徵向量。總共有m個樣本。

* int[m] label 長度為m的

* * 輸出:new perceptron

*

*@author huangyongye

* */

public

class

perceptron

/*** 模型訓練:通過梯度下降求解模型引數w向量和b

*@param trian_datas :輸入特徵矩陣

*@param labels :訓練資料的類標

*@param alpha: 步長

*@throws exception

*/public

void

train(double train_datas, int labels, double alpha) throws exception

}if(!flag) }}

/**

* sign函式

*@param dist

*@return

*/private

intsign(double dist)

/*** 點乘

*@param a

*@param b

*@return

*/private

double

docmul(double a, double b) throws exception

return sum;

}private

double

update_b(double b, int labeli, double alpha)

private

void

update_w(double w, double ts, int labeli, double alpha)

}public

inttest_one(double test_data) throws exception

public

int test_list(double test_datas) throws exception

return labels;

}public

static

void

main(string args) throws exception , , , , , , , , };

int labels = ;

*/double data = ,, };

int labels = ;

perceptron ptest = new perceptron(1000);

double alpha = 0.1;

ptest.train(data, labels, alpha);

double w = ptest.w;

system.out.print("parameter w is : ");

for(double d: w)

system.out.print(d + " ");

system.out.println("\nparameter b: " + ptest.b + "\n");

double test_case = ; // -1

double test_case2 = ; // 1

int label1 = ptest.test_one(test_case);

system.out.println("label1: " + label1);

int label2 = ptest.test_one(test_case2);

system.out.println("label2: " + label2);

}}

感知器的scala實現

其實感知器學習演算法,就是利用第一節介紹的單層感知器。首先利用給的正確資料,計算得到輸出值,將輸出值和正確的值相比,由此來調整每乙個輸出端上的權值。公式便是用來調整權值,首先 是乙個 學習引數 一般我將它設定成小於1的正數。t便是訓練資料中的正確結果,便是第i個輸入端的輸入值,便是第i個輸入端上面的...

感知器的scala實現

其實感知器學習演算法,就是利用第一節介紹的單層感知器。首先利用給的正確資料,計算得到輸出值,將輸出值和正確的值相比,由此來調整每乙個輸出端上的權值。公式便是用來調整權值,首先 是乙個 學習引數 一般我將它設定成小於1的正數。t便是訓練資料中的正確結果,便是第i個輸入端的輸入值,便是第i個輸入端上面的...

python 實現感知器(一)

基礎知識不再重述,可參考 coding utf 8 這裡定義乙個感知器的類 class perceptron object def init self,input num,activator 初始化感知器,設定輸入引數的個數,以及啟用函式。啟用函式的型別為double double self.act...