ในการดองลักษณนามที่ผ่านการฝึกอบรมใน Python โดยใช้โมดูล 'pickle' เราสามารถทำตามขั้นตอนง่ายๆ ไม่กี่ขั้นตอน การดองช่วยให้เราทำให้วัตถุเป็นอนุกรมและบันทึกลงในไฟล์ ซึ่งสามารถโหลดและใช้งานในภายหลังได้ สิ่งนี้มีประโยชน์อย่างยิ่งเมื่อเราต้องการบันทึกโมเดลแมชชีนเลิร์นนิงที่ฝึกแล้ว เช่น ตัวแยกประเภทการถดถอย เพื่อใช้ในอนาคตโดยไม่จำเป็นต้องฝึกใหม่ทุกครั้ง
ก่อนอื่น เราต้องนำเข้าโมดูล 'pickle' ในสคริปต์ Python ของเรา:
python import pickle
ต่อไป เราต้องฝึกตัวแยกประเภทของเราและรับโมเดลที่ผ่านการฝึกอบรม สมมติว่าเราได้ฝึกตัวแยกประเภทการถดถอยแล้วและจัดเก็บไว้ในตัวแปรชื่อ 'regression_model'
ในการดองโมเดลที่ผ่านการฝึกอบรม เราสามารถใช้ฟังก์ชัน 'pickle.dump()' ฟังก์ชันนี้ใช้พารามิเตอร์สองตัว: วัตถุที่เราต้องการดอง (ในกรณีนี้คือตัวแยกประเภทที่ผ่านการฝึกอบรม) และวัตถุไฟล์ที่เราต้องการบันทึกวัตถุดอง เราสามารถเปิดไฟล์ในโหมดเขียนไบนารีได้โดยใช้ฟังก์ชัน 'open()'
python with open('regression_model.pkl', 'wb') as file: pickle.dump(regression_model, file)
ในโค้ดข้างต้น เราเปิดไฟล์ชื่อ 'regression_model.pkl' ในโหมดเขียนไบนารี ('wb') และส่งเป็นพารามิเตอร์ที่สองไปยัง 'pickle.dump()' ลักษณนามที่ผ่านการฝึกอบรมซึ่งจัดเก็บไว้ในตัวแปร 'regression_model' จะถูกดองและบันทึกลงในไฟล์
ตอนนี้ เราได้เลือกลักษณนามที่ได้รับการฝึกฝนของเราเรียบร้อยแล้ว เราสามารถโหลดกลับเข้าไปในหน่วยความจำได้ทุกเมื่อที่ต้องการโดยใช้ฟังก์ชัน 'pickle.load()'
python with open('regression_model.pkl', 'rb') as file: loaded_model = pickle.load(file)
ในโค้ดข้างต้น เราเปิดไฟล์ดองในโหมดไบนารีอ่าน ('rb') และส่งเป็นพารามิเตอร์ไปยัง 'pickle.load()' ออบเจกต์ดองถูกโหลดลงในตัวแปร 'loaded_model' ซึ่งสามารถใช้สำหรับการทำนายหรือการดำเนินการอื่นๆ
นี่คือตัวอย่างที่สมบูรณ์ซึ่งแสดงให้เห็นถึงการดองและการโหลดของตัวแยกประเภทการถดถอยที่ผ่านการฝึกอบรม:
python import pickle from sklearn.linear_model import LinearRegression # Training the regression model X_train = [[1], [2], [3], [4], [5]] y_train = [2, 4, 6, 8, 10] regression_model = LinearRegression() regression_model.fit(X_train, y_train) # Pickling the trained model with open('regression_model.pkl', 'wb') as file: pickle.dump(regression_model, file) # Loading the pickled model with open('regression_model.pkl', 'rb') as file: loaded_model = pickle.load(file) # Using the loaded model for prediction X_test = [[6]] predicted_value = loaded_model.predict(X_test) print(predicted_value)
ในตัวอย่างข้างต้น ขั้นแรกเราฝึกโมเดลการถดถอยเชิงเส้นอย่างง่ายโดยใช้คลาส 'LinearRegression' จากโมดูล 'sklearn.linear_model' จากนั้นเราจะดองโมเดลที่ผ่านการฝึกอบรมเป็นไฟล์ชื่อ 'regression_model.pkl' ต่อมา เราโหลดโมเดลดองจากไฟล์และใช้เพื่อทำนายค่าสำหรับอินพุตทดสอบ 'X_test'
ด้วยการดองและโหลดตัวแยกประเภทที่ฝึกแล้ว เราสามารถนำโมเดลกลับมาใช้ใหม่ได้โดยไม่จำเป็นต้องฝึกซ้ำ ซึ่งจะช่วยประหยัดเวลาและทรัพยากรในการคำนวณได้เป็นจำนวนมาก
คำถามและคำตอบล่าสุดอื่น ๆ เกี่ยวกับ EITC/AI/MLP Machine Learning ด้วย Python:
- Support Vector Machine (SVM) คืออะไร?
- อัลกอริทึมเพื่อนบ้านที่ใกล้ที่สุด K เหมาะสำหรับการสร้างโมเดลแมชชีนเลิร์นนิงที่ฝึกได้หรือไม่
- อัลกอริทึมการฝึกอบรม SVM มักใช้เป็นตัวแยกประเภทเชิงเส้นแบบไบนารีหรือไม่?
- อัลกอริทึมการถดถอยสามารถทำงานร่วมกับข้อมูลต่อเนื่องได้หรือไม่?
- การถดถอยเชิงเส้นเหมาะอย่างยิ่งสำหรับการปรับขนาดหรือไม่
- แบนด์วิธไดนามิกกะค่าเฉลี่ยจะปรับพารามิเตอร์แบนด์วิดท์ตามความหนาแน่นของจุดข้อมูลได้อย่างไร
- วัตถุประสงค์ของการกำหนดน้ำหนักให้กับชุดคุณลักษณะในการใช้งานแบนด์วิธแบบไดนามิกของค่าเฉลี่ยคืออะไร
- ค่ารัศมีใหม่ถูกกำหนดด้วยวิธีแบนด์วิดท์เฉลี่ยกะไดนามิกอย่างไร
- วิธีการเปลี่ยนแบนด์วิดท์แบบไดนามิกเฉลี่ยจัดการการค้นหา centroids อย่างถูกต้องโดยไม่ต้องเข้ารหัสรัศมีอย่างหนักได้อย่างไร
- ข้อ จำกัด ของการใช้รัศมีคงที่ในอัลกอริทึมการเปลี่ยนค่าเฉลี่ยคืออะไร?
ดูคำถามและคำตอบเพิ่มเติมใน EITC/AI/MLP Machine Learning with Python