本文作者:Ovien
自由團隊將從0到1 手把手教各位讀者學會(1)Python基礎語法、(2)Python Web 網頁開發框架 – Django 、(3)Python網頁爬蟲 – 周易解夢網、(4)Tensorflow AI語言模型基礎與訓練 – LSTM、(5)實際部屬AI解夢模型到Web框架上。
AI . FREE Team 讀者專屬福利 → Python Basics 免費學習資源
0或1(True or False)
if
判斷式就做出來了numpy
這個高階矩陣運算工具~import numpy as np X_tr = np.array([[0,0],[0,1],[1,0],[1,1]]) print(X_tr)
[[0 0] [0 1] [1 0] [1 1]]
y_and = np.array([0,0,0,1]) print(y_and)
[0 0 0 1]
class MP_Neuron_network: def __init__(self): self.b = None def math_f(self,x): return(sum(x) >= self.b) #回傳是否大於b def predict(self ,X): Y = [] for x in X: result = self.math_f(x) Y.append(result) return np.array(Y) def acc_score(self,y_p,y_t): c = 0 for i,j in zip(y_p,y_t): if i == j: c += 1 return (c / len(y_t))*100 # or y_p def fit(self , X,Y): accuracy = {} for b in range(5): self.b = b Y_pred = self.predict(X) # print(Y_pred) accuracy[b] = self.acc_score(Y_pred,Y) print('b為 ({}) 預測為{} ,其正確率為{}'.format(b , Y_pred ,accuracy[b])) best_b = max(accuracy ,key = accuracy.get) print('b為 {} 是目前最好的結果,其正確率為 {}'.format(best_b,accuracy[best_b])) print("") self.b = best_b print('最好的b為',best_b) print('最高的正確率',accuracy[best_b])
__init__
: 為初始宣告變數b
math_f
: 將第Xi個的兩個值做單純的相加,並且判斷是否大於b
predict
: 用for
迴圈,透過math_f
將每個回傳的值放進Y
陣列裡acc_score
: 進行預測的值與答案進行比對,算出正確率fit
: 這個funciton比較長,我在程式內進行了註解,還有一些螢幕輸出讓大家更好理解,簡單來說就是呼叫以上的funciton,不過最重要的功能,是要保留最高的acc_score
的參數b
mp_model = MP_Neuron_network() mp_model.fit(X_tr,y_and)
b為 (0) 預測為[ True True True True] ,其正確率為25.0 b為 0 是目前最好的結果,其正確率為 25.0 b為 (1) 預測為[False True True True] ,其正確率為50.0 b為 1 是目前最好的結果,其正確率為 50.0 b為 (2) 預測為[False False False True] ,其正確率為100.0 b為 2 是目前最好的結果,其正確率為 100.0 b為 (3) 預測為[False False False False] ,其正確率為75.0 b為 2 是目前最好的結果,其正確率為 100.0 b為 (4) 預測為[False False False False] ,其正確率為75.0 b為 2 是目前最好的結果,其正確率為 100.0 最好的b為 2 最高的正確率 100.0
b
X_test = np.array([[0,1],[1,1],[0,0],[1,0]]) mp_model.predict(X_test)
array([False, True, False, False])
X_tr = np.array([[0,0],[0,1],[1,0],[1,1]]) y_or = np.array([0,1,1,1])print(y_or)
[0 1 1 1]
MP model
mp_model = MP_Neuron_network() mp_model.fit(X_tr,y_or)
b為 (0) 預測為[ True True True True] ,其正確率為75.0 b為 0 是目前最好的結果,其正確率為 75.0 b為 (1) 預測為[False True True True] ,其正確率為100.0 b為 1 是目前最好的結果,其正確率為 100.0 b為 (2) 預測為[False False False True] ,其正確率為50.0 b為 1 是目前最好的結果,其正確率為 100.0 b為 (3) 預測為[False False False False] ,其正確率為25.0 b為 1 是目前最好的結果,其正確率為 100.0 b為 (4) 預測為[False False False False] ,其正確率為25.0 b為 1 是目前最好的結果,其正確率為 100.0 最好的b為 1 最高的正確率 100.0
X_test = np.array([[0,1],[1,1],[0,0],[1,0]]) mp_model.predict(X_test)
array([ True, True, False, True])
import numpy as np X_tr = np.array([[0,0],[0,1],[1,0],[1,1]]) y_xor = np.array([0,1,1,0])print(y_xor)
[0 1 1 0]
mp_model = MP_Neuron_network() mp_model.fit(X_tr,y_xor)
b為 (0) 預測為[ True True True True] ,其正確率為50.0 b為 0 是目前最好的結果,其正確率為 50.0 b為 (1) 預測為[False True True True] ,其正確率為75.0 b為 1 是目前最好的結果,其正確率為 75.0 b為 (2) 預測為[False False False True] ,其正確率為25.0 b為 1 是目前最好的結果,其正確率為 75.0 b為 (3) 預測為[False False False False] ,其正確率為50.0 b為 1 是目前最好的結果,其正確率為 75.0 b為 (4) 預測為[False False False False] ,其正確率為50.0 b為 1 是目前最好的結果,其正確率為 75.0 最好的b為 1 最高的正確率 75.0
自由團隊 官方網站:https://aifreeblog.herokuapp.com/
自由團隊 Github:https://github.com/AI-FREE-Team/
自由團隊 粉絲專頁:https://www.facebook.com/AI.Free.Team/
自由團隊 IG:https://www.instagram.com/aifreeteam/
自由團隊 Youtube:https://www.youtube.com/channel/UCjw6Kuw3kwM_il39NTBJVTg/
文章同步發布於:第十二屆 IT 挑戰賽部落格