贝叶斯优化优化参数,以Kmeans为例

2023-11-18

贝叶斯优化有几个步骤:

  1. 构造黑盒目标函数
  2. 确定取值空间
  3. 构造贝叶斯优化器

下面以kmeans为例:

步骤一:构造黑盒目标函数

这个函数主要是运行需要的函数,然后使用计算一个指标(只能是一个指标哈!),然后贝叶斯优化会在迭代的时候最大化这个指标,如果需要最小化这个指标,则可以在目标值前面加一个负号

def f_score(n_clusters, n_init, my_iter):
    k_means = KMeans(n_clusters=int(n_clusters), n_init=int(n_init), max_iter=int(my_iter))
    k_means.fit(data)
    if k_means.labels_.max() == -1 or k_means.labels_.max() == 0 or \
            k_means.labels_.max() == k_means.labels_.shape[0] - 1:
        return -1
    score = metrics.silhouette_score(data, k_means.labels_, metric='euclidean')  # 使用轮廓系数作为最终指标,最大化轮廓系数
    return score  # 最后要输出一个指标,贝叶斯优化器会尝试最大化这个指标

步骤二:确定取值空间

这个主要是确定搜索值的范围的:[最小,最大]

    pbounds = {'n_clusters': (4, 20),
               'n_init': (5, 20),
               'my_iter': (200, 500), }

步骤三:构造贝叶斯优化器

    optimizer = BayesianOptimization(
        f=f_score,  # 黑盒目标函数
        pbounds=pbounds,  # 取值空间
        verbose=2,  # verbose = 2 时打印全部,verbose = 1 时打印运行中发现的最大值,verbose = 0 将什么都不打印
        random_state=1,
    )

全部代码

import pandas as pd
import numpy as np
from sklearn import metrics
from bayes_opt import BayesianOptimization
from sklearn.cluster import KMeans


# 步骤一:构造黑盒目标函数
def f_score(n_clusters, n_init, my_iter):
    k_means = KMeans(n_clusters=int(n_clusters), n_init=int(n_init), max_iter=int(my_iter))
    k_means.fit(data)
    if k_means.labels_.max() == -1 or k_means.labels_.max() == 0 or \
            k_means.labels_.max() == k_means.labels_.shape[0] - 1:
        return -1
    score = metrics.silhouette_score(data, k_means.labels_, metric='euclidean')  # 使用轮廓系数作为最终指标,最大化轮廓系数
    return score  # 最后要输出一个指标,贝叶斯优化器会尝试最大化这个指标


if __name__ == '__main__':
    data = pd.DataFrame(data=np.random.randint(0, 10, size=(2000, 10))) # 生成数据
    # 步骤二:确定取值空间
    pbounds = {'n_clusters': (4, 20),
               'n_init': (5, 20),
               'my_iter': (200, 500), }
    # 步骤三:构造贝叶斯优化器
    optimizer = BayesianOptimization(
        f=f_score,  # 黑盒目标函数
        pbounds=pbounds,  # 取值空间
        verbose=2,  # verbose = 2 时打印全部,verbose = 1 时打印运行中发现的最大值,verbose = 0 将什么都不打印
        random_state=1,
    )
    # 开始运行
    optimizer.maximize(  # 运行
        init_points=10,  # 随机搜索的步数
        n_iter=50,  # 执行贝叶斯优化迭代次数
    )
    print(optimizer.max['params'])  # 最优参数
    print(optimizer.max['target'])  # 最优值

输出为:

{'my_iter': 235.44227635380747, 'n_clusters': 19.807354168254797, 'n_init': 17.245557591846417}
0.08350507522285436
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

贝叶斯优化优化参数,以Kmeans为例 的相关文章

  • 最流行的五大数据模型工具

    当今的商业决策对基于天的数据依赖越来越强烈 然而 正确而连贯的数据流对商业用户做出快速 灵活的决策起到决定性的作用 建立正确的数据流和数据结构才能保证最好的结果 这个过程叫做数据建模 为了避免认为错误并且加快进度 我们需要使用专业的软件来帮
  • 数据缺失类型:MCAR、MAR、MNAR

    2022 01 23 1 Missing Completely at Random MCAR 2 Missing at Random MAR 3 Missing Not at Random MNAR 参考 AI for Medical Pr
  • 时间序列特征构造:以电力负荷预测为例讲解(python语言)

    个人电气博文目录传送门 学好电气全靠它 个人电气博文目录 持续更新中 时间序列特征构造 时间序列问题 首先不管是回归问题 还是分类问题 一个模型的好坏 决定因素由数据集的大小 特征值的选取和处理 算法 其中最重要的是特征值的选取和处理 今天
  • 全网最详细的Python安装教程,超级详细·小白秒懂!!!

    目录 1 安装版本说明 2 准备工作 确定操作系统及位数 2 1 确定方法1 2 2 确定方法2 3 下载Python安装包 4 安装Python 5 测试Python是否安装成功 6 Python安装成功后找不到编写代码的桌面快捷方式 7
  • python招聘数据分析可视化系统+爬虫+7种薪资预测算法+Flask框架(源码)

    博主介绍 全网粉丝10W 前互联网大厂软件研发 集结硕博英豪成立工作室 专注于计算机相关专业 毕业设计 项目实战6年之久 选择我们就是选择放心 选择安心毕业 毕业设计 2023 2024年计算机专业毕业设计选题汇总 建议收藏 毕业设计 20
  • Python获取去哪儿旅游数据并作可视化攻略

    嗨喽 大家好呀 这里是爱看美女的茜茜呐 开发环境 版 本 python 3 8 编辑器 pycharm 第三方库 requests gt gt gt pip install requests parsel gt gt gt pip inst
  • 多线程编程与性能优化

    引言 在上一篇的入门篇中 我们对Android线程的基础概念和多线程编程模型有了初步了解 本篇将深入探讨多线程编程技术和性能优化策略 以提升应用的效率和响应性 高级多线程编程技术 使用线程池管理线程 线程池是一组预先创建的线程 用于执行任务
  • Pipeline 助您轻松驾驭海量数据!

    前言 数据治理在当今信息时代变得至关重要 随着数据量的不断增长和多样化 组织需要有效地管理和利用这些数据 以支持业务决策和创新发展 不论是做数据分析还是数据解析 利用 Pipeline 可以帮助组织实现数据治理的自动化和规范化 为组织提供更
  • 天猫数据分析-天猫查数据软件-11月天猫平台饮料市场品牌及店铺销量销额数据分析

    今年以来 饮料是快消品行业中少数保持稳定增长的品类之一 11月份 饮料市场同样呈现较好的增长态势 根据鲸参谋电商数据分析平台的相关数据显示 今年11月份 天猫平台上饮料市场的销量为2700万 环比增长约42 同比增长约28 销售额为13亿
  • 探索关系:Python中的Statsmodels库进阶

    目录 写在开头 1 多元线性回归 场景介绍 2 Logistic回归 2 1 Logistic回归的概念 2 2 应用案例 2 2 1 建立模型和预测
  • 滤光片截止带上尖峰的抑制

    具有很宽截止带的边缘滤光片往往会出现尖峰 1 这些峰值具有较高透射率 并且在光谱范围上很窄 这是由滤光片的核心腔体结构导致的 腔体的存在会稍微扩展特性 因此有时会采用优化或合成工艺来引入它们 峰值随系统任何层的厚度变化而移动 因此它始终存在
  • Python-一键爬取图片、音频、视频资源

    前言 使用Python爬取任意网页的资源文件 比如图片 音频 视频 一般常用的做法就是把网页的HTML请求下来通过XPath或者正则来获取自己想要的资源 这里我做了一个爬虫工具软件 可以一键爬取资源 媒体文件 但是需要说明的是 这里爬取资源
  • 深入挖掘:Python中的Statsmodels库高级应用

    写在开头 随着数据科学的发展 解决更为复杂问题的关键往往在于深入了解数据并采用更高级的分析工具 本文将带您深入探讨Python中的Statsmodels库 并引入一些高级功能 为更深入的数据挖掘奠定基础 1 方差分析 1 1 方差分析概念
  • 航空港务数据大屏为航空港的可持续发展提供有力支撑!

    随着经济的发展 不断加建与扩建民用机场 空港行业规模不断扩大 在不断引进和消化发达国家先进技术的同时 中国深入开展了对新技术和新材料的研究 极大地丰富和发展了中国的机场建设技术 且各项机场建设计划均已落实推进 行业在经济发展的推动下欣欣向荣
  • 航空港务数据大屏为航空港的可持续发展提供有力支撑!

    随着经济的发展 不断加建与扩建民用机场 空港行业规模不断扩大 在不断引进和消化发达国家先进技术的同时 中国深入开展了对新技术和新材料的研究 极大地丰富和发展了中国的机场建设技术 且各项机场建设计划均已落实推进 行业在经济发展的推动下欣欣向荣
  • 实现智能化运维的关键驱动力,你知道可观测性工具吗

    可观测性是指根据系统产生的数据评估内部系统状态的能力 对于IT运维团队来说 可观测性工具是非常重要的 通过这些工具 IT团队可以同时观察或深入了解IT基础架构中不同应用程序和资源的健康状况和状态 从而主动检测异常 分析问题并解决问题 可观测
  • bokeh,一个超强的 Python 库详解

    概要 数据可视化在数据分析和报告中扮演着关键角色 而Python的Bokeh库为创建交互式 具有吸引力的可视化图表提供了强大的工具 本文将介绍Bokeh的基本概念 安装方法以及详细的示例代码 以帮助大家了解如何使用Bokeh创建出色的数据可
  • 番外篇-Julius AI帮你做数据分析

    今天咱们聊聊如何利用AI大模型来做数据分析 非常适合小白体验 尤其是缺乏项目经验的同学 强烈建议关注收藏 也欢迎私信交流 1 站在巨人肩膀 在数据分析领域 AI技术的飞速发展正引领一场革命 随着大型机器学习模型的不断完善 数据分析变得前所未
  • 广告竞价策略:激发广告变现潜能的关键

    在数字化时代 广告已经成为企业推广品牌 产品和服务的关键手段之一 为了最大程度地发挥广告的效果 广告竞价策略成为广告主和数字营销专业人士关注的焦点 通过巧妙运用竞价策略 广告主可以在激烈的市场竞争中脱颖而出 实现广告变现的潜能 admaoy
  • GPT4+Python近红外光谱数据分析及机器学习与深度学习建模

    详情点击链接 GPT4 Python近红外光谱数据分析及机器学习与深度学习建模 第一 GPT4 入门基础 1 ChatGPT概述 GPT 1 GPT 2 GPT 3 GPT 3 5 GPT 4模型的演变 2 ChatGPT对话初体验 注册与

随机推荐

  • 快速入门XPath语法,轻松解析爬虫时的HTML内容

    快速入门XPath语法 轻松解析爬虫时的HTML内容 爬虫时 很多网站返回的是HTML文件 可以用正则表达式 re库 或XPath语法来匹配目标内容 这两种方法属于爬虫的基本技能 实战中要会灵活运用 对于一些结构和内容复杂的HTML 用re
  • 通达信接口怎么样抓取股票实时数据?

    通达信接口怎么样抓取股票实时数据 股票爬取接口在股票交易中常常使用到的一些辅助工具 股票爬取接口主要是利用l1和l2接口来执行获取股票实时行情数据的原理 将自己需要查询的需求就可以在接口软件上搜索就可以很快的获取数据了 那么 在获取的过程中
  • 聊聊java高并发系统之异步非阻塞

    聊聊java高并发系统之异步非阻塞 几种调用方式 同步阻塞调用 即串行调用 响应时间为所有服务的响应时间总和 半异步 异步Future 线程池 异步Future 使用场景 并发请求多服务 总耗时为最长响应时间 提升总响应时间 但是阻塞主请求
  • 【点云格式互转】ply转bin、任意点云格式转ply

    本文为博主原创文章 未经博主允许不得转载 本文为专栏 python三维点云从基础到深度学习 系列文章 地址为 https blog csdn net suiyingy article details 124017716 3D点云存储方式的种
  • 08_STM32的存储结构

    STM32的存储器结构 存储器是单片机结构的重要组成部分 存储器是用来存储编译好的程序代码和数据的 有了存储器单片机系统才具有记忆功能 按照存储介质的特性 可以分 易失性存储器 和 非易失性存储器 两类 易失性存储器断电后 里面存储的内容会
  • 802.11K/V/R协议介绍

    802 11K V R协议介绍 1 传统无线漫游介绍 1 1 什么是无线漫游 一台无线终端备 STA 通过连接Wi Fi获取上网体验 Wi Fi名称 又称为SSID 是由无线接入网 AP 提供的 因为一台AP设备的覆盖范围有限 所以无线网络
  • 解决同时多个请求的处理问题,和定时任务

    应用场景 发布系统 让他晚上2点执行发布的一串任务 定时任务 更新访问量 晚上2点定时将数据从redis更新到mysql中去 商城类的抢购工作 大批量的用户涌入 承载不了一次性处理这么多的活儿 用这个方式也可以 目录结构 1 让woker运
  • maven项目debug查看依赖包源代码办法

    默认的maven工程 好像很难加载依赖的源代码 办法如下 maven调试时 无法进入源码 办法一 在debug配置里面 找到source 把带source的jar包 放进去 添加的时候 选add 再选external archive 这里要
  • jQuery——前端技术栈

    1 jQuery说明 jQuery 是一个 JavaScript 函数库 是一个轻量级的 写的少 做的多 的 JavaScript 库 jQuery 库包含以下功能 HTML 元素选取 HTML 元素操作 CSS 操作 HTML 事件函数
  • gin框架07--PureJSON

    gin框架07 PureJSON 介绍 案例 说明 介绍 通常 JSON 使用 unicode 替换特殊 HTML 字符 例如 lt 变为 u003c 如果要按字面对这些字符进行编码 则可以使用 PureJSON Go 1 6 及更低版本无
  • DataFrame入门丨Pandas数据分析基础(4)

    个人主页 互联网阿星 格言 选择有时候会大于努力 但你不努力就没得选 作者简介 大家好我是互联网阿星 和我一起合理使用Python 努力做时间的主人 如果觉得博主的文章还不错的话 请点赞 收藏 留言 支持一下博主哦 行业资料 PPT模板 简
  • Qt 6.x中Qt Quick简介及示例

    Qt Quick首次在Qt 4 7和Qt Creator 2 1中引入 是一种高级UI技术 Qt Quick模块是用于编写QML Qt Meta Object Language Qt元对象语言 应用程序的标准库 Qt QML模块提供了QML
  • Linux获取本机的IP的几种方式

    共计五条命令 使用的方式都不同 但原理相同充分利用LInux管道技术 root vagrant centos65 ifconfig eth0 grep Bcast cut d f2 cut d f1 192 168 191 2 root v
  • 西门子PLC的编程工具是什么?

    西门子PLC编程工具主要有下面这几个 1 STEP 7 Simatic Manager STEP 7或者Simatic Manager是西门子PLC编程最常用的软件开发环境 它是一款强大的集成开发环境 可以用来编写 调试PLC编程代码 还可
  • 《基础篇第4章:vue2基础》:使用vue脚手架创建项目

    文章目录 4 1初始化脚手架 4 1 1说明 4 1 2具体步骤 4 1 3模板项目的结构 4 1 4 创建第一个vue项目分析index html组成部分 4 1 5render函数 4 1 6修改默认配置 本人其他相关文章链接 4 1初
  • ubuntu wget ERROR 403: Forbidden 错误

    解决办法 临时变更wget的UA wget U 浏览器的useragent 下载地址 永久变更Wget 未测试 修改配置文件 etc wgetrc 添加下面这一行 header User Agent 浏览器的useragent 上面这个配置
  • 【vue】vue history和hash用法和区别

    vue中模式选择 router gt index js const router new VueRouter mode history base process env BASE URL routes hash和history区别 1 ha
  • 彷徨

    1 什么是hbase HBASE是一个高可靠性 高性能 面向列 可伸缩的分布式存储系统 利用HBASE技术可在廉价PC Server上搭建起大规模结构化存储集群 HBASE的目标是存储并处理大型的数据 更具体来说是仅需使用普通的硬件配置 就
  • 相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排、五人一排、七人一排地变换队形,而他每次只掠一眼队伍的排尾就知道总人数了。

    题目描述 相传韩信才智过人 从不直接清点自己军队的人数 只要让士兵先后以三人一排 五人一排 七人一排地变换队形 而他每次只掠一眼队伍的排尾就知道总人数了 输入3个非负整数a b c 表示每种队形排尾的人数 a lt 3 b lt 5 c l
  • 贝叶斯优化优化参数,以Kmeans为例

    文章目录 步骤一 构造黑盒目标函数 步骤二 确定取值空间 步骤三 构造贝叶斯优化器 全部代码 贝叶斯优化有几个步骤 构造黑盒目标函数 确定取值空间 构造贝叶斯优化器 下面以kmeans为例 步骤一 构造黑盒目标函数 这个函数主要是运行需要的