Python感知器是一種基于神經網絡的算法,是機器學習中的一個重要概念。感知器通過輸入多個特征,學習如何做出正確的分類決策。下面我們就來介紹一下如何用Python實現感知器算法。
#首先我們需要定義一個感知器類 class Perceptron(object): def __init__(self, n_inputs, learning_rate=0.1, n_epochs=10): self.weights = [0.0 for _ in range(n_inputs)] self.bias = 0.0 self.learning_rate = learning_rate self.n_epochs = n_epochs #感知器訓練 def train(self, inputs, targets): for iteration in range(self.n_epochs): for input_vector, target in zip(inputs, targets): self.update_weights(input_vector, target) #感知器預測 def predict(self, input_vector): weighted_sum = sum([self.weights[i] * input_vector[i] for i in range(len(input_vector))]) + self.bias if weighted_sum >= 0.0: return 1 else: return 0 #更新權重 def update_weights(self, input_vector, target): prediction = self.predict(input_vector) error = target - prediction self.bias += error * self.learning_rate for i in range(len(input_vector)): self.weights[i] += error * input_vector[i] * self.learning_rate
代碼中我們定義了一個Perceptron類,包含了初始化、訓練和預測等函數。在訓練時,我們根據輸入的訓練數據和訓練標簽迭代更新權重和偏差,直到達到設定的迭代次數。
最后我們貼上一個簡單的測試代碼,以驗證感知器模型的預測效果。
#測試代碼 inputs = [[1, 1], [1, 0], [0, 1], [0, 0]] targets = [1, 0, 0, 0] p = Perceptron(2) p.train(inputs, targets) print(p.predict([1, 1])) #1 print(p.predict([1, 0])) #0 print(p.predict([0, 1])) #0 print(p.predict([0, 0])) #0
通過運行測試代碼,我們可以發現感知器算法在這個簡單的二分類問題上表現出了可靠的預測效果。
上一篇gradle配置json
下一篇vue api使用