大家好,我們是 AI . FREE Team - 人工智慧自由團隊,這一次的鐵人賽,自由團隊將從0到1 手把手教各位讀者學會 (1)Python基礎語法 (2)Python Web 網頁開發框架 – Django (3)Python網頁爬蟲 – 周易解夢網 (4)Tensorflow AI語言模型基礎與訓練 – LSTM (5)實際部屬AI解夢模型到Web框架上。
自由團隊的成立宗旨為開發AI/新科技的學習資源,提供各領域的學習者能夠跨域學習資料科學,並透過自主學習發展協槓職涯,結合智能應用到各式領域,無論是文、法、商、管、醫領域的朋友,都可以自由的學習AI技術。
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/
文章同步發布於:自由團隊部落格
(想看更多文章?學習更多AI知識?敬請鎖定自由團隊的頻道!)