本文作者: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__ : 為初始宣告變數bmath_f : 將第Xi個的兩個值做單純的相加,並且判斷是否大於bpredict : 用for迴圈,透過math_f將每個回傳的值放進Y陣列裡acc_score : 進行預測的值與答案進行比對,算出正確率fit : 這個funciton比較長,我在程式內進行了註解,還有一些螢幕輸出讓大家更好理解,簡單來說就是呼叫以上的funciton,不過最重要的功能,是要保留最高的acc_score的參數bmp_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
bX_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 modelmp_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 挑戰賽部落格