LightGBM 進行回歸建模的流程

LightGBM 進行回歸建模的流程

文章最前: 我是Octopus,這個名字來源于我的中文名–章魚;我熱愛編程、熱愛算法、熱愛開源。所有源碼在我的個人github ;這博客是記錄我學習的點點滴滴,如果您對 Python、Java、AI、算法有興趣,可以關注我的動態,一起學習,共同進步。

加載數據:

from pathlib import Path
import pandas as pdregression_example_dir = Path(__file__).absolute().parents[1] / "regression"
df_train = pd.read_csv(str(regression_example_dir / "regression.train"), header=None, sep="\t")
df_test = pd.read_csv(str(regression_example_dir / "regression.test"), header=None, sep="\t")

這里使用 pandas 加載訓練數據和測試數據。數據文件路徑是通過 Path 模塊構建的,假設數據存儲在項目目錄的 regression 文件夾中。

數據預處理

y_train = df_train[0]
y_test = df_test[0]
X_train = df_train.drop(0, axis=1)
X_test = df_test.drop(0, axis=1)

將數據分為特征 (X_train, X_test) 和標簽 (y_train, y_test)。

創建 LightGBM 數據集:

import lightgbm as lgblgb_train = lgb.Dataset(X_train, y_train)
lgb_eval = lgb.Dataset(X_test, y_test, reference=lgb_train)

將 pandas DataFrame 轉換為 LightGBM 所需的 Dataset 格式。

設置參數

params = {"boosting_type": "gbdt","objective": "regression","metric": {"l2", "l1"},"num_leaves": 31,"learning_rate": 0.05,"feature_fraction": 0.9,"bagging_fraction": 0.8,"bagging_freq": 5,"verbose": 0,
}

配置 LightGBM 的訓練參數,包括提升類型、目標函數、評估指標、葉子節點數、學習率等。

訓練模型

gbm = lgb.train(params, lgb_train, num_boost_round=20, valid_sets=lgb_eval, callbacks=[lgb.early_stopping(stopping_rounds=5)]
)

使用 train 方法進行訓練,指定評估數據集,并設置提前停止的回調函數以防止過擬合。

保存模型:

gbm.save_model("model.txt")

將訓練好的模型保存到文件。

預測和評估:

from sklearn.metrics import mean_squared_errory_pred = gbm.predict(X_test, num_iteration=gbm.best_iteration)
rmse_test = mean_squared_error(y_test, y_pred) ** 0.5
print(f"The RMSE of prediction is: {rmse_test}")

使用測試集進行預測,并計算預測結果的均方根誤差 (RMSE)。

這段代碼可以作為一個模板,用于基于 LightGBM 的回歸任務。確保你已經安裝了所需的庫 (pandas, scikit-learn, lightgbm) 并有合適的數據集。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/22186.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/22186.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/22186.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

將HTML頁面中的table表格元素轉換為矩形,計算出每個單元格的寬高以及左上角坐標點,輸出為json數據

export function huoQuTableElement() {const tableData []; // 存儲表格數據的數組let res [];// 獲取到包含表格的foreignObject元素const foreignObject document.getElementById(mydctable);if (!foreignObject){return ;}// 獲取到表格元素let oldTable foreignObject…

Nativefier : 將網址打包成exe桌面程序

1、需求場景 在日常開發中,需要針對一些網頁在一體機上使用,同時在瀏覽器上也可以使用,這里推薦大家用nativefier,對網址進行打包。以下是nativefier安裝命令: npm install nativefier -g 2、使用方法 --arch 系統 …

《混凝土壩監測儀器系列型譜》修訂中監測儀器分類方案解讀

隨著科技的不斷進步和監測需求的日益增加,對監測儀器分類方案進行修訂已成為必然的趨勢。本文旨在探討《混凝土壩監測儀器系列型譜》中對現有儀器分類方式的修訂,以及監測儀器選用的相關內容。希望對大家中有所幫助: 一、取消過時條目&#x…

服務器是一種高性能計算機

服務器是一種高性能計算機,專門設計用于在網絡中提供各種服務。它們通常具備比普通計算機更快的CPU運算能力、更可靠的運行性能、更大的I/O外部數據吞吐能力以及更好的擴展性。

java中方法引用

目錄 方法引用: 引用靜態方法 引用成員方法 引用構造方法 使用類名引用成員方法 引用數組的構造方法 練習 方法引用: 把已經有的方法拿過來用,當做函數式接口中抽象方法的方法體 在Java中,方法引用是一種簡化Lambda表達式的…

詳解Spring支持的幾種注入方式

在 Spring 框架中,Bean 的注入方式主要有以下幾種,其中一些是自動注入的。以下是詳細說明: 1. 構造函數注入 (Constructor Injection) 自動注入:使用 Autowired 注解時,Spring 容器會自動調用帶有 Autowired 注解的構…

教務管理系統-學員辦理體系介紹

隨著時代的快速開展,教育方面也沒落下,不僅是線下線上都呈現許多訓練校園,辦理軟件也順勢而為的呈現廣闊訓練校園面前,許多的校園和訓練組織也都在運用教務管理系統了。運用教務管理系統里邊的學員辦理體系可以讓相應的辦理人員更…

Redis的一致性

一、產生的原因 使用緩存,在進行寫操作的時候就會出現不一致的問題。 一致性分為三類:強一致性,弱一致性,最終一致性 二、方案 2.1 延時雙刪 在更新數據庫的操作前后分別進行一次刪除緩存的操作,并在更新數據庫之后…

《HelloGitHub》第 98 期

興趣是最好的老師,HelloGitHub 讓你對編程感興趣! 簡介 HelloGitHub 分享 GitHub 上有趣、入門級的開源項目。 github.com/521xueweihan/HelloGitHub 這里有實戰項目、入門教程、黑科技、開源書籍、大廠開源項目等,涵蓋多種編程語言 Python、…

Docker大學生看了都會系列(三、常用幫助、鏡像、容器命令)

系列文章目錄 第一章 Docker介紹 第二章 2.1 Mac通過Homebrew安裝Docker 第二章 2.2 CentOS安裝Docker 第三章 Docker常用命令 文章目錄 前言環境常用命令幫助命令鏡像命令容器命令 總結 前言 前面2章學完了基礎概念,實操安裝使用。接下來了解一些日常中常用的命令…

Java - 隨機存取文件類

在Java中,隨機存取文件(Random Access File)通常使用java.io.RandomAccessFile類來實現。這個類允許你讀取和寫入文件的任意位置,而不是像FileReader和FileWriter那樣只能從頭開始或追加到文件末尾。 RandomAccessFile類提供了用…

容器化部署fastdfs文件存儲

目錄 一、軟件信息 二、構建fastdfs鏡像 三、docker 啟動fdfs服務 四、k8s部署fdfs服務 1、fdfs部署文件 五、外部服務訪問 一、軟件信息 fastdfs版本:fastdfs:V5.11 libfastcommon版本: V1.0.36 fastdfs-nginx-module版本:V1.20 nginx版本&…

速盾:cdn技術詳解

CDN(Content Delivery Network,內容分發網絡)是一種基于分布式架構的網絡技術,通過將內容緩存到離用戶較近的服務器上,從而提升網站的訪問速度和可靠性。本文將詳細介紹CDN技術的原理和工作流程。 CDN技術的原理是將網…

h5相機功能

h5相機功能 利用vant input file <template><div class"mb10"><divv-for"(item, index) in info.imgList":key"index"class"imgItem f32 mr20"click"preview(item, index)"><img :src"doFileUrl…

<sa8650>QCX Usecase 使用詳解—如何在管道中添加多個 IPE 實例

<sa8650>QCX Usecase 使用詳解—如何在管道中添加多個 IPE 實例 一、前言二、UsecaseSRV添加新格式三、更新usecase.xml四、定義 IPE 的新實例五、添加新鏈接六、QCarcam測試XML一、前言 本節說明在使用Usecase/Pipeline XML 中添加多個 IPE 實例所需的更改。以下示例解釋了…

使用Spring Boot和MybatisPlus的Java CRM客戶關系管理系統源碼

項目名稱&#xff1a;CRM客戶關系管理系統 功能模塊及描述&#xff1a; 一、待辦事項 今日需聯系客戶&#xff1a;顯示當日需跟進的客戶列表&#xff0c;支持查詢和篩選。 分配給我的線索&#xff1a;管理分配給用戶的線索&#xff0c;包括線索列表和查詢功能。 分配給我的客…

導彈研究中常用坐標系及坐標系之間的變換

在導彈飛行控制過程中&#xff0c;需要時刻掌握導彈的飛行狀態 &#xff08;速度、位置、姿態角等&#xff09;&#xff0c;這就有賴于描述導彈飛行狀態的坐標系。除了大地坐標系和地心大地直角坐標系外&#xff0c;導彈常用的坐標系還有很多&#xff0c;合理而恰當地選擇參考系…

golang調用外部程序包os/exec中的 Command和CommandContext 函數創建的Cmd對象的區別

在go語言中&#xff0c;我們可以通過os/exec包中的Command和CommandContext 函數創建對應的外部程序執行Cmd對象&#xff0c; 這2個函數創建的cmd命令執行對象是有區別的&#xff0c;CommandContext創建的對象可以攜帶上下文&#xff0c;這個主要用于我們通過cancel函數給對應的…

37【透視】兩點透視

1 兩點透視比較合適表現物體的結構 用兩點透視繪制比較小的、箱子之類的物體 2 一點透視和兩點透視的共存關系

【Binaryen】partiallyPrecompute函數梳理

在Binaryen中有一個優化名為Precompute&#xff0c;作用是進行一些提前計算&#xff0c;類似于LLVM中的常量折疊類似的操作。 涉及的提交文件在此。 首先放一下全部的代碼&#xff1a; // To partially precompute selects we walk up the stack from them, like this://// …