สารบัญ:
- การโหลดข้อมูลของคุณ
- บรรทัดที่ 1 นำเข้าไลบรารีที่ช่วยให้คุณแบ่งข้อมูลออกเป็นสองส่วน
- วิธีการเรียกใช้ข้อมูลทดสอบ
- ดังนั้นแบบจำลองถดถอยโลจิสติกมีพารามิเตอร์ C = 150 เทียบกับ? ดีคุณไม่สามารถชนะร้อยละ 100 นี่คือรหัสในการสร้างและประเมินตัวจำแนกประเภทโลจิสติกด้วย C = 150: >>>> logClassifier_2 = linear_model LogisticRegression (C = 150, random_state = 111) >>> logClassifier_2 พอดี (X_train, y_train) >>> predicted = logClassifier_2 คาดการณ์ (X_test) >>> เมตริก accuracy_score (y_test, predicted) 0 93333333333333335 >>> metrics confusion_matrix (y_test, predicted) array ([[5, 0, 0], [0, 2, 0], [0, 1, 7]]
หลังจากที่คุณสร้างโมเดลการคาดการณ์อันดับแรกสำหรับการวิเคราะห์ข้อมูลแล้วสร้างโมเดลเพิ่มเติมเช่นเดียวกับที่เป็นงานที่ตรงไปตรงมาใน scikit เฉพาะความแตกต่างจริงจากแบบจำลองหนึ่งไปยังอีกคือคุณอาจต้องปรับพารามิเตอร์จากอัลกอริทึมมายังอัลกอริทึม
การโหลดข้อมูลของคุณ
รายชื่อโค้ดนี้จะโหลดชุดข้อมูล iris ลงในเซสชันของคุณ: >>>> จาก sklearn datasets นำเข้า load_iris >>> iris = load_iris ()
วิธีการสร้างอินสแตนซ์ของตัวแบ่งประเภท
สังเกตพารามิเตอร์ (parameterization parameter) ในตัวสร้าง
พารามิเตอร์การกำหนดค่า
ถูกใช้เพื่อป้องกันการ overfitting พารามิเตอร์ไม่จำเป็นอย่างยิ่ง (นวกรรมิกจะทำงานได้ดีถ้าไม่มีมันเพราะค่าเริ่มต้นของ C = 1) การสร้างตัวจำแนกการถดถอยโลจิสติกโดยใช้ C = 150 สร้างพล็อตที่ดีขึ้นของพื้นผิวการตัดสินใจ คุณสามารถเห็นทั้งสองแปลงด้านล่าง
บรรทัดที่ 1 นำเข้าไลบรารีที่ช่วยให้คุณแบ่งข้อมูลออกเป็นสองส่วน
บรรทัดที่ 2 เรียกใช้ฟังก์ชันจากไลบรารีที่แบ่งชุดข้อมูลออกเป็นสองส่วนและกำหนดชุดข้อมูลที่แบ่งกันตอนนี้ให้เป็นตัวแปรสองชุด
บรรทัดที่ 3 ใช้อินสแตนซ์ของตัวจำแนกการถดถอยการถดถอยโลจิสติกที่คุณเพิ่งสร้างขึ้นและเรียกใช้เมธอดแบบพอดีเพื่อฝึกแบบจำลองด้วยชุดข้อมูลการฝึกอบรม
วิธีการเห็นภาพตัวแบ่งประเภท
การมองไปที่พื้นที่ผิวการตัดสินใจในพล็อตดูเหมือนว่าการปรับแต่งบางอย่างจะต้องทำ ถ้าคุณมองตรงกลางพล็อตคุณจะเห็นว่าจุดข้อมูลจำนวนมากอยู่ในพื้นที่ตรงกลาง (Versicolor) อยู่ในพื้นที่ทางด้านขวา (Virginica)
ภาพนี้แสดงพื้นผิวการตัดสินใจที่มีค่า C เท่ากับ 150 โดยรูปลักษณ์ดูดีขึ้นดังนั้นการเลือกใช้การตั้งค่านี้สำหรับรูปแบบการถดถอยโลจิสติกของคุณดูเหมือนจะเหมาะสม
วิธีการเรียกใช้ข้อมูลทดสอบ
ในโค้ดต่อไปนี้บรรทัดแรกจะป้อนชุดข้อมูลทดสอบไปยังรุ่นและบรรทัดที่สามจะแสดงผล: >>>> predicted = logClassifier ทำนาย (X_test) >>> predictedarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2])
คุณสามารถอ้างอิงข้อมูลอ้างอิงจากการคาดการณ์กับอาร์เรย์ y_test ด้วยเหตุนี้คุณจะเห็นว่าข้อมูลดังกล่าวคาดการณ์ได้อย่างถูกต้อง นี่คือรหัส: >>>> จากดัชนีการนำเข้า sklearn >>> predictedarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> y_testarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> เมตริก accuracy_score (y_test, คาดการณ์ไว้) 1. 0 # 1 0 เป็นความถูกต้อง 100 เปอร์เซ็นต์ >>> predicted == y_testarray ([ทรู, ทรู, ทรู, ทรู, ทรู, ทรู, ทรู, ทรู, ทรู, ทรู, ทรู, จริง], dtype = bool)
ดังนั้นแบบจำลองถดถอยโลจิสติกมีพารามิเตอร์ C = 150 เทียบกับ? ดีคุณไม่สามารถชนะร้อยละ 100 นี่คือรหัสในการสร้างและประเมินตัวจำแนกประเภทโลจิสติกด้วย C = 150: >>>> logClassifier_2 = linear_model LogisticRegression (C = 150, random_state = 111) >>> logClassifier_2 พอดี (X_train, y_train) >>> predicted = logClassifier_2 คาดการณ์ (X_test) >>> เมตริก accuracy_score (y_test, predicted) 0 93333333333333335 >>> metrics confusion_matrix (y_test, predicted) array ([[5, 0, 0], [0, 2, 0], [0, 1, 7]]
เราคาดว่าจะดีขึ้น แต่ก็แย่กว่าเดิม มีข้อผิดพลาดในการคาดการณ์ ผลลัพธ์ที่ได้จะเหมือนกับโมเดล Support Vector Machine (SVM)
นี่คือรายชื่อเต็มของรหัสเพื่อสร้างและประเมินรูปแบบการจัดกลุ่มการถดถอยโลจิสติกด้วยพารามิเตอร์เริ่มต้น: >>>> จาก sklearn datasets นำเข้า load_iris >>> จาก sklearn import linear_model >>> จาก sklearn import cross_validation >>> จาก sklearn import metrics >>> iris = load_iris () >>> X_train, X_test, y_train, y_test = cross_validation. train_test_split (ข้อมูลม่านตา iris, target, test_size = 0, 10, random_state = 111) >>> logClassifier = linear_model LogisticRegression (, random_state = 111) >>> logClassifier พอดี (X_train, y_train) >>> predicted = logClassifier คาดการณ์ (X_test) >>> predictedarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> y_testarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> เมตริก accuracy_score (y_test, คาดการณ์ไว้) 1. 0 # 1 0 เป็นความถูกต้อง 100 เปอร์เซ็นต์ >>> predicted == y_testarray ([ทรู, ทรู, ทรู, ทรู, ทรู, ทรู, ทรู, ทรู, ทรู, ทรู, ทรู, จริง], dtype = บูล)