การแสดงภาพการฝึกอบรม (ตัวอย่าง)

การทดลองใช้ hyperparameter หรือการทดลองใช้ AutoML จะค้นหาพารามิเตอร์ที่เหมาะสมที่สุดสําหรับแบบจําลองการเรียนรู้ของเครื่อง การทดลองใช้แต่ละครั้งประกอบด้วยการเรียกใช้หลายรายการ โดยแต่ละการเรียกใช้จะประเมินชุดพารามิเตอร์เฉพาะ ผู้ใช้สามารถตรวจสอบการทํางานเหล่านี้ได้โดยใช้รายการทดลอง ML ใน Fabric

โมดูล flaml.visualization มีฟังก์ชันในการลงจุดและเปรียบเทียบการเรียกใช้ใน FLAML ผู้ใช้สามารถใช้ Plotly เพื่อโต้ตอบกับแผนการทดลอง AutoML ของพวกเขาได้ ในการใช้ฟังก์ชันเหล่านี้ ผู้ใช้จําเป็นต้องป้อนค่าที่ปรับให้เหมาะสม flaml.AutoML หรือ flaml.tune.tune.ExperimentAnalysis วัตถุของตน

บทความนี้สอนวิธีใช้ flaml.visualization โมดูลเพื่อวิเคราะห์และสํารวจผลลัพธ์การทดลองใช้ AutoML ของคุณ คุณสามารถทําตามขั้นตอนเดียวกันสําหรับการทดลองใช้ hyperparameter ของคุณเช่นกัน

สำคัญ

คุณลักษณะนี้อยู่ในตัวอย่าง

สร้างการทดลองใช้ AutoML

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

ในเซลล์โค้ดด้านล่าง เราจะ:

  1. โหลดชุดข้อมูล Iris
  2. แยกข้อมูลลงในชุดการทดสอบและการฝึกอบรม
  3. เริ่มต้นการทดลองใช้ AutoML เพื่อให้พอดีกับข้อมูลการฝึกของเรา
  4. สํารวจผลลัพธ์ของการทดลองใช้ AutoML ของเราด้วยการแสดงภาพจากflaml.visualization
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from flaml import AutoML

# Load the Iris data and split it into train and test sets
x, y = load_iris(return_X_y=True, as_frame=True)
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=7654321)

# Create an AutoML instance and set the parameters
automl = AutoML()
automl_settings = {
    "time_budget": 10, # Time limit in seconds
    "task": "classification", # Type of machine learning task
    "log_file_name": "aml_iris.log", # Name of the log file
    "metric": "accuracy", # Evaluation metric
    "log_type": "all", # Level of logging
}
# Fit the AutoML instance on the training data
automl.fit(X_train=x_train, y_train=y_train, **automl_settings)

แสดงภาพผลลัพธ์การทดลอง

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

นําเข้ามอดูลการแสดงภาพ

ในการเข้าถึงโปรแกรมอรรถประโยชน์ของการแสดงภาพเหล่านี้ เราเรียกใช้คําสั่งนําเข้าต่อไปนี้:

import flaml.visualization as fviz

ประวัติการปรับให้เหมาะสม

โดยทั่วไปแล้ว การลงจุดประวัติการปรับให้เหมาะสมจะมีจํานวนการทดลองใช้/การทําซ้ําบนแกน x และเมตริกประสิทธิภาพการทํางาน (เช่น ความแม่นยํา RMSE และอื่น ๆ) บนแกน y เมื่อจํานวนการทดลองใช้เพิ่มขึ้น คุณจะเห็นเส้นหรือแผนภูมิกระจายที่ระบุประสิทธิภาพของการทดลองใช้แต่ละครั้ง

fig = fviz.plot_optimization_history(automl)
# or
fig = fviz.plot(automl, "optimization_history")
fig.show()

นี่คือการลงจุดผลลัพธ์:

กราฟของแผนภูมิประวัติการปรับให้เหมาะสม

ความสําคัญของคุณลักษณะ

การลงจุดความสําคัญของคุณลักษณะคือเครื่องมือการแสดงผลข้อมูลด้วยภาพที่มีประสิทธิภาพที่ช่วยให้คุณเข้าใจความสําคัญของคุณลักษณะการป้อนข้อมูลที่แตกต่างกันในการกําหนดการคาดการณ์ของแบบจําลอง

fig = fviz.plot_feature_importance(automl)
# or
fig = fviz.plot(automl, "feature_importance")
fig.show()

นี่คือการลงจุดผลลัพธ์:

กราฟของแผนภูมิความสําคัญของคุณลักษณะ

การลงจุดพิกัดแบบขนาน

การลงจุดพิกัดแบบขนานคือเครื่องมือการแสดงภาพที่แสดงข้อมูลหลายมิติโดยการวาดเส้นแนวตั้งหลายเส้น (แกน) ที่สอดคล้องกับตัวแปรหรือ hyperparameters โดยจุดข้อมูลจะลงจุดเป็นเส้นที่เชื่อมต่อกันในแกนเหล่านี้ ในบริบทของการทดลอง AutoML หรือการปรับแต่ง เป็นเครื่องมือในการแสดงภาพและวิเคราะห์ประสิทธิภาพของชุดค่าไฮเปอร์พารามิเตอร์ที่แตกต่างกัน ด้วยการติดตามเส้นทางของการกําหนดค่าที่มีประสิทธิภาพสูง เราสามารถมองเห็นรูปแบบหรือแนวโน้มในตัวเลือก hyperparameter และการโต้ตอบของพวกเขา การลงจุดนี้ช่วยในการทําความเข้าใจว่าการรวมกันใดนําไปสู่ประสิทธิภาพที่เหมาะสมที่สุดระบุพื้นที่ที่เป็นไปได้สําหรับการสํารวจเพิ่มเติมและระบุการแลกเปลี่ยนใด ๆ ระหว่าง hyperparameters ที่แตกต่างกัน

ยูทิลิตี้นี้ใช้อาร์กิวเมนต์อื่น ๆ ต่อไปนี้:

  • learner: ระบุผู้เรียนที่คุณต้องการศึกษาในการทดสอบ พารามิเตอร์นี้ใช้ได้กับผลลัพธ์การทดลอง AutoML เท่านั้น โดยการปล่อยว่างนี้ ระบบจะเลือกผู้เรียนที่ดีที่สุดในการทดลองทั้งหมด

  • params: รายการเพื่อระบุ hyperparameter ที่จะแสดง เมื่อปล่อยว่างไว้ ระบบจะแสดง hyperparameters ที่พร้อมใช้งานทั้งหมด

fig = fviz.plot_parallel_coordinate(automl, learner="lgbm", params=["n_estimators", "num_leaves", "learning_rate"])
# or
fig = fviz.plot(automl, "parallel_coordinate", learner="lgbm", params=["n_estimators", "num_leaves", "learning_rate"])
fig.show()

นี่คือการลงจุดผลลัพธ์:

กราฟของแผนภูมิพิกัดแบบขนาน

การลงจุดแบบรูปทรง

การลงจุดแบบรูปทรงจะแสดงภาพข้อมูลสามมิติในสองมิติ โดยที่แกน x และ y แสดงถึง hyperparameters สองตัว และเส้นรูปทรงหรือรูปทรงที่มีสีแสดงระดับของเมตริกประสิทธิภาพการทํางาน (ตัวอย่างเช่น ความแม่นยําหรือการสูญเสีย) ในบริบทของการทดลอง AutoML หรือการปรับแต่งการลงจุดแบบรูปทรงจะเป็นประโยชน์สําหรับการทําความเข้าใจความสัมพันธ์ระหว่าง hyperparameters สองตัวและผลที่รวมกันต่อประสิทธิภาพของแบบจําลอง

โดยการตรวจสอบความหนาแน่นและตําแหน่งของเส้นรูปทรงเราสามารถระบุภูมิภาคของพื้นที่ hyperparameter ที่ประสิทธิภาพได้รับการปรับให้เหมาะสมเพิ่มความสามารถในการซื้อขายที่อาจเกิดขึ้นระหว่าง hyperparameters และรับข้อมูลเชิงลึกในการโต้ตอบของพวกเขา การแสดงภาพนี้ช่วยปรับปรุงพื้นที่การค้นหาและกระบวนการปรับแต่ง

ยูทิลิตี้นี้ยังใช้อาร์กิวเมนต์ต่อไปนี้:

  • learner: ระบุผู้เรียนที่คุณต้องการศึกษาในการทดสอบ พารามิเตอร์นี้ใช้ได้กับผลลัพธ์การทดลอง AutoML เท่านั้น โดยการปล่อยว่างนี้ ระบบจะเลือกผู้เรียนที่ดีที่สุดในการทดลองทั้งหมด

  • params: รายการเพื่อระบุ hyperparameter ที่จะแสดง เมื่อปล่อยว่างไว้ ระบบจะแสดง hyperparameters ที่พร้อมใช้งานทั้งหมด

fig = fviz.plot_contour(automl, learner="lgbm", params=["n_estimators", "num_leaves", "learning_rate"])
# or
fig = fviz.plot(automl, "contour", learner="lgbm", params=["n_estimators", "num_leaves", "learning_rate"])
fig.show()

นี่คือการลงจุดผลลัพธ์:

กราฟของการลงจุดแบบรูปทรง

ฟังก์ชันการแจกแจงแบบ Empirical

ฟังก์ชันการแจกแจงแบบ empirical (EDF) ซึ่งมักจะแสดงเป็นฟังก์ชันขั้นตอน แสดงถึงความน่าจะเป็นสะสมของจุดข้อมูลน้อยกว่าหรือเท่ากับค่าใดค่าหนึ่ง ภายในการทดลอง AutoML หรือการปรับแต่ง การลงจุด EDF สามารถใช้เพื่อแสดงภาพการกระจายประสิทธิภาพของแบบจําลองในการกําหนดค่า hyperparameter ที่แตกต่างกัน

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

หมายเหตุ

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

fig = fviz.plot_edf(automl)
# or
fig = fviz.plot(automl, "edf")
fig.show()

นี่คือการลงจุดผลลัพธ์:

กราฟของแผนภูมิฟังก์ชันการแจกแจงแบบ empirical

การลงจุดเส้นเวลา

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

fig = fviz.plot_timeline(automl)
# or
fig = fviz.plot(automl, "timeline")
fig.show()

นี่คือการลงจุดผลลัพธ์:

กราฟของแผนภูมิเส้นเวลา

ชิ้นพล็อต

ลงจุดความสัมพันธ์ของพารามิเตอร์เป็นชิ้นพล็อตในการศึกษา

ยูทิลิตี้นี้ยังใช้อาร์กิวเมนต์ต่อไปนี้:

  • learner: ระบุผู้เรียนที่คุณต้องการศึกษาในการทดสอบ พารามิเตอร์นี้ใช้ได้กับผลลัพธ์การทดลอง AutoML เท่านั้น โดยการปล่อยว่างนี้ ระบบจะเลือกผู้เรียนที่ดีที่สุดในการทดลองทั้งหมด

  • params: รายการเพื่อระบุ hyperparameter ที่จะแสดง เมื่อปล่อยว่างไว้ ระบบจะแสดง hyperparameters ที่พร้อมใช้งานทั้งหมด

fig = fviz.plot_slice(automl, learner="sgd")
# or
fig = fviz.plot(automl, "slice", learner="sgd")
fig.show()

นี่คือการลงจุดผลลัพธ์:

กราฟของการแบ่งส่วนข้อมูล

ความสําคัญของ Hyperparameter

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

ยูทิลิตี้นี้ยังใช้อาร์กิวเมนต์ต่อไปนี้:

  • learner: ระบุผู้เรียนที่คุณต้องการศึกษาในการทดสอบ พารามิเตอร์นี้ใช้ได้กับผลลัพธ์การทดลอง AutoML เท่านั้น โดยการปล่อยว่างนี้ ระบบจะเลือกผู้เรียนที่ดีที่สุดในการทดลองทั้งหมด

  • params: รายการเพื่อระบุ hyperparameter ที่จะแสดง เมื่อปล่อยว่างไว้ ระบบจะแสดง hyperparameters ที่พร้อมใช้งานทั้งหมด

fig = fviz.plot_param_importance(automl, learner="sgd")
# or
fig = fviz.plot(automl, "param_importance", learner="sgd")
fig.show()

นี่คือการลงจุดผลลัพธ์:

กราฟของพล็อตความสําคัญของ hyperparameter