สร้าง Machine Learning Classifier เครื่องแรกของคุณใน Python



บทความนี้จะช่วยคุณสร้าง Machine Learning Classifier ใน Python จาก Scratch นอกจากนี้ยังให้ความรู้โดยละเอียดเกี่ยวกับการจำแนกประเภท

เป็นคำที่นิยมใช้ในขณะนี้ สิ่งที่น่าทึ่งบางอย่างกำลังดำเนินการด้วยความช่วยเหลือของแมชชีนเลิร์นนิง จากการเป็น ผู้ช่วยส่วนตัว ในการตัดสินใจของเรา เส้นทางการเดินทาง ช่วยเราซื้อของช่วยเหลือเราในการดำเนินธุรกิจดูแลของเรา สุขภาพและความกินดีอยู่ดี, แมชชีนเลิร์นนิงถูกรวมเข้ากับการดำรงอยู่ประจำวันของเราในระดับพื้นฐานดังกล่าวโดยส่วนใหญ่เราไม่รู้ด้วยซ้ำว่าเรากำลังพึ่งพามัน ในบทความนี้เราจะทำตามแนวทางของผู้เริ่มต้นในการใช้ตัวจำแนกการเรียนรู้ของเครื่องมาตรฐานใน Python

ภาพรวมของ Machine Learning

การเรียนรู้ของเครื่องเป็นแนวคิดที่ช่วยให้เครื่องสามารถเรียนรู้จากตัวอย่างและประสบการณ์ได้โดยไม่ต้องตั้งโปรแกรมไว้อย่างชัดเจน ดังนั้นแทนที่จะเขียนโค้ดสิ่งที่คุณทำคือคุณป้อนข้อมูลไปยังอัลกอริทึมทั่วไปและอัลกอริทึม / เครื่องจะสร้างตรรกะตามข้อมูลที่กำหนด





ลักษณนามการเรียนรู้ของเครื่อง

การเรียนรู้ของเครื่องเกี่ยวข้องกับความสามารถของเครื่องจักรในการตัดสินใจประเมินผลลัพธ์ของการกระทำและปรับปรุงพฤติกรรมเพื่อให้ได้ผลลัพธ์ที่ดีขึ้นอย่างต่อเนื่อง



c เทียบกับ c ++ กับ java

กระบวนการเรียนรู้เกิดขึ้นในสามวิธีหลัก ๆ

  • การเรียนรู้ภายใต้การดูแล
  • การเรียนรู้ที่ไม่ได้รับการดูแล
  • การเรียนรู้เสริมแรง

เทมเพลตสำหรับ Machine Learning Classifiers

เครื่องมือแมชชีนเลิร์นนิงมีให้อย่างสะดวกสบายในไลบรารี Python ที่มีชื่อว่า scikit-learn ซึ่งเข้าถึงและใช้งานได้ง่ายมาก



ติดตั้ง scikit-learn ผ่านพรอมต์คำสั่งโดยใช้:

pip ติดตั้ง -U scikit-learn

หากคุณเป็นผู้ใช้อนาคอนดาคุณสามารถใช้คำสั่งอนาคอนดาในพรอมต์:

conda ติดตั้ง scikit-learn

การติดตั้งจำเป็นต้องติดตั้งแพ็คเกจ NumPy และ SciPy ก่อนในระบบของคุณ

การประมวลผลล่วงหน้า: ขั้นตอนแรกและจำเป็นที่สุดในการวิเคราะห์ข้อมูลโดยใช้แมชชีนเลิร์นนิงคือส่วนก่อนการประมวลผล การนำเสนออย่างถูกต้องและการทำความสะอาดข้อมูลเป็นสิ่งสำคัญอย่างยิ่งสำหรับโมเดล ML ในการฝึกอบรมที่ดีและดำเนินการตามศักยภาพ

ขั้นตอนที่ 1 - นำเข้าไลบรารีที่จำเป็น

import numpy เป็น np import pandas เป็น pd import matplotlib.pyplot เป็น plt

ขั้นตอนที่ 2 - นำเข้าชุดข้อมูล

ชุดข้อมูล = pd.read_csv ()

จากนั้นเราแบ่งชุดข้อมูลออกเป็นตัวแปรอิสระและตัวแปรตาม ตัวแปรอิสระต้องเป็นข้อมูลอินพุตและตัวแปรตามคือข้อมูลเอาต์พุต

X = dataset.iloc []. values ​​y = dataset.iloc []. values

ขั้นตอนที่ 3 - จัดการข้อมูลที่ขาดหายไป

ชุดข้อมูลอาจมีค่าว่างหรือค่าว่างซึ่งอาจทำให้เกิดข้อผิดพลาดในผลลัพธ์ของเรา ดังนั้นเราต้องจัดการกับรายการดังกล่าว แนวทางปฏิบัติทั่วไปคือการแทนที่ค่า null ด้วยค่าร่วมเช่นค่าเฉลี่ยหรือค่าที่พบบ่อยที่สุดในคอลัมน์นั้น

จาก sklearn.preprocessing import Imputer imputer = Imputer (missing_values ​​= 'NaN', strategy = 'mean', axis = 0) imputer = imputer.fit (X []) X [] = imputer.transform (X [])

ขั้นตอนที่ 4 - แปลงตัวแปรตามหมวดหมู่เป็นตัวแปรตัวเลข

from sklearn.preprocessing import LabelEncoder le_X = LabelEncoder () X [] = le_X.fit_transform (X []) labelencoder_y = LabelEncoder () y = labelencoder_y.fit_transform (y)

ตอนนี้หลังจากการเข้ารหัสอาจเกิดขึ้นได้ว่าเครื่องถือว่าข้อมูลตัวเลขเป็นการจัดอันดับสำหรับคอลัมน์ที่เข้ารหัส ดังนั้นเพื่อให้มีน้ำหนักเท่ากันเราต้องแปลงตัวเลขเป็นเวกเตอร์หนึ่งฮ็อตโดยใช้คลาส OneHotEncoder

เงินเดือนนักพัฒนา java ในอินเดีย
จาก sklearn.preprocessing นำเข้า OneHotEncoder oneHE = OneHotEncoder (ประเภทของคุณลักษณะ = []) X = oneHE.fit_transform (X) .toarray ()

ขั้นตอนที่ 5 - ทำการปรับขนาด

ขั้นตอนนี้คือการจัดการกับความคลาดเคลื่อนที่เกิดจากมาตราส่วนที่ไม่ตรงกันของตัวแปร ดังนั้นเราจึงปรับขนาดให้อยู่ในช่วงเดียวกันเพื่อให้รับน้ำหนักเท่ากันในขณะที่ป้อนข้อมูลให้กับแบบจำลอง เราใช้ออบเจ็กต์ของคลาส StandardScaler เพื่อจุดประสงค์นี้

จาก sklearn.preprocessing import StandardScaler sc_X = StandardScaler () X = sc_X.fit_transform (X)

ขั้นตอนที่ 6 - แยกชุดข้อมูลออกเป็นข้อมูลการฝึกอบรมและการทดสอบ

ในขั้นตอนสุดท้ายของการประมวลผลล่วงหน้าชุดข้อมูลจะต้องถูกแบ่งออกเป็นชุดฝึกและชุดทดสอบ อัตราส่วนมาตรฐานของการแยกทดสอบรถไฟคือ 75% -25% เราสามารถปรับเปลี่ยนได้ตามความต้องการ ฟังก์ชัน train_test_split () สามารถทำสิ่งนี้ให้เราได้

จาก sklearn.model_selection นำเข้า train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.25)

การสร้างแบบจำลอง: ขั้นตอนนี้ค่อนข้างง่าย เมื่อเราตัดสินใจว่าจะใช้โมเดลใดกับข้อมูลแล้วเราสามารถสร้างออบเจ็กต์ของคลาสที่สอดคล้องกันและปรับให้พอดีกับอ็อบเจ็กต์ในชุดการฝึกของเราโดยพิจารณา X_train เป็นอินพุตและ y_train เป็นเอาต์พุต

จาก sklearn นำเข้าลักษณนาม = () classifier.fit (X_train, y_train)

ขณะนี้โมเดลได้รับการฝึกฝนและพร้อมแล้ว ตอนนี้เราสามารถใช้โมเดลของเรากับชุดทดสอบและค้นหาผลลัพธ์ที่คาดคะเนได้

y_pred = classifier.predict (X_test)

การดูผลลัพธ์: ประสิทธิภาพของลักษณนามสามารถประเมินได้จากพารามิเตอร์ของความแม่นยำความแม่นยำการเรียกคืนและคะแนน f1 ค่าเหล่านี้สามารถเห็นได้โดยใช้วิธีการที่เรียกว่าการจัดหมวดหมู่_report () t ยังสามารถมองว่าเป็นเมทริกซ์ความสับสนที่ช่วยให้เราทราบว่ามีข้อมูลประเภทใดบ้างที่ถูกจัดประเภทอย่างถูกต้อง

จาก sklearn.metrics นำเข้าความสับสน _matrix cm = ความสับสน (y_test, y_pred) พิมพ์ (ซม.) จาก sklearn.metrics การนำเข้าการจัดประเภท_report target_names = [] พิมพ์ (การจัดหมวดหมู่_report (y_test, y_pred, target_names = target_names))

ปัญหาตัวจำแนกการเรียนรู้ของเครื่อง

เราจะใช้ชุดข้อมูล Iris ที่เป็นที่นิยมและเรียบง่ายซึ่งมีขนาดของดอกไม้ใน 3 ประเภท ได้แก่ Iris-setosa, Iris-versicolor และ Iris-virginica มี 150 รายการในชุดข้อมูล

# การนำเข้าไลบรารีจะนำเข้า numpy เป็นการนำเข้า np matplotlib.pyplot เป็น plt นำเข้าแพนด้าเป็น pd # การนำเข้าชุดข้อมูลชุดข้อมูล = pd.read_csv ('iris.csv')

ให้เราดูชุดข้อมูลตอนนี้

dataset.head ()

เรามีตัวแปรอิสระ 4 ตัว (ไม่รวม Id) ได้แก่ คอลัมน์หมายเลข 1-4 และคอลัมน์ 5 เป็นตัวแปรตาม เราจึงแยกมันออกมาได้

X = dataset.iloc [:, 1: 5] .values ​​y = dataset.iloc [:, 5] .values

ตอนนี้เราสามารถแยกชุดข้อมูลออกเป็นการฝึกอบรมและการทดสอบ

# การแยกชุดข้อมูลลงในชุดการฝึกอบรมและชุดทดสอบจาก sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.25)

ตอนนี้เราจะใช้ลักษณนาม Logistic Regression กับชุดข้อมูล

# การสร้างและฝึกโมเดลจาก sklearn.linear_model import LogisticRegression classifier = LogisticRegression () classifier.fit (X_train, y_train) # การทำนายผลชุดทดสอบ y_pred = classifier.predict (X_test)

ขั้นตอนสุดท้ายจะเป็นการวิเคราะห์ประสิทธิภาพของแบบจำลองที่ได้รับการฝึกฝน

อะไรคือความแตกต่างระหว่างคลาสนามธรรมและอินเทอร์เฟซ?
# การสร้าง Confusion Matrix จาก sklearn.metrics การนำเข้าความสับสน _matrix cm = ความสับสน _matrix (y_test, y_pred) พิมพ์ (ซม.)

สิ่งนี้แสดงให้เราเห็นว่า 13 รายการในประเภทแรก 11 รายการที่สองและ 9 จากประเภทที่สามได้รับการทำนายอย่างถูกต้องโดยแบบจำลอง

# การสร้างความแม่นยำความแม่นยำการเรียกคืนและคะแนน f1 จากการจัดหมวดหมู่การนำเข้า sklearn.metrics_report target_names = ['Iris-setosa', 'Iris-versicolor', 'Iris-virginica'] พิมพ์ (การจัดประเภทรายงาน (y_test, y_pred, target_names = target_names) )

รายงานแสดงค่าความแม่นยำการเรียกคืนค่า f1 และค่าความแม่นยำของแบบจำลองในชุดทดสอบของเราซึ่งประกอบด้วย 38 รายการ (25% ของชุดข้อมูล)

ขอแสดงความยินดีคุณได้สร้างและใช้งานตัวจำแนกแมชชีนเลิร์นนิงเครื่องแรกใน Python สำเร็จแล้ว! เพื่อรับความรู้เชิงลึกเกี่ยวกับ พร้อมกับแอพพลิเคชั่นต่างๆคุณสามารถลงทะเบียนสำหรับการฝึกอบรมออนไลน์ Python แบบสดพร้อมการสนับสนุนตลอด 24 ชั่วโมงทุกวัน