LGB的两种写法
方法一
import lightgbm as lgb
import pandas as pd
from sklearn.model_selection import train_test_split, KFold
from sklearn.metrics import accuracy_score# 读取训练集和测试集数据
train_data = pd.read_csv('train.csv')
test_data = pd.read_csv('test.csv')# 分割特征和标签
X_train = train_data.drop('label', axis=1)
y_train = train_data['label']# 创建 LightGBM 数据集
train_dataset = lgb.Dataset(X_train, label=y_train)# 设置模型参数
params = {'boosting_type': 'gbdt','objective': 'binary','metric': 'binary_logloss','num_leaves': 31,'learning_rate': 0.05
}# 定义 k-fold 交叉验证
kfold = KFold(n_splits=5, shuffle=True, random_state=42)# 用于存储每个 fold 的预测结果
test_predictions = []# 进行 k-fold 交叉验证
for train_index, val_index in kfold.split(X_train):# 划分训练集和验证集X_train_fold, X_val_fold = X_train.iloc[train_index], X_train.iloc[val_index]y_train_fold, y_val_fold = y_train.iloc[train_index], y_train.iloc[val_index]# 创建当前 fold 的 LightGBM 数据集train_fold_dataset = lgb.Dataset(X_train_fold, label=y_train_fold)val_fold_dataset = lgb.Dataset(X_val_fold, label=y_val_fold)# 训练模型model = lgb.train(params, train_fold_dataset, num_boost_round=100, valid_sets=[val_fold_dataset], early_stopping_rounds=10, verbose_eval=10)# 在验证集上进行预测val_predictions = model.predict(X_val_fold, num_iteration=model.best_iteration)# 将当前 fold 的预测结果加入列表test_predictions.append(val_predictions)# 计算 k-fold 预测结果的平均值
final_predictions = sum(test_predictions) / len(test_predictions)# 二分类问题的阈值处理
final_predictions = (final_predictions > 0.5).astype(int)# 在测试集上进行预测
X_test = test_data # 假设测试集特征和训练集格式相同
y_test_predictions = model.predict(X_test, num_iteration=model.best_iteration)# 二分类问题的阈值处理
y_test_predictions = (y_test_predictions > 0.5).astype(int)# 输出测试集预测结果
print(y_test_predictions)
方法二
import lightgbm as lgb
import pandas as pd
from sklearn.model_selection import KFold
from sklearn.metrics import accuracy_score# 读取训练集和测试集数据
train_data = pd.read_csv('train.csv')
test_data = pd.read_csv('test.csv')# 分割特征和标签
X_train = train_data.drop('label', axis=1)
y_train = train_data['label']# 定义模型参数
params = {'boosting_type': 'gbdt','objective': 'binary','metric': 'binary_logloss','num_leaves': 31,'learning_rate': 0.05
}# 定义 k-fold 交叉验证
kfold = KFold(n_splits=5, shuffle=True, random_state=42)# 用于存储每个 fold 的预测结果
test_predictions = []# 进行 k-fold 交叉验证
for train_index, val_index in kfold.split(X_train):# 划分训练集和验证集X_train_fold, X_val_fold = X_train.iloc[train_index], X_train.iloc[val_index]y_train_fold, y_val_fold = y_train.iloc[train_index], y_train.iloc[val_index]# 创建 LightGBM 模型model = lgb.LGBMClassifier(**params)# 训练模型model.fit(X_train_fold, y_train_fold)# 在验证集上进行预测val_predictions = model.predict(X_val_fold)# 将当前 fold 的预测结果加入列表test_predictions.append(val_predictions)# 计算 k-fold 预测结果的平均值
final_predictions = sum(test_predictions) / len(test_predictions)# 二分类问题的阈值处理
final_predictions = (final_predictions > 0.5).astype(int)# 在测试集上进行预测
X_test = test_data # 假设测试集特征和训练集格式相同
y_test_predictions = model.predict(X_test)# 二分类问题的阈值处理
y_test_predictions = (y_test_predictions > 0.5).astype(int)# 输出测试集预测结果
print(y_test_predictions)
相关文章:
LGB的两种写法
方法一 import lightgbm as lgb import pandas as pd from sklearn.model_selection import train_test_split, KFold from sklearn.metrics import accuracy_score# 读取训练集和测试集数据 train_data pd.read_csv(train.csv) test_data pd.read_csv(test.csv)# 分割特征和…...
【Unity的HDRP下ShaderGraph实现权重缩放全息投影_(内附源码)】
实现权重缩放全息投影 效果如下 效果如下 顶点位置偏移 链接: 提取码:1234...
透视俄乌网络战之二:Conti勒索软件集团(上)
透视俄乌网络战之一:数据擦除软件 Conti勒索软件集团(上) 1. Conti简介2. 组织架构3. 核心成员4. 招募途径5. 工作薪酬6. 未来计划参考 1. Conti简介 Conti于2019年首次被发现,现已成为网络世界中最危险的勒索软件之一࿰…...
【华为OD机试python】拔河比赛【2023 B卷|100分】
【华为OD机试】-真题 !!点这里!! 【华为OD机试】真题考点分类 !!点这里 !! 题目描述 公司最近准备进行拔河比赛,需要在全部员工中进行挑选。 选拔的规则如下: 按照身高优先、体重次优先的方式准备比赛阵容; 规定参赛的队伍派出10名选手。 请实现一个选拔队员的小程序。 输…...
05 CNN 猴子类别检测
一、数据集下载 kaggle数据集[10 monkey] 二、数据集准备 2.1 指定路径 from tensorflow import keras import tensorflow as tf import numpy as np import pandas as pd import matplotlib.pyplot as plttrain_dir /newdisk/darren_pty/CNN/ten_monkey/training/ valid_d…...
【C#】关于Array.Copy 和 GC
关于Array.Copy 和 GC //一个简单的 数组copy 什么情况下会触发GC呢[ReliabilityContract(Consistency.MayCorruptInstance, Cer.MayFail)]public static void Copy(Array sourceArray,long sourceIndex,Array destinationArray,long destinationIndex,long length);当源和目…...
Vue前端框架08 Vue框架简介、VueAPI风格、模板语法、事件处理、数组变化侦测
目录 一、Vue框架1.1渐进式框架1.2 Vue的版本 二、VueAPI的风格三、Vue开发准备工作四、模板语法文本插值属性绑定条件渲染列表渲染key管理状态 四、事件处理定义事件事件参数事件修饰符 五、数组变化侦测 一、Vue框架 渐进式JavaScript框架,易学易用,性…...
WebStorm使用PlantUML
虽然 WebStorm 没有官方的 PlantUML 插件,但我们可以使用第三方插件 PlantUML Integration 来实现在 WebStorm 中使用 PlantUML。 以下是使用 PlantUML Integration 插件,在 WebStorm 中设计一个 Vue 模块的步骤: 安装 PlantUML Integratio…...
Python做批处理,给安卓设备安装应用和传输图片
场景:几台新安卓平板过来了,需要安4个应用并复制4张图片。手工操作其实也未尝不可,但是能自动化起来,岂不是美哉。 python调用系统命令,我选用了os.system,最简单粗暴,也能有回显,就…...
如何获取springboot中所有的bean
代码 Component public class TestS {Autowiredprivate Map<String, Object> allBean Maps.newConcurrentMap();public void testA(){System.out.println("测试下");}}这段代码是一个使用 Spring Framework 的依赖注入(DI)功能的示例。…...
大数据技术之Hadoop:HDFS存储原理篇(五)
目录 一、原理介绍 1.1 Block块 1.2 副本机制 二、fsck命令 2.1 设置默认副本数量 2.2 临时设置文件副本大小 2.3 fsck命令检查文件的副本数 2.4 block块大小的配置 三、NameNode元数据 3.1 NameNode作用 3.2 edits文件 3.3 FSImage文件 3.4 元素据合并控制参数 …...
用C语言实现牛顿摆控制台动画
题目 用C语言实现牛顿摆动画,模拟小球的运动,如图所示 拆解 通过控制台API定位输出小球运动的只是2边小球,中间小球不运动,只需要固定位置输出左边小球上升下降时,X、Y轴增量一致。右边小球上升下降时,X、…...
如何自己开发一个前端监控SDK
最近在负责团队前端监控系统搭建的任务。因为我们公司有统一的日志存储平台、日志清洗平台和基于 Grafana 搭建的可视化看板,就剩日志的采集和上报需要自己实现了,所以决定封装一个前端监控 SDK 来完成日志的采集和上报。 架构设计 因为想着以后有机会…...
node.js笔记
首先:浏览器能执行 JS 代码,依靠的是内核中的 V8 引擎(C 程序) 其次:Node.js 是基于 Chrome V8 引擎进行封装(运行环境) 区别:都支持 ECMAScript 标准语法,Node.js 有独立…...
mysql 增量备份与恢复使用详解
目录 一、前言 二、数据备份策略 2.1 全备 2.2 增量备份 2.3 差异备份 三、mysql 增量备份概述 3.1 增量备份实现原理 3.1.1 基于日志的增量备份 3.1.2 基于时间戳的增量备份 3.2 增量备份常用实现方式 3.2.1 基于mysqldump增量备份 3.2.2 基于第三方备份工具进行增…...
9月5日上课内容 第一章 NoSQL之Redis配置与优化
本章结构 关系型数据库和非关系型数据库 概念介绍 ●关系型数据库: 关系型数据库是一个结构化的数据库,创建在关系模型(二维表格模型)基础上,一般面向于记录。 SQL 语句(标准数据查询语言)就是…...
QT 第四天
一、设置一个闹钟 .pro QT core gui texttospeechgreaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c11# The following define makes your compiler emit warnings if you use # any Qt feature that has been marked deprecated (the exact warnings # depend…...
nrf52832 GPIO输入输出设置
LED_GPIO #define LED_START 17 #define LED_0 17 #define LED_1 18 #define LED_2 19 #define LED_3 20 #define LED_STOP 20设置位输出模式: nrf_gpio_cfg_output(LED_0); 输出高电平:nrf_gpio_pin_set(LED_0); 输…...
MyBatis 动态 SQL 实践教程
一、MyBatis动态 sql 是什么 动态 SQL 是 MyBatis 的强大特性之一。在 JDBC 或其它类似的框架中,开发人员通常需要手动拼接 SQL 语句。根据不同的条件拼接 SQL 语句是一件极其痛苦的工作。例如,拼接时要确保添加了必要的空格,还要注意去掉列…...
CSS 斜条纹进度条
效果: 代码: html: <div class"active-line flex"><!-- lineWidth:灰色背景 --><div class"bg-line"><div v-for"n in 30" class"gray"></div></div><div…...
十年后,编程还会是人类的工作吗?
一个正在被重写的职业剧本站在2026年的中点眺望2036年,没有人能准确预言未来。但作为软件测试从业者,我们或许是离“编程工作是否会被取代”这个答案最近的一群人。因为我们每天的工作,就是审视代码的边界、挖掘逻辑的漏洞、评估系统的风险。…...
告别电网波动干扰:手把手教你用双同步坐标系锁相环搞定不平衡电压
告别电网波动干扰:手把手教你用双同步坐标系锁相环搞定不平衡电压 当光伏逆变器在阴天突然遭遇电网电压跌落,或是风电变流器面对负载突变导致的相位抖动时,工程师的控制台前总会亮起刺眼的警报灯。这种三相电压不平衡的工况,就像在…...
如何在Windows任务栏实时监控股票行情:TrafficMonitor股票插件终极指南
如何在Windows任务栏实时监控股票行情:TrafficMonitor股票插件终极指南 【免费下载链接】TrafficMonitorPlugins 用于TrafficMonitor的插件 项目地址: https://gitcode.com/gh_mirrors/tr/TrafficMonitorPlugins 你是否曾经在工作时频繁切换窗口查看股票行情…...
终极指南:Python通达信数据接口MOOTDX完整使用教程
终极指南:Python通达信数据接口MOOTDX完整使用教程 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx MOOTDX是一款基于Python的高效通达信数据接口封装,专为量化投资和金融数…...
如何评估Diem投资价值:代币经济学与估值模型终极指南
如何评估Diem投资价值:代币经济学与估值模型终极指南 【免费下载链接】diem Diem’s mission is to build a trusted and innovative financial network that empowers people and businesses around the world. 项目地址: https://gitcode.com/gh_mirrors/di/die…...
高效自动化安装:Windows平台ADB与Fastboot驱动完整配置指南
高效自动化安装:Windows平台ADB与Fastboot驱动完整配置指南 【免费下载链接】Latest-adb-fastboot-installer-for-windows A Simple Android Driver installer tool for windows (Always installs the latest version) 项目地址: https://gitcode.com/gh_mirrors/…...
长裕集团上交所上市:大涨562%市值375亿 年营收18亿净利2.6亿
雷递网 雷建平 5月11日 长裕控股集团股份有限公司(简称:“长裕集团”,股票代码:“603407”)今日在上交所主板上市。长裕集团发行价为13.86元,发行4100万股,募资总额为5.68亿元。长裕集团今日开盘…...
告别CubeMX代码洁癖:教你如何把main()函数挪到自己的.c文件里(STM32F4实战)
重构STM32工程的艺术:将main()迁移到自定义文件的实战指南 每次打开CubeMX生成的工程,看到那个被各种初始化代码塞满的main.c文件,你是否也感到一丝不适?作为一名有追求的嵌入式开发者,我们渴望对项目结构拥有绝对掌控…...
3大技术突破:APK Installer如何重新定义Windows上的安卓应用体验
3大技术突破:APK Installer如何重新定义Windows上的安卓应用体验 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer APK Installer是一款革命性的Windows平台安…...
如何在Chrome浏览器中快速生成与扫描二维码:终极免费插件指南
如何在Chrome浏览器中快速生成与扫描二维码:终极免费插件指南 【免费下载链接】chrome-qrcode :zap: A Chrome plugin to Genrate QRCode of URL / Text, or Decode the QRcode in website. 一个Chrome浏览器插件,用于生成当前URL或者选中内容的二维码&a…...
