LightGBM回归模型实战:预测材料厚度、孔隙率和压缩率
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)
代码解释:
- 导入库: 导入必要的库,例如NumPy用于数值计算,Pandas用于数据处理,LightGBM用于模型训练和预测。
- 读取数据: 从Excel或其他数据源读取训练和测试数据。
- 数据预处理: 对数据进行清洗、转换和特征工程,例如处理缺失值、转换数据类型等。
- 构建模型: 创建LightGBM回归模型对象,并设置模型参数。
- 训练模型: 使用训练数据拟合模型,并使用交叉验证评估模型性能。
- 预测结果: 使用训练好的模型对测试集进行预测,并输出预测结果。
总结
本案例展示了如何使用LightGBM回归模型预测材料的厚度、孔隙率和压缩率。你可以根据实际情况修改代码和数据,以适应不同的预测任务。
原文地址: https://www.cveoy.top/t/topic/fM0g 著作权归作者所有。请勿转载和采集!