您好,登錄后才能下訂單哦!
這篇文章主要介紹python如何實現(xiàn)感知器學習算法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
我們將研究一種判別式分類方法,其中直接學習評估 g(x)所需的 w 參數(shù)。我們將使用感知器學習算法。
感知器學習算法很容易實現(xiàn),但為了節(jié)省時間,我在下面為您提供了一個實現(xiàn)。該函數(shù)有幾個輸入:訓練數(shù)據(jù)、訓練標簽、對權(quán)重的初始猜測和學習率。注意,對于這兩個類,類標簽的值必須為+1和-1。
它將返回一個元組,其中包含:
1.學習w參數(shù)
2.執(zhí)行的迭代次數(shù)
3.錯誤分類的樣本數(shù)
花些時間檢查代碼。如果不清楚每一行是如何工作的,不要擔心,只要讓你自己知道每一行的目的是什么就可以了。代碼中有一些注釋可以幫助大家。
def perce(X, y, w_init, rho, max_iter=1000): (N, nfeatures) = X.shape # Augment the feature vectors by adding a 1 to each one. (see lecture notes) X = np.hstack((X, np.ones((N, 1)))) nfeatures += 1 w = w_init # initialise weights iter = 0 mis_class = N # start by assuming all samples are misclassified while mis_class > 0 and iter < max_iter: iter += 1 mis_class = 0 gradient = np.zeros(nfeatures) # initaliase the gradients to 0 # loop over every training sample. for i in range(N): # each misclassified point will cause the gradient to change if np.inner(X[i, :], w) * y[i] <= 0: mis_class += 1 gradient += -y[i] * X[i, :] # update the weight vector ready for the next iteration # Note, also that the learning rate decays over time (rho/iter) w -= rho / iter * gradient return w, iter, mis_class
解釋:
X-數(shù)據(jù)矩陣。每行代表一個單獨的樣本
y-與X-標簽行對應(yīng)的整數(shù)類標簽的一維數(shù)組必須為+1或-1
w_init-初始權(quán)重向量
rho-標量學習率
最大迭代次數(shù)-最大迭代次數(shù)(默認為1000)
def perce_fast(X, y, w_init, rho, max_iter=10000): (N, nfeatures) = X.shape X = np.hstack((X, np.ones((N, 1)))) nfeatures += 1 w = w_init iter = 0 mis_class = N yy = np.tile(y, (nfeatures, 1)).T while mis_class > 0 and iter < max_iter: iter += 1 # Compute set of misclassified points mc = (np.dot(X, w.transpose()) * y) <= 0 mis_class = np.sum(mc) # Update weights. Note, the learning rate decays over time (rho/iter) w -= rho / iter * (np.sum(-yy[mc, :] * X[mc, :], axis=0)) return w, iter, np.sum(mc)
以上是“python如何實現(xiàn)感知器學習算法”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。