更多資料獲取
📚 個人網站:ipengtao.com
在機器學習領域,evalml 庫嶄露頭角,為開發者提供了一個強大而高效的自動化機器學習框架。本文將深入介紹 evalml 的核心功能、使用方法以及在實際項目中的應用。通過詳實的示例代碼,將更全面地理解 evalml 的強大之處。
evalml 是一款由 Feature Labs 開發的 Python 庫,旨在簡化機器學習流程,從數據預處理到模型選擇,甚至是超參數調優。它集成了一系列功能,使得機器學習模型的開發過程更加直觀、高效。
安裝與基礎用法
首先,來看 evalml 的安裝和基礎用法:
# 安裝 evalml
!pip install evalml# 導入 evalml
import evalml# 加載示例數據集
X, y = evalml.demos.load_breast_cancer()# 劃分數據集
X_train, X_test, y_train, y_test = evalml.preprocessing.split_data(X, y, problem_type='binary')# 初始化二分類分類器
clf = evalml.AutoMLSearch(X_train, y_train, problem_type='binary', objective='log loss', max_batches=1)
自動化特征工程
在 evalml 中,自動化特征工程是其強大功能之一。這一功能使得在機器學習項目中處理數據變得更加高效和便捷,而無需開發者手動干預。以下是關于 evalml 自動化特征工程的詳細說明和示例代碼:
處理缺失值
在 evalml 中,缺失值的處理是自動進行的,無需開發者額外操作。evalml 會根據數據的特性自動選擇填充缺失值的方法,確保模型訓練不受影響。
# 示例:加載數據集并劃分
X, y = evalml.demos.load_diabetes()
X_train, X_test, y_train, y_test = evalml.preprocessing.split_data(X, y, problem_type='regression')# 示例:執行自動化特征工程
X_train_processed = clf.preprocess(X_train, y_train)
編碼分類變量
evalml 會自動檢測數據中的分類變量,并根據需要進行適當的編碼,以確保模型能夠正確理解這些變量。
# 示例:加載數據集并劃分
X, y = evalml.demos.load_iris()
X_train, X_test, y_train, y_test = evalml.preprocessing.split_data(X, y, problem_type='multiclass')# 示例:執行自動化特征工程
X_train_processed = clf.preprocess(X_train, y_train)
處理日期變量
evalml 能夠識別日期變量并執行相應的處理,以便模型能夠更好地理解和利用這些變量。
# 示例:加載包含日期變量的數據集并劃分
X, y = evalml.demos.load_churn()
X_train, X_test, y_train, y_test = evalml.preprocessing.split_data(X, y, problem_type='binary')# 示例:執行自動化特征工程
X_train_processed = clf.preprocess(X_train, y_train)
其他特征工程技術
evalml 還支持其他一系列特征工程技術,如處理文本數據、標準化數值變量等。這些技術將根據數據的特點和問題類型進行智能選擇和應用。
# 示例:加載包含文本數據的數據集并劃分
X, y = evalml.demos.load_spam()
X_train, X_test, y_train, y_test = evalml.preprocessing.split_data(X, y, problem_type='binary')# 示例:執行自動化特征工程
X_train_processed = clf.preprocess(X_train, y_train)
自動化模型選擇
在 evalml 中,自動化模型選擇是其核心功能之一。通過 AutoMLSearch,evalml 能夠在給定的問題類型和目標函數下,自動選擇并訓練多個模型,并返回性能最佳的模型。以下是關于 evalml 自動化模型選擇的詳細說明和示例代碼:
初始化 AutoMLSearch
首先,需要使用 AutoMLSearch 對象來執行自動化模型選擇。在初始化時,需要提供訓練數據、目標列(y)、問題類型和優化目標等信息。
# 示例:加載二分類數據集并劃分
X, y = evalml.demos.load_breast_cancer()
X_train, X_test, y_train, y_test = evalml.preprocessing.split_data(X, y, problem_type='binary')# 示例:初始化 AutoMLSearch
automl = evalml.AutoMLSearch(X_train, y_train, problem_type='binary', objective='auc', max_batches=1)
執行自動化模型選擇
通過調用 AutoMLSearch 對象的 search
方法,evalml 將自動執行多個模型的訓練和評估,最終返回性能最佳的模型。
# 示例:執行自動化模型選擇
best_pipeline = automl.search()
查看結果
search
方法執行完畢后,可以查看每個模型的性能結果以及最佳模型的詳細信息。
# 查看每個模型的性能結果
automl.rankings
使用最佳模型進行預測
一旦得到最佳模型,可以使用該模型進行預測。
# 使用最佳模型進行預測
y_pred = best_pipeline.predict(X_test)
調整超參數
如果需要,evalml 還提供了調整超參數的功能,以優化最佳模型的性能。
# 示例:調整超參數
best_pipeline_tuned = automl.tune_pipeline(best_pipeline, objective='auc')
模型評估與解釋
一旦選擇了最佳模型,可以對其進行評估和解釋:
# 在測試集上評估模型性能
best_pipeline.score(X_test, y_test, objectives=['log loss', 'auc'])# 獲取模型解釋
explain = best_pipeline.explain(X_test, y_test)
explain.plot_feature_importance()
高級功能
evalml 還提供了一系列高級功能,如自定義目標函數、調整超參數、集成多個模型等:
# 自定義目標函數
def custom_objective(y_true, y_predicted):# 自定義目標函數的實現pass# 調整超參數
best_pipeline_tuned = clf.tune_pipeline(best_pipeline, objective='log loss')# 集成多個模型
ensemble_pipeline = evalml.automl.Ensemble(X_train, y_train, problem_type='binary', objective='log loss')
ensemble_pipeline.add_model('RandomForest')
ensemble_pipeline.add_model('Linear Model')
ensemble_pipeline.add_model('XGBoost')
ensemble_pipeline.fit()
在實際項目中的應用
最后,通過一個實際項目示例來展示 evalml 的應用。假設有一個金融欺詐檢測的任務,可以輕松地使用 evalml 構建并優化模型:
# 加載金融欺詐數據集
fraud_X, fraud_y = load_fraud_dataset()# 劃分數據集
fraud_X_train, fraud_X_test, fraud_y_train, fraud_y_test = evalml.preprocessing.split_data(fraud_X, fraud_y, problem_type='binary')# 初始化 AutoMLSearch
fraud_clf = evalml.AutoMLSearch(fraud_X_train, fraud_y_train, problem_type='binary', objective='f1')# 執行自動化模型選擇
best_fraud_pipeline = fraud_clf.search()
總結
在本文中,深入介紹了 evalml 庫中的自動化模型選擇功能,這是 evalml 強大的自動化機器學習框架的核心之一。通過 AutoMLSearch 對象,evalml 能夠在給定的問題類型和目標函數下,智能地選擇并訓練多個模型,并返回性能最佳的模型。這一功能極大地簡化了模型開發的流程,使得開發者能夠更專注于問題本身,而無需花費大量時間嘗試不同的模型和參數組合。
初始化 AutoMLSearch 非常簡便,只需提供訓練數據、目標列、問題類型和優化目標等信息。執行自動化模型選擇后,可以查看每個模型的性能結果,并獲得最佳模型的詳細信息。最佳模型一旦確定,可以輕松地使用它進行預測。如果需要進一步優化,evalml 甚至提供了調整超參數的功能,以進一步提升模型性能。
總體而言,evalml 的自動化模型選擇功能為機器學習開發帶來了巨大的便利。通過在給定時間內智能地搜索和選擇模型,evalml 提高了模型開發的效率,使得機器學習項目更具可行性。這一框架的出現為開發者提供了更高效、更智能的機器學習工具,未來其在自動化機器學習領域將持續發揮重要作用。
Python學習路線
更多資料獲取
📚 個人網站:ipengtao.com
如果還想要領取更多更豐富的資料,可以點擊文章下方名片,回復【優質資料】,即可獲取 全方位學習資料包。
點擊文章下方鏈接卡片,回復【優質資料】,可直接領取資料大禮包。