当前位置: 首页 > news >正文

深圳三合一建设网站网页设计图片如何显示

深圳三合一建设网站,网页设计图片如何显示,网页设计与制作教程专题分析,百度糯米网站怎么做文章目录 赛题描述任务要求数据集介绍评估指标 赛题分析基于LightGBM模型Baseline详解改进baseline早停法添加特征 赛题描述 赛事地址#xff1a;科大讯飞锂离子电池生产参数调控及生产温度预测挑战赛 任务要求 初赛任务#xff1a;初赛提供了电炉17个温区的实际生产数据科大讯飞锂离子电池生产参数调控及生产温度预测挑战赛 任务要求 初赛任务初赛提供了电炉17个温区的实际生产数据分别是电炉上部17组加热棒设定温度T1-1 ~ T1-17电炉下部17组加热棒设定温度T2-1~T2-17底部17组进气口的设定进气流量V1-V17选手需要根据提供的数据样本构建模型预测电炉上下部空间17个测温点的测量温度值。 数据集介绍 初赛任务初赛提供了电炉17个温区的实际生产数据分别是电炉上部17组加热棒设定温度T1-1 ~ T1-17电炉下部17组加热棒设定温度T2-1~T2-17底部17组进气口的设定进气流量V1-V17选手需要根据提供的数据样本构建模型预测电炉上下部空间17个测温点的测量温度值。 评估指标 初赛考核办法采用测试集各行数据的加热棒上部温度设定值、加热棒下部温度设定值、进气流量3类数据作为输入选手分别预测上部空间测量温度、下部空间测量温度。将选手预测的上部空间测量温度、下部空间测量温度与测试集数据的测量值进行比较。采用MAE平均绝对误差作为评价指标。 赛题分析 本次比赛为数据挖掘类型的比赛聚焦于工业场景。本赛题实质上为回归任务其中会涉及到时序预测相关的知识。 通过电炉空间温度推测产品内部温度设计烧结过程的温度场和浓度场的最优控制律 任务输入电炉对应17个温区的实际生产数据分别是电炉上部17组加热棒设定温度T1-1 ~ T1-17电炉下部17组加热棒设定温度T2-1~T2-17底部17组进气口的设定进气流量V1-V17 任务输出电炉对应17个温区上部空间和下部空间17个测温点的测量温度值。 值得注意的是预测目标为34个所以需要我们进行34次模型训练和预测。 同时数据规模比较小可以快速处理数据和搭建模型对于机器要求8g内存即可。 本次为结构化赛题包含电炉烧结每个时间段的流量、上下部设定温度以及预测目标上下部测量温度值。 基于LightGBM模型 在处理这个问题时我们主要考虑的是回归预测。一种常规的解决思路是运用机器学习技术例如 LightGBM 或 XGBoost或者借助深度学习方法进行实践。当我们选择自行搭建模型的路径时我们将面临更为复杂的挑战包括构建模型结构以及对数值数据进行标准化处理。 然而一个简易的解决方案可能就在我们眼前那就是直接使用现成的机器学习模型。这种方法具有明显的优势其模型使用简单数据预处理的需求也大大减少。 总的来说我们需要经过以下步骤来解决本问题 数据预处理 切分训练集与验证集 训练模型 生成最后的预测结果。 在实施这些步骤的过程中我们需要根据模型的性质和数据的特点灵活调整确保每一步的实施都能最大化模型的预测准确性从而有效解决这个回归预测问题。 Baseline详解 导入需要的库 import pandas as pd # 用于处理数据的工具 import lightgbm as lgb # 机器学习模型 LightGBM from sklearn.metrics import mean_absolute_error # 评分 MAE 的计算函数 from sklearn.model_selection import train_test_split # 拆分训练集与验证集工具 from tqdm import tqdm # 显示循环的进度条工具读取数据 # 数据准备 train_dataset pd.read_csv(./data/train.csv) # 原始训练数据。 test_dataset pd.read_csv(./data/test.csv) # 原始测试数据用于提交。submit pd.DataFrame() # 定义提交的最终数据。 submit[序号] test_dataset[序号] # 对齐测试数据的序号。MAE_scores dict() # 定义评分项。查看数据 train_dataset.head()test_dataset.head()设置lgb参数 # 参数设置 pred_labels list(train_dataset.columns[-34:]) # 需要预测的标签。 train_set, valid_set train_test_split(train_dataset, test_size0.2) # 拆分数据集。# 设定 LightGBM 训练参查阅参数意义https://lightgbm.readthedocs.io/en/latest/Parameters.html lgb_params {boosting_type: gbdt, #使用的提升方法使用梯度提升决策树gbdtobjective: regression, #使用的最小化指标metric: mae, #使用的评价指标min_child_weight: 5, #子节点中样本权重最小和用于控制过拟合num_leaves: 2 ** 5, #每棵树上的叶子节点数影响模型的复杂度lambda_l2: 10, #L2正则项的权重用于控制模型的复杂度feature_fraction: 0.8, #随机选择特征的比例用于防止过拟合bagging_fraction: 0.8, #随机采样的比例用于防止过拟合bagging_freq: 4, #随机采样的频率用于防止过拟合learning_rate: 0.05, #学习率seed: 2023, #随机数种子保持结果的可重复性nthread : 16, #线程数verbose : -1, #可视化开关-1为不打印0为打}no_info lgb.callback.log_evaluation(period-1) # 禁用训练日志输出。进行特征工程主要是时间文本转换为时间格式生成年、日、小时、分钟等时间特征 # 时间特征函数 def time_feature(data: pd.DataFrame, pred_labels: listNone) - pd.DataFrame:提取数据中的时间特征。输入: data: Pandas.DataFrame需要提取时间特征的数据。pred_labels: list, 默认值: None需要预测的标签的列表。如果是测试集不需要填入。输出: data: Pandas.DataFrame提取时间特征后的数据。data data.copy() # 复制数据避免后续影响原始数据。data data.drop(columns[序号]) # 去掉”序号“特征。data[时间] pd.to_datetime(data[时间]) # 将”时间“特征的文本内容转换为 Pandas 可处理的格式。data[month] data[时间].dt.month # 添加新特征“month”代表”当前月份“。data[day] data[时间].dt.day # 添加新特征“day”代表”当前日期“。data[hour] data[时间].dt.hour # 添加新特征“hour”代表”当前小时“。data[minute] data[时间].dt.minute # 添加新特征“minute”代表”当前分钟“。data[weekofyear] data[时间].dt.isocalendar().week.astype(int) # 添加新特征“weekofyear”代表”当年第几周“并转换成 int否则 LightGBM 无法处理。data[dayofyear] data[时间].dt.dayofyear # 添加新特征“dayofyear”代表”当年第几日“。data[dayofweek] data[时间].dt.dayofweek # 添加新特征“dayofweek”代表”当周第几日“。data[is_weekend] data[时间].dt.dayofweek // 6 # 添加新特征“is_weekend”代表”是否是周末“1 代表是周末0 代表不是周末。data data.drop(columns[时间]) # LightGBM 无法处理这个特征它已体现在其他特征中故丢弃。if pred_labels: # 如果提供了 pred_labels 参数则执行该代码块。data data.drop(columns[*pred_labels]) # 去掉所有待预测的标签。return data # 返回最后处理的数据。test_features time_feature(test_dataset) # 处理测试集的时间特征无需 pred_labels。 test_features.head(5)训练模型并进行预测 # 从所有待预测特征中依次取出标签进行训练与预测。 for pred_label in tqdm(pred_labels):# print(当前的pred_label是, pred_label)train_features time_feature(train_set, pred_labelspred_labels) # 处理训练集的时间特征。# train_features enhancement(train_features_raw)train_labels train_set[pred_label] # 训练集的标签数据。# print(当前的train_labels是, train_labels)train_data lgb.Dataset(train_features, labeltrain_labels) # 将训练集转换为 LightGBM 可处理的类型。valid_features time_feature(valid_set, pred_labelspred_labels) # 处理验证集的时间特征。# valid_features enhancement(valid_features_raw)valid_labels valid_set[pred_label] # 验证集的标签数据。# print(当前的valid_labels是, valid_labels)valid_data lgb.Dataset(valid_features, labelvalid_labels) # 将验证集转换为 LightGBM 可处理的类型。# 训练模型参数依次为导入模型设定参数、导入训练集、设定模型迭代次数5000、导入验证集、禁止输出日志model lgb.train(lgb_params, train_data, 5000, valid_setsvalid_data, callbacks[no_info])valid_pred model.predict(valid_features, num_iterationmodel.best_iteration) # 选择效果最好的模型进行验证集预测。test_pred model.predict(test_features, num_iterationmodel.best_iteration) # 选择效果最好的模型进行测试集预测。MAE_score mean_absolute_error(valid_pred, valid_labels) # 计算验证集预测数据与真实数据的 MAE。MAE_scores[pred_label] MAE_score # 将对应标签的 MAE 值 存入评分项中。submit[pred_label] test_pred # 将测试集预测数据存入最终提交数据中。submit.to_csv(submit_result.csv, indexFalse) # 保存最后的预测结果到 submit_result.csv保存文件 # 保存文件并查看结果 submit.to_csv(submit_result.csv, indexFalse) # 保存最后的预测结果到 submit_result.csv。 print(MAE_scores) # 查看各项的 MAE 值。最后结果是7.94826。 改进baseline 早停法 由于模型有过拟合的风险所以可以通过早停来让模型在一段时间不能得到提升后提前结束训练。lgb中可以通过添加参数来实现。 lgb_params {boosting_type: gbdt, #使用的提升方法使用梯度提升决策树gbdtobjective: regression, #使用的最小化指标metric: mae, #使用的评价指标early_stopping_round:20, #早停,如果20轮没有提升就停止训练min_child_weight: 5, #子节点中样本权重最小和用于控制过拟合num_leaves: 2 ** 5, #每棵树上的叶子节点数影响模型的复杂度lambda_l2: 10, #L2正则项的权重用于控制模型的复杂度feature_fraction: 0.8, #随机选择特征的比例用于防止过拟合bagging_fraction: 0.8, #随机采样的比例用于防止过拟合bagging_freq: 4, #随机采样的频率用于防止过拟合learning_rate: 0.05, #学习率seed: 2023, #随机数种子保持结果的可重复性nthread : 16, #线程数verbose : -1, #可视化开关-1为不打印0为打}添加特征 尝试提取更多特征这里尝试添加交叉特征、历史平移特征、差分特征、和窗口统计特征每种特征都是有理可据的具体说明如下 1交叉特征主要提取流量、上部温度设定、下部温度设定之间的关系 2历史平移特征通过历史平移获取上个阶段的信息 3差分特征可以帮助获取相邻阶段的增长差异描述数据的涨减变化情况。在此基础上还可以构建相邻数据比值变化、二阶差分等 4窗口统计特征窗口统计可以构建不同的窗口大小然后基于窗口范围进统计均值、最大值、最小值、中位数、方差的信息可以反映最近阶段数据的变化情况。 在时间特征函数中添加 # 交叉特征for i in range(1,18):data[f流量{i}/上部温度设定{i}] data[f流量{i}] / data[f上部温度设定{i}]data[f流量{i}/下部温度设定{i}] data[f流量{i}] / data[f下部温度设定{i}]data[f上部温度设定{i}/下部温度设定{i}] data[f上部温度设定{i}] / data[f下部温度设定{i}]# 历史平移for i in range(1,18):data[flast1_流量{i}] data[f流量{i}].shift(1)data[flast1_上部温度设定{i}] data[f上部温度设定{i}].shift(1)data[flast1_下部温度设定{i}] data[f下部温度设定{i}].shift(1)# 差分特征for i in range(1,18):data[flast1_diff_流量{i}] data[f流量{i}].diff(1)data[flast1_diff_上部温度设定{i}] data[f上部温度设定{i}].diff(1)data[flast1_diff_下部温度设定{i}] data[f下部温度设定{i}].diff(1)# 窗口统计for i in range(1,18):data[fwin3_mean_流量{i}] (data[f流量{i}].shift(1) data[f流量{i}].shift(2) data[f流量{i}].shift(3)) / 3data[fwin3_mean_上部温度设定{i}] (data[f上部温度设定{i}].shift(1) data[f上部温度设定{i}].shift(2) data[f上部温度设定{i}].shift(3)) / 3data[fwin3_mean_下部温度设定{i}] (data[f下部温度设定{i}].shift(1) data[f下部温度设定{i}].shift(2) data[f下部温度设定{i}].shift(3)) / 3# 对平移后的空值进行填充 data data.fillna(methodbfill)这里要注意在平移之后第一个值会变成nan因为没有前一个值包括窗口统计的前3个值因此需要用后填充的方式将其填充。 经过这两个操作后分数变为7.51948。 由于时间关系暂时只做这两个改进后续会进行更多探索。
http://www.w-s-a.com/news/60607/

相关文章:

  • 网站安全狗十大免费ppt网站在线
  • 进网站后台显示空白图片模板 网站源码
  • dedecms 英文网站怎么在网站上做模式题库
  • 轻网站怎么建立国外做评论的网站
  • 拉米拉网站建设乐清网站网站建设
  • 获取网站全站代码申请免费域名的方法
  • 网站制作建设公司哪家好wordpress仪表盘打不开
  • 最佳网站制作模板用手机能创建网站吗
  • 只做黑白摄影的网站网站建设好后给领导作介绍
  • 移动手机网站建设如何做网站地图视频
  • 手工业网站怎么做成都酒吧设计公司
  • .net 网站生成安装文件目录重庆网站建设沛宣网络
  • 怎么做钓鱼网站吗百度免费域名注册网站
  • 如何给网站做外部优化今年国内重大新闻
  • 有没有做生物科技相关的网站弄一个app大概多少钱
  • 五金加工东莞网站建设怎么做网页跳转
  • 淄博网站优化价格wordpress没有小工具
  • 自己搭建服务器做视频网站wordpress发布文章 发布
  • php仿博客园网站阅读分享网站模板
  • 网站宣传的劣势域名注册长沙有限公司
  • 怎样联系自己建设网站企业怎样做好网站建设
  • 网站制作需求分析电商网站建设浩森宇特
  • 淄博网站建设招聘摄影网站建设的论文
  • 怎么把凡科网里做的网站保存成文件网站建设研究的意义
  • 服务器2003怎么做网站网站建设服务器的配置
  • 高校网站建设方案网站推广软件下载安装免费
  • 重庆没建网站的企业网站开发软件 连接SQL数据库
  • 百度申诉网站沉默是金
  • 如何自己建网站wordpress图片延时加载
  • 甘肃省住房和城乡建设厅注册中心网站千博企业网站管理系统2013