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期末复习题之封装

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

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

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

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

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

实时动作识别学习笔记

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

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数组,然后循环allContents调用getClientRects()[0]获取每个link-content元素与浏览器视口的关系 3、为数组追加link-content,用于设置侧…

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

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

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

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

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

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

【ESP32 IDF】ESP32移植u8g2库,实现oled界面显示

ESP32移植u8g2库,实现oled界面显示 1. 简单描述2. 环境准备1. 硬件准备2. 软件准备 3. IIC屏幕 【基于 ssd1362 256*64 】4. SPI屏幕 【基于 ssd1306 128*32】 1. 简单描述 开发方式为 IDF5.0参考连接为 iic基于esp-idf移植使用u8g2 spi基于esp-idf移植使用u8g2 …

探索创意无限的Photoshop CC 2020Mac/Win版

作为一款功能强大的图像处理软件,Photoshop CC 2020(简称PS 2020)在全球范围内备受设计师、摄影师和艺术家的喜爱和推崇。它不仅为用户提供了丰富多样的工具和功能,还不断推出新的创意特效和改进的功能,让用户的创意无…

C# Solidworks二次开发:选择管理器相关的API介绍

今天在讲述主要内容之前,先说一个不太相关的问题。 我之前在其他文章中看到有一些朋友在问为什么获取到的点位数据需要乘以1000进行单位转换,其实原因是这样的,在所有使用的API中如果没有特殊说明,所有的长度单位都是米&#xff…

苹果Vision Pro即将量产

据界面新闻消息,苹果公司将在今年12月正式量产第一代MR(混合现实)产品Vision Pro。苹果公司对Vision Pro寄予了厚望,预计首批备货40万台左右,2024年的销量目标是100万台,第三年达到1000万台。 苹果的供应…

springboot + thymeleaf + layui 初尝试

一、背景 公司运营的同事有个任务,提供一个数据文件给我,然后从数据库中找出对应的加密串再导出来给他。这个活不算是很难,但时不时就会有需求。 同事给我的文件有时是给excel表格,每一行有4列,逗号隔开,…

编译和使用WPS-ghrsst-to-intermediate生成SST

一、下载 V1.0 https://github.com/bbrashers/WPS-ghrsst-to-intermediate/tree/masterV1.5(使用过程报错,原因不详,能正常使用的麻烦告知一下方法) https://github.com/dmitryale/WPS-ghrsst-to-intermediate二、修改makefile…

【CVE 复现】CVE-2022-0185 fsconfig之整数溢出

影响版本:Linux-v5.1~v5.16.2 测试版本:Linux-5.11.22,由于懒得搞环境,所以直接用的 bsauce 大佬提供的 测试环境 看看 patch: diff --git a/fs/fs_context.c b/fs/fs_context.c index b7e43a780a625b..24ce12f0db32…

ResNeXt(2017)

文章目录 Abstract1. Introductionformer workour work 2. Related Work多分支卷积网络分组卷积压缩卷积网络Ensembling 3. Method3.1. Template3.2. Revisiting Simple Neurons3.3. Aggregated Transformations3.4. Model Capacity 4. Experiment 原文地址 源代码 Abstract 我…