Python evalml 库:自动化机器学习的新前景

更多资料获取

📚 个人网站: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

如果还想要领取更多更丰富的资料,可以点击文章下方名片,回复【优质资料】,即可获取 全方位学习资料包。

在这里插入图片描述
点击文章下方链接卡片,回复【优质资料】,可直接领取资料大礼包。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/207502.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端高频面试题大全-面试必看

内容较多,建议查看目录,方便食用 高频 React和Vue的区别 通常解法:vue是采用指令结合vue-loader实现构件用户界面的渐进式框架,React是采用JSX构件用户界面的组件化开发 详细解法:在渲染界面的时候DOM操作是昂贵的&…

【Linux系统编程】项目自动化构建工具make/Makefile

介绍: make和Makefile是用于编译和构建C/C程序的工具和文件。Makefile是一个文本文件,其中包含了编译和构建程序所需的规则和指令。它告诉make工具如何根据源代码文件生成可执行文件,里面保存的是依赖关系和依赖方法。make是一个命令行工具&a…

智汇恒星科技|控乐屋.全宅智能冠军代言来啦, 智慧家居千亿蓝海

随着5G、大数据、云计算、物联网等技术的发展,智能化正覆盖人们生活的方方面面,全屋智能的出现为“一键式”智能家居生活享受提供无限可能。近年来智能家居行业总体规模增长迅速,数据显示,2022年中国智能家居行业市场规模约为6200…

Java内部类

文章目录 什么是 Java 中的内部类?有哪些类型的内部类?匿名内部类局部内部类(定义在方法中的类)局部内部类静态内部类 Java 类中不仅可以定义变量和方法,还可以定义类,这样定义在类内部的类就被称为内部类。…

Java期末复习题之封装

点击返回标题->23年Java期末复习-CSDN博客 第1题. 定义一个类Person,定义name和age私有属性,定义有参的构造方法对name和age进行初始化。在测试类中创建该类的2个对象,姓名、年龄分别为lili、19和lucy、20,在屏幕打印出2个对象的姓名和年龄…

2024年江苏省职业院校技能大赛信息安全管理与评估 理论题(样卷)

2024年江苏省职业院校技能大赛信息安全管理与评估 理论题(样卷) 理论技能与职业素养(100分) 2024年江苏省职业院校技能大赛(高职学生组) 模块三“信息安全管理与评估”理论技能 【注意事项】 Geek极安云…

Qt对excel操作

Qt库中自带对excel操作的模块QAxObject,QAxObject是Qt提供给程序员从代码中访问Office的对象类,其本质上是一个面向微软操作系统的COM接口。 QAxObject将所有Office的工作簿、表格、文档等都作为其子对象,程序员通过调用querySubObject()这个…

vue-quill-editor上传图片base64转化为img标签

vue-quill-editor传图片的话默认把图片转成了base64&#xff0c;会导致我们的参数特别大&#xff0c;不好渲染 基于vue-quill-editor重写一个quill-editor组件 <template><div><quilleditorv-model"content"ref"myTextEditor":options&qu…

在线图片转Base64图片的方法

html版(不包含跨域解决,输入在线图片地址即可转换) <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>…

Cisco 思科路由交换网络设备 安全基线 安全加固操作

目录 账号管理、认证授权 本机认证和授权ELK-Cisco-01-01-01 设置特权口令 ELK-Cisco-01-02-01 ELK-Cisco-01-02-02 ​​​​​​​登录要求 ELK-Cisco-01-03-01 ​​​​​​​ELK-Cisco-01-03-02 ELK-Cisco-01-03-03 日志配置 ELK-Cisco-02-01-01 通信协议 ELK-Cisco-…

软考高级信息系统项目管理师经验分享

考了三次终于考过了。 第一次&#xff0c;没准备&#xff0c;打酱油。 第二次&#xff0c;不舍得花钱&#xff0c;自己复习&#xff0c;结果教材改版了都不知道。 第三次&#xff0c;改机考了。 总结一下这三次的经验&#xff1a; 一、不是学霸型的一定要报班 报班的优点&…

实时动作识别学习笔记

目录 yowo v2 yowof 判断是在干什么,不能获取细节信息 yowo v2 https://github.com/yjh0410/YOWOv2/blob/master/README_CN.md ModelClipmAPFPSweightYOWOv2-Nano1612.640ckptYOWOv2-Tiny

【prometheus】入门+实习需求实战

prometheus官方教程 说明&#xff1a; 感冒了&#xff0c;写点总结不浪费时间&#xff0c;声明不会扯出来任何的私有代码&#xff0c;毕竟要保密&#xff0c;只会讲prometheus的官方有的&#xff0c;以及那些开源的代码方法&#xff0c;例如prometheus客户端代方法&#xff0…

QML中Dialog获取close与open状态

1.新建MyDialog.qml import QtQuick 2.15import QtQuick.Dialogs 1.2Dialog {id: rootvisible: falsetitle: qsTr("弹出对话框")width: 250height: 200} 2.main.qml中调用MyDialog import QtQuick 2.15 import QtQuick.Window 2.15 import QtQuick.Controls 2.15…

JS原生实现浏览器滚动条滚动侧边栏高亮响应

目录 演示 ​编辑 需求 代码 css html script 代码解释 1、获取所有link-content 2、定义一个rectContent数组&#xff0c;然后循环allContents调用getClientRects()[0]获取每个link-content元素与浏览器视口的关系 3、为数组追加link-content&#xff0c;用于设置侧…

软件设计师——面向对象技术(一)

&#x1f4d1;前言 本文主要是【面向对象技术】——软件设计师—面向对象技术的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 &#…

C++学习笔记(十一)

一、类和对象 C面向对象的三大特性为&#xff1a;封装、继承、多态 C认为万事万物皆为对象&#xff0c;对象上有其属性和行为 例如&#xff1a;人可以作为对象&#xff0c;属性有姓名、年龄、身高......&#xff0c;行为有走、吃、睡觉 车也可以作为对象&#xff0c;属性有轮…

官网IDM下载和安装的详细步骤

目录 一、IDM是什么 二、下载安装 三、解决下载超时的问题 四、谷歌浏览器打开IDM插件 谷歌浏览器下载官网&#x1f447; 五、测试 六、资源包获取 一、IDM是什么 IDM&#xff08;internet download manager&#xff09;是一个互联网下载工具插件&#xff0c;常见于用…

要求CHATGPT高质量回答的艺术:提示工程技术的完整指南—第 29 章:ChatGPT 插件

要求CHATGPT高质量回答的艺术&#xff1a;提示工程技术的完整指南—第 29 章&#xff1a;ChatGPT 插件 这是 ChatGPT 的另一个圣杯。它将彻底改变你使用 ChatGPT 的方式。ChatGPT 插件本质上是将 ChatGPT 的功能扩展到文本输出之外。它允许你上传图片、视频、音频和 CSV 文件&…

资深IT经理分享如何选择商用远控软件三:评估产品方案匹配度

作为企业必要的IT管理和远程办公工具&#xff0c;远程控制解决方案的挑选和采购是需要IT部门慎重考虑的。 对于具体如何在诸多产品中选择合适的商用远程控制解决方案&#xff0c;此前我们就分享了一位资深IT经理的相关经验&#xff0c;目前已经涵盖初期的业务需求调研&#xf…