Page 184 - python
P. 184
158
ผลลัพธ :
A=1 B=1 C=1 D=1 E=0 F=1 G=1 คือเลข 9
ตัวอยางที่ 12.2 คําสั่ง numpy เปนไลบรารี่สําหรับการคํานวณทางคณิตศาสตร และ
ึ้
ี่
MLPClassifier เปนคลาสที่ใชสรางโมเดลและทํานายผลจากโมเดลทสรางขนดวยวิธี Neural Network
ภายในไลบรารี่ sklearn ตัวแปร x จะเก็บขอมูล input ตัวแปร y เก็บขอมูลผลลัพธ จากนั้นสรางโมเดล
ดวยวิธี Neural Network โดยกาหนด iteral คือการวนรอบการสอน 1000 รอบ จากนั้นเริ่ม train ดวย
ํ
คําสั่ง model.fit(x,y) ซึ่งเปนการเรียนรูจากขอมูลเขาคือ x และขอมูลผลลัพธ คือ y โมเดลจะเรียนรู
จนกระทั่งไดโมเดลที่สามารถนําไปใชเปนตัวแทนของขอมูล 7-segment ชุดนี้ได คําสั่ง predict() ใช
ั
ทํานายผลลัพธ เชน กําหนดใหตัวแปร A-G มีคาเทากบ 1 ทั้งหมดยกเวน F=0 ซึ่งเมื่อสงเขาไปทํานายผล
โมเดลจะตอบวาเปนเลข 9 ซึ่งทํางานไดอยางถูกตอง วิธีการทาง Machine Learning เปนวิธีที่งายและ
สะดวกมากเมื่อเทยบกบการเขียนโปรแกรมแบบเกาที่ตองกาหนดเงื่อนไขตาง ๆ ยุงยากและวุนวายใน
ั
ี
ํ
ขณะที่การเรียนรูของเครื่องจักรแกปญหาเดียวกันไดอยางสะดวกรวดเร็วและมีประสิทธิภาพ
ตัวอยางที่ 12.3 การแสดงคําตอบของ seven segment จากโมเดลที่สรางขึ้น
for i in x:
z = model.predict([i])[0]
print("%s = %d"%(str(i),z))
ผลลัพธ :
[1 1 1 1 1 1 0] = 0
[0 1 1 0 0 0 0] = 1
[1 1 0 1 1 0 1] = 2
[1 1 1 1 0 0 1] = 3
[0 1 1 0 0 1 1] = 4
[1 0 1 1 0 1 1] = 5
[1 0 1 1 1 1 1] = 6
[1 1 1 0 0 1 0] = 7
[1 1 1 1 1 1 1] = 8
[1 1 1 1 0 1 1] = 9
ั
ตัวอยางท 12.3 การวนเขาไปในตวแปร x ซงมีคาตัวแปร A-G แตละแบบทีแตกตางกนไปและแทน
่
ั
่
ึ
ี
่
ดวยตัวเลข 7-Segment ของเลขแตละตัว พบวาโมเดลที่สรางขึ้นจาก Machine Learning ใหผลลัพธที่
ถูกตองทก ๆ คําตอบ ของเลข 7-Segment
ุ
ั
ึ
ั
12.4 การบนทกและโหลดโมเดลกลบมาใชงาน
โมเดลที่สรางขึ้นมาแลวนั้นสามารถบันทึกและนํากลับมาใชทํานายผลไดโดยไมตองมาสรางโมเดล
ี
ื่
ขึ้นใหม โดยใชคําสั่ง pickle เพอเก็บโมเดลนั้นลงในไฟล และเรียกกลับมาใชทานายไดอกเทาที่ตองการ
ํ
แสดงการบันทึกโมเดล ดังนี้