LightGBM回归模型实战:预测材料厚度、孔隙率和压缩率

本案例展示如何使用LightGBM回归模型预测材料的厚度、孔隙率和压缩率。

1. 预测材料厚度

import numpy as np
import pandas as pd
import lightgbm as lgb
from sklearn.model_selection import KFold
from sklearn.metrics import mean_squared_error

# 读取数据集
train = pd.read_excel('train.xlsx', sheet_name='Sheet2')
test = pd.read_excel('test.xlsx')

# 构建训练集和验证集
X = train.drop(columns=['厚度mm'], axis=1).values
y = train['厚度mm'].values

# K折交叉验证
kf = KFold(n_splits=10)
rmse_scores = []
for train_indices, test_indices in kf.split(X):
    X_train, X_test = X[train_indices], X[test_indices]
    y_train, y_test = y[train_indices], y[test_indices]

    # 初始化模型
    LGBR = lgb.LGBMRegressor()  # 基模型

    # 训练/fit拟合
    LGBR.fit(X_train, y_train)

    # 预测
    y_pred = LGBR.predict(X_test)

    # 评估
    rmse = mean_squared_error(y_test, y_pred, squared=False)  # 计算均方根误差
    rmse_scores.append(rmse)

print('rmse scores : ', rmse_scores)
print(f'average rmse scores : {np.mean(rmse_scores)}')

# 使用全部训练数据训练模型
train_data = lgb.Dataset(X, label=y)  # 训练集

# 参数
params = {
    'objective': 'regression',  # 目标任务
    'metric': 'rmse',  # 评估指标
    'learning_rate': 0.1,  # 学习率
    'max_depth': 15,  # 树的深度
    'num_leaves': 20,  # 叶子数
}

# 创建模型对象
model = lgb.train(params=params,
                  train_set=train_data,
                  num_boost_round=300)

# 预测测试集
test_pred = model.predict(test.drop('Id', axis=1).values)

print('预测结果:', test_pred)

2. 预测材料孔隙率

import numpy as np
import pandas as pd
from spsspro.algorithm import supervised_learning

# 读取数据
data_x = pd.DataFrame({
    'A': np.random.random(size=100),
    'B': np.random.random(size=100)
})
data_y = pd.Series(data=np.random.choice([1, 2], size=100), name='C')

# 使用lightgbm进行回归预测
result = supervised_learning.lightgbm_regression(data_x=data_x, data_y=data_y)

print('孔隙率预测结果:', result)

3. 预测材料压缩率

import numpy as np
import pandas as pd
from spsspro.algorithm import supervised_learning

# 读取数据
data_x = pd.DataFrame({
    'A': np.random.random(size=100),
    'B': np.random.random(size=100)
})
data_y = pd.Series(data=np.random.choice([1, 2], size=100), name='C')

# 使用lightgbm进行回归预测
result = supervised_learning.lightgbm_regression(data_x=data_x, data_y=data_y)

print('压缩率预测结果:', result)

代码解释:

  1. 导入库: 导入必要的库,例如NumPy用于数值计算,Pandas用于数据处理,LightGBM用于模型训练和预测。
  2. 读取数据: 从Excel或其他数据源读取训练和测试数据。
  3. 数据预处理: 对数据进行清洗、转换和特征工程,例如处理缺失值、转换数据类型等。
  4. 构建模型: 创建LightGBM回归模型对象,并设置模型参数。
  5. 训练模型: 使用训练数据拟合模型,并使用交叉验证评估模型性能。
  6. 预测结果: 使用训练好的模型对测试集进行预测,并输出预测结果。

总结

本案例展示了如何使用LightGBM回归模型预测材料的厚度、孔隙率和压缩率。你可以根据实际情况修改代码和数据,以适应不同的预测任务。

LightGBM回归模型实战:预测材料厚度、孔隙率和压缩率

原文地址: https://www.cveoy.top/t/topic/fM0g 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录