Page 203 - python
P. 203

177




                    img = mh.imread("mountain2.jpg")

                    img = mh.colors.rgb2gray(img, dtype=np.uint8)
                    features.append(mh.features.haralick(img).ravel())

                    img = mh.imread("mountain3.jpg")

                    img = mh.colors.rgb2gray(img, dtype=np.uint8)
                    features.append(mh.features.haralick(img).ravel())
                    img = mh.imread("mountain4.jpg")

                    img = mh.colors.rgb2gray(img, dtype=np.uint8)
                    features.append(mh.features.haralick(img).ravel())
                    labels = ['sea','sea','sea','sea','sea','mountain','mountain','mountain','mountain']
                    features = np.array(features)
                    labels = np.array(labels)


                    from sklearn.pipeline import Pipeline
                    from sklearn.preprocessing import StandardScaler

                    from sklearn.linear_model import LogisticRegression
                    model = Pipeline([('preproc', StandardScaler()),('classifier', LogisticRegression())])
                    model.fit(features,labels)
                          ตัวอยางที่ 12.15 คําสั่ง %pylab inline เปนการขอใชคําสั่ง numpy และ matplotlib ในการ

                   สกดคุณลักษณะเดนของภาพใชไลบรารี่ mahotas โดยอิมพอรตและตั้งชื่อวา mh ดวยคําสั่ง import
                      ั
                   mahotas as mh จากนั้น ใหตัวแปร features และ labels เปนลีสตวาง คําสั่ง imread() จะอานภาพที
                   ละไฟล โดยแปลงใหอยูในรูป rgb2gray() คือแปลงจากสีเปนภาพเกรยสเกล จากนั้น ใชคําสั่ง
                                                                         
                   me.features.haralick() เพื่อสกัดคุณลักษณะเดนของภาพดวยวิธี haralick() แลวแปลงใหเปนอารเรย

                                                                        ั
                     ี
                   เพยงแถวเดียวดวยคําสั่ง raval() จากนั้นนําคุณลักษณะเดนที่สกดไดเก็บไวในตัวแปร features ดวยคําสั่ง
                   append()  ทําซ้ําครบจํานวนภาพที่จะใชสอนโมเดล ไดแก sea1.jpg ถึง sea5.jpg และ mountain1.jpg
                   ถึง mountain4.jpg
                          ตัวแปร labels เปนคําตอบ จะตองเรียงใหถูกตองตามลําดับภาพที่ใสลงในตัวแปร features ถา

                                          ิ
                   ปอนลําดับผิดคือสอนคอมพวเตอรดวยคําตอบที่ผิด จะสงผลตอการพยากรณ หลังจากนั้นแปลงตัวแปร
                   features และ labels ใหเปนชนิด numpy array ดวยคําสั่ง np.array(ตัวแปร)
                          การสรางโมเดล Logistic Regression ใชคําสั่ง Pipeline([('preproc', StandardScaler()),

                   ('classifier', LogisticRegression())]) คือการกําหนดใหตัว classifier เปนคลาสของ LogisticRegression
                   จากนั้นสรางโมเดลดวยคําสั่ง model.fit(features,labels) เมื่อ features คือคุณลักษณะเดนของภาพมี
                   ทั้งหมด 9 ชุด คือภาพทะเล 5 และภาพภูเขา 4 ภาพ สวนตัวแปร labels คือคําตอบของภาพ คือ 5 ตัว
                   แปรคือ "sea" และ 4 ตัวหลังคือ "mountain"
   198   199   200   201   202   203   204   205   206