【Python机器学习系列】使用SMAC优化SVC分类模型的超参数(案例+源码)

news2024/9/25 19:14:09

这是我的第352篇原创文章。

一、引言

        在机器学习和人工智能领域,优化超参数以提升模型性能是一项至关重要的任务。SMAC3,全称Sequential Model-based Algorithm Configuration,是一个强大且灵活的贝叶斯优化包,专注于高效地寻找算法的最佳超参数配置。该项目由自动机器学习(AutoML)领域的专家团队开发,旨在简化并加速这一过程。SMAC3的核心是结合了贝叶斯优化与激进的赛车机制。这种组合策略能够智能地预测超参数配置的效果,并通过比较选择更优的配置,从而减少不必要的试验。其Python3实现保证了代码的易用性和可扩展性,而C++编写的随机森林提升了运行效率。

图片

Install SMAC via PyPI:

pip install smac

这个库目前只适用于Linux操作系统环境,对于Windows环境使用需要借助WSL。

图片

二、实现过程

2.1 准备数据

data = pd.read_csv(r'Dataset.csv')
df = pd.DataFrame(data)
## 数据基本信息
print(df.head())

df:

图片

2.2 数据集划分

target = 'target'
features = df.columns.drop(target)
print(data["target"].value_counts()) # 顺便查看一下样本是否平衡

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(df[features], df[target], test_size=0.2, random_state=0)

2.3 定义训练函数

def train(config: Configuration, seed: int = 0) -> float:
    classifier = SVC(C=config["C"], random_state=seed)
    scores = cross_val_score(classifier, X_train, y_train, cv=5)
    return 1 - np.mean(scores)

2.4 定义配置空间

configspace = ConfigurationSpace({"C": (0.100, 1000.0)})

2.5 定义优化环境的方案

scenario = Scenario(configspace, deterministic=True, n_trials=200)

2.6 使用SMAC寻找最优的配置或参数

smac = HyperparameterOptimizationFacade(scenario, train)
incumbent = smac.optimize()

print("Best found configuration: ", incumbent)

结果:

图片

最优的C是707.7831968884921。

作者简介:

读研期间发表6篇SCI数据挖掘相关论文,现在某研究院从事数据算法相关科研工作,结合自身科研实践经历不定期分享关于Python、机器学习、深度学习、人工智能系列基础知识与应用案例。致力于只做原创,以最简单的方式理解和学习,关注我一起交流成长。需要数据集和源码的小伙伴可以关注底部公众号添加作者微信。

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

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

相关文章

SpringBoot依赖之Spring Boot Admin(二)

本文核心:集成Prometheus 指标实现应用指标图表监控 作者语录: 我们一直在追逐需求和迭代的路上,却不曾回头看自己曾经的作品是否给自己留下经验和遗憾。技术永远没有边界,但个人必须对自己过往的行为买单,无论对与错…

TestNet 资产管理信息收集系统,附下载链接

我们团队在进行例行的安全活动时,信息管理和监控变得越来越重要了。尤其是在 hvv 和 zb 的任务中,我们需要对公司的资产有一个全貌的了解,以便及时识别和修复潜在的安全漏洞。这个过程通常涉及到大量的信息收集和数据分析,往往会消…

基于多技术融合下生态系统服务权衡与协同动态分析及论文写作方法

生态系统服务是指生态系统所形成的用于维持人类赖以生存和发展的自然环境条件与效用,是人类直接或间接从生态系统中得到的各种惠益。联合国千年生态系统评估(Millennium ecosystem assessment,MA)提出生态系统服务包括供给、调节、…

Vue——day13之脚手架

目录 概述 创建一个脚手架 首先下载脚手架 创建文件 脚手架中代码分析 main.js index.html render 为什么要用render 脚手架的默认配置 总结 概述 Vue的脚手架是一个快速构建Vue项目的工具,它集成了一系列的开发工具和配置,提供了一种标准化的…

MFC修改控件ID的详细说明

控件的ID可以在该对话框的.rc中修改 首先需要开启资源视图 然后在资源视图中打开该对话框 选中某个控件,就可以在属性面板中修改ID了 在此处修改ID后,对应Resource.h中也会发生变化 若在.rc中创建了一个控件时,Resource.h中会生成一个对应…

XML 保存 显示XML 方式 encoding=“UTF8“

XML 保存 encoding“UTF8” 将文件另存为 编码 UTF8 , 跟encoding“UTF8” 保持一致 。

NVDLA专题13:NVDLA软件部分设计和Compiler library

NVDLA拥有完整的软件生态,包括从编译神经网络到推理的支持。这个生态的一部分包括on-device软件栈(software stack),它是NVDLA开源版本的一部分。此外,英伟达将提供完整的training infrastructure,用来构建…

基于yolov8的肺炎检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv8的肺炎检测系统是一项前沿的深度学习应用,该系统利用YOLOv8这一先进的目标检测算法,能够高效地分析病人的X射线肺部图像,从而快速识别出肺炎的征状。YOLOv8作为Ultralytics公司开发的最新版本,引入了多项…

猎板通信PCB动态:苹果16系列多款设备上线,PCB供应商的机遇与挑战!

在最新的苹果供应链动态中,苹果公司对于PCB供应商的选择标准非常严格,主要考虑因素包括技术能力、生产规模、质量控制、成本效益、供应链稳定性以及环境和社会责任等。随着苹果产品技术的不断进步,PCB供应商也需要具备相应的技术升级能力&…

安泰功率放大器在微纳光固化3D打印中的具体应用

随着科技的进步,3D打印技术已经渗透到各个领域,尤其是微纳光固化3D打印技术。这种技术结合了光学、材料科学和微电子学的知识,能够制造出具有微米级精度的复杂物体。本文Aigtek安泰电子将带你探索功率放大器在微纳光固化3D打印中的应用&#…

太简单,用这个例子详解TCP协议你肯定不知道

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部 下午好,我的网工朋友 当你在微信上给你的朋友发送一条消息,或者在淘宝浏览商品时,这些信息是如何安全、准确地…

LLM - 理解 多模态大语言模型 (MLLM) 的架构与相关技术 (二)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/142063880 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 多模态…

CDGA|推动数据治理与传统产业深度融合:策略与实践路径

在数字化浪潮席卷全球的今天,数据已成为推动经济社会发展的关键生产要素。传统产业,作为国民经济的基石,正面临着前所未有的转型挑战与机遇。如何让数据治理这一现代管理理念与实践方法深度融入传统产业,促进其转型升级与高质量发…

K均值聚类

根据到给点样本的距离,来聚类。 1.曼哈顿距离、 2.欧几里得距离 直线距离 3.切比雪夫距离 4.闵氏距离 5.余弦相似度 对数据大小/长度等不关注,只关注相似度。 6.汉明距离 二进制距离 二、密度聚类 DBSCAN 前提是样本是根据紧密程度分布的。 先用超参…

Go语言概述

1.Go语言的特点 1)从语言层面支持并发,实现简单 2)goroutine,轻量级线程,可实现大并发处理,高效利用多核 3)垃圾回收机制,内存自动回收,不需要开发人员管理 4&#xff0…

【网络】DNS协议、ICMP协议

DNS协议与ICMP协议 文章目录 1.DNS协议1.1DNS背景1.2域名简介1.3域名解析过程(了解)1.4使用dig工具分析DNS过程 2.ICMP协议2.1ICMP的功能2.2ping命令2.3traceroute命令 1.DNS协议 DNS(Domain Name System,域名系统)协…

idear获取git项目

最近想下载个ruoyi项目来包装简历,结果打开idear总是上一个项目,找不到get for vcs只好自己捣鼓了,顺便记录留着下次用。 步骤: 1. 2. 3.输入我们想访问的地址 eg: 点击克隆,我们就能获取项目到本地了。

C语言 | Leetcode C语言题解之第396题旋转函数

题目&#xff1a; 题解&#xff1a; #define MAX(a, b) ((a) > (b) ? (a) : (b))int maxRotateFunction(int* nums, int numsSize){int f 0, numSum 0;for (int i 0; i < numsSize; i) {f i * nums[i];numSum nums[i];}int res f;for (int i numsSize - 1; i &g…

教师节重磅福利!《动手学强化学习》作者亲自带你学强化学习

作为大模型的核心技术之一&#xff0c;强化学习越来越受到人们的重视。强化学习&#xff08;Reinforcement Learning, RL&#xff09;是机器学习的一个领域&#xff0c;主要研究智能主体&#xff08;agent&#xff09;在环境中应该怎样采取行动以最大化所获得的累积奖励。目前强…

【视频教程】GEE遥感云大数据在林业中的应用与典型案例实践

近年来遥感技术得到了突飞猛进的发展&#xff0c;航天、航空、临近空间等多遥感平台不断增加&#xff0c;数据的空间、时间、光谱分辨率不断提高&#xff0c;数据量猛增&#xff0c;遥感数据已经越来越具有大数据特征。遥感大数据的出现为相关研究提供了前所未有的机遇&#xf…