Page 183 - python
P. 183
157
elif ((A==1) & (B==1) & (C==0) & (D==1) & (E==1) & (F==0) & (G==1)): z = 2
elif ((A==0) & (B==1) & (C==1) & (D==0) & (E==0) & (F==0) & (G==0)): z = 1
elif ((A==1) & (B==1) & (C==1) & (D==1) & (E==1) & (F==1) & (G==0)): z = 0
print("A=%d B=%d C=%d D=%d E=%d F=%d G=%d คือเลข %d"%(A,B,C,D,E,F,G,z))
ผลลัพธ :
A=1 B=1 C=1 D=1 E=0 F=1 G=1 คือเลข 9
ตัวอยางที่ 12.1 การตรวจสอบเงื่อนไขจะใช & (And Operator) เพื่อตรวจสอบเงื่อนไขตัวแปร A-
G ทีละตัว เชน ถาตัวแปร A-G มีคาเทากับ 1 ทั้งหมด หมายถึงเลข 8 วิธีการเขียนโปรแกรมแบบนี้ตอง
ตรวจสอบเงื่อนไขอยางละเอียดถี่ถวน ในขณะที่ตัวอยางถดไปจะแสดงการเขียนโปรแกรมโดยใช Machine
ั
Learning เขามาชวยแกปญหา
12.3 การเขียนโปรแกรมตรวจสอบเลข 7-Segment ดวยการเรียนรูของเครื่องจักร
ในหัวขอนี้แกปญหาการตรวจสอบเลข 7-Segment ดวยวิธีการเรียนรูของเครื่องจักร (Machine
Learning) โดยใชโมเดลการแกปญหาดวยวิธีโครงขายประสาทเทียม ซึ่งเปนหนึ่งในอลกอริทึมดาน
ั
ี
ั
Machine Learning โดยจะกลาวถึงรายละเอยดของนิวรอนเน็ตเวอรคในหัวขอถดไป ในตัวอยางนี้จะ
ื่
แสดงใหเห็นการนําแนวคิดของการเรียนรูของเครื่องจักรเพอนํามาแกปญหาการตรวจสอบเลข 7-
Segment แสดงไดดังนี้
ตัวอยางที่ 12.2 การเขียนโปรแกรมดวย Machine Learning
import numpy as np
from sklearn.neural_network import MLPClassifier
x = np.array([
[1,1,1,1,1,1,0], [0,1,1,0,0,0,0], [1,1,0,1,1,0,1], [1,1,1,1,0,0,1], [0,1,1,0,0,1,1],
[1,0,1,1,0,1,1], [1,0,1,1,1,1,1], [1,1,1,0,0,1,0], [1,1,1,1,1,1,1], [1,1,1,1,0,1,1]
])
y = np.array([0,1,2,3,4,5,6,7,8,9])
model = MLPClassifier(max_iter=1000)
model.fit(x, y)
A = 1; B=1; C=1; D=1; E=0; F=1; G=1
test = [A, B, C, D, E, F, G]
z = model.predict([test])[0]
print("A=%d B=%d C=%d D=%d E=%d F=%d G=%d คือเลข %d"%(A,B,C,D,E,F,G,z))